#71 compile docs with tut

Solved #71

Codecov Report

Merging #93 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #93   +/-   ##
=======================================
  Coverage   88.37%   88.37%
=======================================
  Files          12       12
  Lines         129      129
  Branches        3        3
=======================================
  Hits          114      114
  Misses         15       15

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9e7afbe...7b08c1d. Read the comment docs.

Nice :)
What triggers the doc compilation? Do you have to manually do it or does it get compile with src compilation?

Thanks @alodavi :-). It looks like some setting is missing to run tut on the files in doc. I think that something like tutSourceDirectory := file("doc") is necessary in the build.sbt but apparently not enough. When running tut:doc we should see some files in target/scala-2.12/tut but I don't see them. Also if there's any compiler error in the .md files tut should tell us. Can you please play with the settings and see what works?

@jcranky unfortunately I noticed that it doesn't compile. I thought that the default settings would have been enough
Alright @etorreborre ! Let me check if I can fix this problem

Nice to see you here, @alodavi  :)

@LappleApple hello! :)

Ok, now it's compiling :) try to run "tut" from the sbt console and then check the target/scala-2.12/tut folder to see the docs ;)

@alodavi thanks!
Now, when I tried to run it locally I got lots of error like:
<console>:13: error: illegal start of simple expression
val app: Application =
^
[tut] *** Error reported at /tmp/grafter/doc/singletons.md:67
<console>:12: error: not found: type Application
       val app1: Application =

Also, can we perhaps have a test to assure that the docs compilation works? This way we could make it always sure to not merge broken documentation :)

@jcranky I'm not sure if this is what you want, but I handled exceptions due to e.g. pseudocode by passing modifiers (as suggested in the tut readme)

@alodavi I think the best would be to add the missing imports to make the code compile :-).

@etorreborre sure, but it seems that I always get this warning: Unused import and this error: No warnings can be incurred under -Xfatal-warnings . From what I read it something that has to do with the fact that Tut does not filter out -Ywarn-unused-imports from its scalacOptions anymore.
I'm trying to use something like this
scalacOptions in Tut := (scalacOptions in Tut).value.filterNot(Set("-Ywarn-unused-import"))
but it didn't solve the problem

@alodavi so you're saying that the tut docs fail without the imports and show unused imports with the imports?

@etorreborre well, it actually fail even if the imports are there. E.g. in boilerplate.md we have
import org.zalando.grafter.GenericReader._, the console will display
<console>:12: warning: Unused import        import org.zalando.grafter.GenericReader.genericReader
and then <console>:13: error: not found: type Reader          implicit def readerHttpConfig: Reader[ApplicationConfig, HttpConfig] =
<console>:14: error: not found: value genericReader            genericReader            ^
tut:silent:fail  shows code that doesn't compile, without showing the compilation error. But I don't think that silencing tut is a good solution in this case. I would rather understand why the compiler is ignoring imports

@alodavi can you please do a sanity check to verify if this is a tut shortcoming or just some non-compiling code?
For example this "boilerplate.md-like" code compiles ok
  import org.zalando.grafter.GenericReader._
  import cats.data.Reader

  case class DbConfig()
  case class HttpConfig()

  case class ApplicationConfig(db:   DbConfig,
                               http: HttpConfig)
  object ApplicationConfig {
    implicit def readerHttpConfig: Reader[ApplicationConfig, HttpConfig] =
      genericReader

    implicit def readerDbConfig: Reader[ApplicationConfig, DbConfig] =
      genericReader
  }

Does it also compile with tut?

@etorreborre after some checks I found out that this code snippet just doesn't compile in tut... The problem is due to the fact that the imports are ignored by tut. I'm checking if it has to do with tut dependencies.

Sorry Aloisia, I finally got to use it, leveraging specs2 for this which I know well enough to be fast.
Don't worry there are still ambitious issues to solve :-).


Use of .Hugo is deprecated

When building the site, I am receiving a warning:
Building sites . WARN 2019/06/01 12:28:30 Page's .Hugo is deprecated and will be removed in a future release. Use the global hugo function.

Contributed fix in #12

Again, thank you very much for your contribution!
Since the problem is fixed, I'm going to close this issue.


Add setting for Cow to sign tags and/or commits

It might be nice to add a feature to cow to allow tags and possibly commits (although: http://git.661346.n2.nabble.com/GPG-signing-for-git-commit-tp2582986p2583316.html) to be GPG signed.
I guess we'd add an option here: https://github.com/silverstripe/cow/blob/master/src/Model/Modules/Library.php#L283-L294

I think you need this line in your .gitconfig:
[commit]
        gpgsign = true


Cow: Watch floorplanmapper.com

Cow requests the watch of the watch_keyword floorplanmapper\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

floorplanmapper\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


feat(suggest): adding cdk layout for dropdown

Description
Used cdk layout when showing the dropdown for the ui-suggest component.

There's another use case that needs to be considered: ui-suggest is also used in the ui-grid, for filtering. This is how it looks now:

this is how it looks on master:

One more issue with the placeholder styling:

Also, the 2 bottom examples in the playground page don't show the list of elements when first opened:

if I close the dropdown and open it up again it loads them.


[cinder-csi-plugin] Allow multiple config files

This change allows cinder-csi-plugin to be invoked with multiple config
files. These will be parsed sequentially in the order specified. Values
in later config files override values in earlier config files.
This makes 'layered' configurations simpler to manage. For example a
base configuration containing authentication information and a per-node
override configuration which applies only to a single node. Keeping
these in separate files simplifies the task of changing the base
configuration for all nodes.
What this PR does / why we need it:
Which issue this PR fixes(if applicable):
fixes #
Special notes for reviewers:

Release note:

[cinder-csi-plugin] The --cloud-config option may now be given multiple times. Multiple configuration files will be merged, with later configuration files taking precedence.

/cc @Fedosin @mandre

/ok-to-test

@mdbooth can you help to open an issue and put the reason/purpose of this PR there?
I think it's reasonable change and this might need further doc as well (not in this PR is ok)
but some info in the issue itself will be easier to track

Thanks, @jichenjc. I opened https://github.com/kubernetes/cloud-provider-openstack/issues/1481 which has a much more complete description of where this is coming from and hopefully other ways it could potentially be used.
Incidentally this is my first time submitting any k8s feature, so please let me know if there's anything I can do to help you and myself.

/retest
Only [Fail] [sig-storage] [cinder-csi-e2e] CSI Volumes [Driver: cinder.csi.openstack.org] [Testpattern: Dynamic PV (default fs)] provisioning [It] should provision storage with pvc data source in parallel [Slow]  failed  for cloud-provider-openstack-e2e-test-csi-cinder and this doesn't seem related to this patch.

/test cloud-provider-openstack-e2e-test-csi-cinder

Please also make some changes/amendments in https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md#driver-config

Please also make some changes/amendments in https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md#driver-config
You can do this in a separate PR if there is no comment from other reviewers.

I need to rebase anyway, so I'll do it in this PR. It may be a few days before I get back to this, though.

/test cloud-provider-openstack-e2e-test-csi-cinder
/test cloud-provider-openstack-multinode-csi-migration-test

/test cloud-provider-openstack-e2e-test-csi-cinder

I can confirm the failed jobs have nothing to do with this PR, from the log, the cinder-csi components are all up and running. The failure is due to the CI cloud provider issue.
@jichenjc @ramineni @chrigl we can also consider using the similar CI job I did for occm, so we could have more control of the cloud resources (in devstack) created, also benefit from the latest version Cinder features.
For this PR, please leave your comments, we shouldn't let the contributors wait for so long for the reasons they couldn't control.

/lgtm

updated description to link correct issue.
@mdbooth could you add alternate manifests  as discussed in issue

updated description to link correct issue.
@mdbooth could you add alternate manifests as discussed in issue

Will do, although it will be a few days before I get back to this.

@mdbooth code looks good to me. Please add alternate manifests with examples in seperate PR.
Lets just wait for one functional job run before merge.

/test cloud-provider-openstack-e2e-test-csi-cinder

/test cloud-provider-openstack-multinode-csi-migration-test

/approve
@mdbooth Please update docs in seperate PR

Yesterday csi cinder plugin was able to retrieve instance id using metadata service or config drive, today it seems that nodeid is mandatory. did i miss something?

thank for your work -

What do you mean by "nodeid is mandatory"? From https://github.com/kubernetes/cloud-provider-openstack/pull/1565 I can see it's deprecated and shouldn't be needed.

@artpej Yes, Its not a mandatory/required argument and the value is not used anywhere. Please share the logs

@lingxiankong @ramineni , thanks for your response, I just ran another try and everything works as expected (without the need to specify the nodeid). I should had encounter a problem with the image cache. Sorry for the inconvenience.
However the documentation in this PR specify that the node-id is required ( still present in the master branch https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md#command-line-arguments ). It confused me a bit.
Finally thanks for your opensource work i really appreciate, and sorry for my poorly english speaking :wink: .

However the documentation in this PR specify that the node-id is required ( still present in the master branch https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md#command-line-arguments ). It confused me a bit.

@artpej Thanks for pointing. Raised a PR to fix the doc. https://github.com/kubernetes/cloud-provider-openstack/pull/1573


Creating a new OMAG server defaults to https://localhost:19443

Deploy the odpi-egeria-lab coco pharma notebook/demo environment into k8s
Configure & start the servers via the relevant notebooks
navigate to the presentation server UI
Click on Server Author

On this panel the 'Local URL root' defaults to https://localhost:19443
This makes no sense in this environment.
Additionally it is potentially insecure allowing it to be specified
The UI should ideally make use of the same kind of server/platform configuration that we have with Dino so that a drop down list of available/preconfigured platforms is provided.

@dkneisly please could you have a look at this one.

@davidradl yes I can.
We should discuss so I can get a better idea of what you guys did with dino, but I agree that the options should be pre-configured and that it should be a dropdown list.

Also Organization and ServerType are option

@dkneisly - Dave I'd be happy to chat through how Dino (and Rex and Tex) are configured with a set of resource endpoints, that are retrieved from the view server when the page first loads, and displayed in selector lists.

Just a quick reminder too -- if this change is made, the notebook(egeria-server-config.ipynb) will need updating as we have code that uses the admin calls to configure the view server.


Clickable URLs in messages

Hello @balzack , thank you very much for this awesome project!
I would like to submit the request to have the URLs clickable/tappable within the conversation messages. At the moment users neither can select text to copy-paste links nor click them as hyperlink. Thanks again!

Thank you for the suggestion; that's a very good point. It should be easy to add, so I will add it just after I finish the feature I am currently working. Probably a month out. Thank you for the interest in the project!

Several people were interested in this feature, so I made a quick small release to support this. In the topic thread, you should be able to click on a link, and it will open in a new tab. Can you let me know if it works the way you would expect?
You can test it out on the demo site 'databag.coredb.org' or by updating your server. The mobile apps have also been updated, but the ios version is still going through the validation process.

Several people were interested in this feature, so I made a quick small release to support this. In the topic thread, you should be able to click on a link, and it will open in a new tab. Can you let me know if it works the way you would expect?
You can test it out on the demo site 'databag.coredb.org' or by updating your server. The mobile apps have also been updated, but the ios version is still going through the validation process.

Dear @balzack
I've just tested the update on my own databag instance and on the android client: both of them work like a charm!! Thank you very much for this fix you have provided!

Awesome! thanks for helping me improve this project.

Did a quick test:

Web: All urls work as intended and are detected by the webapp as such.
Android: https://www.google.pt worked, www.sapo.pt is detected as a url (italic) but touching it does nothing, same as slashdot.org.

Interesting...thank you. I think means my pattern matcher is identifying it as a URL, but the library 'braintree/sanitize-url' which protects against XSS is refusing it.  I should be able to get this working. Thanks again...

Interesting...thank you. I think means my pattern matcher is identifying it as a URL, but the library 'braintree/sanitize-url' which protects against XSS is refusing it. I should be able to get this working. Thanks again...

Now that you mention... i don't think it really needs fixing.
Is a URL a URL if it does not have http:// https:// ftp:// irc:// before it ? should nnnnnnn.xxx be considered a URL ?
To be honest, it's fine as it is. Perhaps not detect as URL would be enough :)
Thank you a lot !

Interesting...thank you. I think means my pattern matcher is identifying it as a URL, but the library 'braintree/sanitize-url' which protects against XSS is refusing it. I should be able to get this working. Thanks again...

Now that you mention... i don't think it really needs fixing.
Is a URL a URL if it does not have http:// https:// ftp:// irc:// before it ? should nnnnnnn.xxx be considered a URL ?
To be honest, it's fine as it is. Perhaps not detect as URL would be enough :)
Thank you a lot !

I agree. I think that the detection of the URL in form of "scheme + fully qualified domain name" is really enough.


[MS Teams][Input.Time] The time value of Input.Time does not appear normally.

Platform

[ ] Python

Author or host

[ ] MS Teams

Hi. I'm using MS Teams' Bot service. I am using an adaptive card including Input.Time as input, but the time value of Input.Time is not normal.
I chose '오후 3:00'.('오후' is 'PM'.) I think it should come out at 15:00, but the result came out at 03:00.

And when I entered '3:00 오후' directly, the result came out as 15:00.

Since my language is Korean, I am wondering if this error occurs or if there is a solution.

@cleans2002 - interesting... I took a look at one of our samples while browsing in Korean, and it appears to have the correct submit behavior (specifically looking at the TimeVal portion of the submit payload). can you confirm?
if it does indeed behave correctly there, this might be an issue in Teams.

@cleans2002 - interesting... I took a look at one of our samples while browsing in Korean, and it appears to have the correct submit behavior (specifically looking at the TimeVal portion of the submit payload). can you confirm?
if it does indeed behave correctly there, this might be an issue in Teams.

Thank you for answer.
As a result of checking the sample, if the value is forcibly registered, the value is displayed normally.

However, if the time is changed, the same error occurs.

Is it possible to change the value type of Input.Time to 24-hour format?

@siduppal - does Teams override the base rendering of the Time picker?

We are not able to repro the issue at our end? Are you facing this for particular users or are you facing issue with all the user is using your bot? Could you please try out signin/signout?

@jonmill - Could you please share an update

@cleans2002 - not sure if you saw @Nikitha-MSFT's questions...could you please provide some additional information to help us diagnose this issue? Thanks!

Hello
The same error is happening over and over again now, and all users are experiencing it.
In short,

I am using Input.Time of the adaptive card.
I speak Korean, and '오후' in the image above means PM.
In Input.Time, it is entered as '오후 3:00', but the result is 03:00.
If you send the text'afternoon' after 3:00 (like '3:00 오후'), the result is 15:00.

I tried logging out/logging in, but it shows the same symptoms.

Thanks for clarifying @cleans2002. @Nikitha-MSFT, do the repro steps provided above help repro the issue?

Checking it will update soon

Internally team is working on the bug- We are tracking the bug - will update once it is fixed. We don't have ETA to share when it will be Fixed.

Bug is Resolved now, we have tested this at our end, could you please also check and confirm?

@Nikitha-MSFT , Hi! I'm also developing the Bot service of MS Teams by setting it in Korean. I also made an adaptive card using Input.Time, but even though I entered it as P.M, it still came out as A.M. Can you check it one more time?


Revert "Schedule: deprecate channels_to_plot parameter and use channels instead"

Reverts Qiskit/qiskit-terra#3394
Closes #3471
This PR broke the schedule drawer. I am reverting and please redo the PR making sure that the schedule.draw() works.
All the pulse visualization tests are skipped by default, which is why this was not caught.

i guess it's better if i just fix the issue rather than revert. but this should not happen, tests should not be skipped.


backport #686: async-hwi 0.0.11

Backports are when you port commits from master back to an earlier branched off version. :) But that doesn't matter.

Ah :sweat_smile: thanks for the informatin


Get list of users who have consented

Currently the documentation doesn't provide a list of users who have consented to the AAD application.
We need this to keep track of the users who have accessed our application. Please can you add this documentation. Of if it is available, please can you point to that.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a85b3af2-e3e5-1b3d-4a3e-ece11cd6aab4
Version Independent ID: 75ceec2b-dac1-d19f-2a88-d4740d26647a
Content: Azure Active Directory consent framework
Content Source: articles/active-directory/develop/consent-framework.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@saikumaru The consent is saved against the service principal linked to the application object. So if you navigate to the Azure Portal > Enterprise Applications > Application name > Permissions tab.
You will be able to see both the Admin consent and user consent details.
Hope this helps.

@saikumaru I am checking in to see if the above answer was helpful. Let me know if you have any other questions.

@ManojReddy-MSFT  thank you for your quick reply. I have verified this again, however I do not see them under the permissions tab.
The user who has consented is actually a personal outlook account holder and with "common" as tenant configuration in the application.
Please find the screenshots of the data as I see.

@saikumaru Is this a multi-tenant application?
If that's the case, Service principals are created in each tenant from where the user is coming from and consent will be saved on that service principal.
Example: If you have registered an app ABC in tenant 1 as a multi-tenant app, SP ABC is created in tenant 1 and when users from tenant 1 consent to the application it will be saved against SP ABC in tenant 1.
Now if a user from tenant 2 accesses your application (SP ABC will be created in tenant 2 ) and consents to it then the consent object will be saved against the SPN ABC created in tenant 2.

Yes, this is a multi-tenant application, with the possibility to even allow personal accounts to login.
Can you help me understand how one can view or retrieve this data from Tenant-1 and Tenant-2(I am not sure what would be Tenant-2 for a personal account) either through portal or any APIs

@saikumaru Every personal account, when invited into a tenant, will get an object ID and will always have a tenant associated to it.
You need to make the following Graph call to retrieve the Oauth2 permission grant object from each tenant programmatically.
Consent is tenant specific and is visible to users or identities within the same tenant. So, it is not possible for a developer to track the consent without having an identity in each tenant. You will either have to use a user's identity or application identity in each tenant to fetch the details required.
Can you help me understand why you would want this information?

Thank you @ManojReddy-MSFT , that makes sense now.
So, basically, to track personal accounts there is no way, until we make an entry for them in certain tenant, perhaps manually from the app.
And that if a personal account consents to a certain app, the data about this resides on his end of the tenant but not on the application where he logs in to(rather gets authenticated)
The basic need is to get the list of valid users who have
(a) Logged in till now(or consented till now), since inception of the app
(b) Current logged in users since past hour
And we need this information to populate a dashboard with these stats.
From what it looks, we might have to build our own application to keep track of this.
If my understanding is fine, I am fine to close this issue. Thank you again for this clarification!

@saikumaru Yes. Any user authenticating in Azure will have an object Id which is unique and is associated with the tenant in which the service (app, API, Azure portal, etc) you are authenticating for is registered. This Id will receive the token and consent will be saved on the tenant the user is part of.
You would probably need to maintain it on the application database directly. I will go ahead and close this, for now, let me know if you have any further questions.


Feature/btsd quering

Thanks for your contribution.  And then need a rebase.

Due to the unreachable repository, inactivity, missing DCO, unsquashed commits and unclear purpose, I'm closing the PR.


Add options to choose text-wrapping styles

By default, Magic Reflow will wrap Markdown list items with a hanging indent of two or more spaces. I personally like this, even though I generally use tabs for block indentation. However, it occurs to me other users might prefer to also use tabs for hanging indentation, or no hanging indent at all.
Similarly for Markdown blockquotes: Some users will prefer to put the right angle brackets (> ) at the beginning of each line, others may prefer to only put the angle bracket on the first line. Among users who only mark the first line of a blockquote, users might like to apply hanging indent, and others may not.
I also personally think Markdown hyperlinks are easier to read if you keep them as a single line, so when wrapping Markdown paragraphs, I often make an exception to the line length limit for links that include a long URL.

The blockquote thing (as you described in issue #2) is definitely a bug; I don't know that I've ever seen anyone wrap quotes by putting a >  just at the beginning of the first line. Fortunately that should be an easy fix.
I think/hope I've addressed the spaces-vs.-tabs question in issue #2.

I guess I don't know how common this is, but I usually just use a single > for a blockquote paragraph, because I find all those sharp angles a little distracting.

There are several valid ways to format a Markdown blockquote (one angle bracket at the beginning of the paragraph or one at the beginning of each line? hanging indents or no? spaces or tabs or a mix?) and list items (hanging indents or no? spaces or tabs or a mix? for unordered lists, asterisks or hyphens?). This wiggle room means that people are going to make different decisions on their preferred formatting.
One or a few formatting styles might be more popular than others, but since it's all just a matter of taste, there won't ever be 100% consensus. So adding options might help.


N4BiasFieldCorrection doesn't report exceptions without --verbose

Followup to #214
When N4 runs and fails, it only shows what happened if --verbose is on
> N4BiasFieldCorrection -d 3 --verbose -r -b [200] -c [200x200x200x200,0.0] -t [0.05,0.01,200] -w mask.mnc -i 0102.mnc -o 0102.N4.mnc

Running N4 for 3-dimensional images.

Mask not read.  Creating Otsu mask.
Exception caught:
itk::ExceptionObject (0x14cdf10)
Location: "unknown"
File: /opt/quarantine/minc-toolkit/1.9.10/src/build/ITKv4/Modules/Core/Common/include/itkImageToImageFilter.hxx
Line: 248
Description: itk::ERROR: N4BiasFieldCorrectionImageFilter(0x14c0a60): Inputs do not occupy the same physical space!
InputImage Origin: [-1.0770190e+02, -7.7216900e+01, -4.7320700e+01], InputImage_2 Origin: [-1.0770190e+02, -7.7216900e+01, -4.7320705e+01]
	Tolerance: 3.4376000e-06
InputImage Spacing: [3.4376000e+00, 3.4376000e+00, 5.2000000e+00], InputImage_2 Spacing: [3.4376000e+00, 3.4376000e+00, 5.1999899e+00]
	Tolerance: 3.4376000e-06

> N4BiasFieldCorrection -d 3 -r -b [200] -c [200x200x200x200,0.0] -t [0.05,0.01,200] -w mask.mnc -i 0102.mnc -o 0102.N4.mnc
<Silent failure>

A little more concerning on that, the exit code is success:
> N4BiasFieldCorrection -d 3 -r -b [200] -c [200x200x200x200,0.0] -t [0.05,0.01,200] -w mask.mnc -i 0102.mnc -o 0102.N4.mnc
> echo $?
0

I don't see how that is the case:
https://github.com/stnava/ANTs/blob/master/Examples/N4BiasFieldCorrection.cxx#L376-L388
And, again, please use non-minc examples.

Whoops, yeah, here's non-minc
N4BiasFieldCorrection -d 3 --verbose -r -b [200] -c [200x200x200x200,0.0] -t [0.05,0.01,200] -w mask.nii -i 0102.nii -o 0102.N4.nii

Running N4 for 3-dimensional images.

Mask not read.  Creating Otsu mask.
Exception caught:
itk::ExceptionObject (0xd96a40)
Location: "unknown"
File: /opt/quarantine/minc-toolkit/1.9.10/src/build/ITKv4/Modules/Core/Common/include/itkImageToImageFilter.hxx
Line: 248
Description: itk::ERROR: N4BiasFieldCorrectionImageFilter(0xd8ca30): Inputs do not occupy the same physical space!
InputImage Origin: [1.0770190e+02, 7.7216897e+01, -4.7320700e+01], InputImage_2 Origin: [1.0770190e+02, 7.7216897e+01, -4.7320705e+01]
	Tolerance: 3.4375999e-06
InputImage Spacing: [3.4375999e+00, 3.4375999e+00, 5.1999998e+00], InputImage_2 Spacing: [3.4375999e+00, 3.4375999e+00, 5.1999898e+00]
	Tolerance: 3.4375999e-06
> N4BiasFieldCorrection -d 3 -r -b [200] -c [200x200x200x200,0.0] -t [0.05,0.01,200] -w mask.nii -i 0102.nii -o 0102.N4.nii
> echo $?
0

Oh, wait, I see.  That's intended.  We don't want anything written if not in verbose mode due to ANTsR.


update backport branch name

Issue #, if available:
Description of changes:
follow up changes for #862
CheckList:

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

few backports #873, #884 pending on this. current backport branch don't follow the pattern backport/xxxx, so the delete_backport_branch.yml will skip to delete backport branch and further more those branchs are protected, we are not able to delete them.


Add Jolokia agents to ZK instances

Zookeeper should also have Jolokia agents, primarily for use on Kafka clusters lacking graphite + jmxtrans.

I'm not sure replacing symbols with strings was a real constructive use of time but it's done now.

Thank you for respecting our contributing guidelines @http-418. We look forward to future commits as we all try to clean up our codebase!

I assume this has already been tested?

Before making changes for FC and RC, yes.

Now I suppose I had better try it again.


Identifier

Added run-identifier input to optimize-variational-circuit task template to help discriminate among optimization runs with the same specs except for the initial-parameters.

Should be merged after changes in ldca2d_bugfix are incorporated.

@jromerofontalvo can we close it?


Feature Addition : Stealth

Feature Request: Stealth :trollface:
Description 🧷
Add functionality to hide the terminal window and make the logger run as a background process.

Acceptance Criteria 🧷

The terminal should not be visible.
The program should run as a background process.
Call the logger class in main.cpp and implement the logging feature.
The logger should be able to start automatically on system startup (as a service).

Additional Notes 🧷

Ensure that the logger runs silently in the background without affecting system performance.

Good Luck! 😊

Claim


app.ddlog spouse example

@netj  spouse_label(p1, p2) = NULL :- spouse_candidate(p1, _, p2, _).
Does not compile switch to spouse_label(p1, p2,0,NULL):- spouse_candidate(p1, _, p2, _).

I think this was fixed in docathon branch by putting NULL::BOOLEAN. I'm not entirely clear if this is ok right now (potentially putting duplicates) but this is how it should be written in my view.

OK but we need to make sure cause I tried compiling and it gave me an error.

Could you post the error line, for reference?


Failures in get_test.go for faas-cli

Expected Behaviour

Tests should pass when running make all
Current Behaviour

$ make all
...
--- FAIL: Test_DownloadFaaSCLIDarwin (0.24s)
    get_test.go:94: want: https://github.com/openfaas/faas-cli/releases/download/0.13.0/faas-cli-darwin, got: https://github.com/openfaas/faas-cli/releases/download/0.13.2/faas-cli-darwin
...

Possible Solution

faas-cli has shipped release 0.13.2. The test should expect that now.
Steps to Reproduce (for bugs)

make all

Context

I see failures in my local environment.
Your Environment

What Kubernetes distribution are you using?

N/A

Operating System and version (e.g. Linux, Windows, MacOS):

$ uname -a
Linux b26ed16a6250 4.19.121-linuxkit #1 SMP Tue Dec 1 17:50:32 UTC 2020 x86_64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"```

* What arkade version is this?

$ ./bin/arkade version
_             _
__ _ _ __| | ____ _  | | ___
/  | '__| |/ / _ |/ ` |/ _
| (| | |  |   < (| | (| |  __/
_,||  ||__,|_,_|_|
Get Kubernetes apps the easy way
Version: 0.7.3-1-gf06a764-dirty
Git Commit: f06a7640614490e40f766dfb55736f7d51494fcb

Working on a fix in #334

Thank you :+1:


Add non-interactive mode that disables spinners

I currently run some deployments for this from my CI server. The spinner adds quite a few lines to the logs.
It would be nice to skip the spinner if jaws is being run in a non-interactive manner (we can detect this via process.stdout.isTTY). We may also want to add a flag to force non-interactive mode. Is this something you're open to me implementing?
I'm thinking of creating a method in utils/cli.js that we use to determine if we are interactive or not. This can be used throughout the code base to change the way things are handled. I would then update utils/cli.js#spinner to return a mock spinner object that doesn't do anything if we're in a non-interactive context.
Another addition might be returning an error when a command is run in non-interactive mode without all options specified, instead of prompting for the values in a non-interactive context.

closing. fixed in PR above

Awesome! Thanks @shortjared


Fixes #38

Pull Request Test Coverage Report for Build 69

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 85.925%

Totals

Change from base Build 68:
0.0%

Covered Lines:
1575

Relevant Lines:
1833

💛  - Coveralls


Yuki Yamaguchi Unit 1 Sprint 2

I love how many different libraries you tried! It was a wild ride reading through all of them :P
Your code looks great, it's just those dang dependences stopping it from running.
Great job researching so many different libraries and fighting with them, if nothing else you can say you're an expert and reading documentation and examples
Also something you may be interested in trying is loading in https://raw.githubusercontent.com/cphalpert/census-regions/master/us census bureau regions and divisions.csv
as a seperate dataframe and merging it with the thanksgiving sides to get state codes for your choropleth and then trying to aggregate the sides by state
You'd think 538 would have better formatted data but those regions are pretty much a dead end for most major libraries choropleth defaults sadly


linux commands to find or exit

help us in accumulating all the linux command lines.
Make your Hacktober PR !

help us in accumulating all the linux command lines.
Make your Hacktober PR !

Hi, please assign it to me.

Go ahead


Assignment1_Python

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
What did you learn from the changes you have made?
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
How were these changes tested?
A reference to a related issue in your repository (if applicable)
Checklist

[x] I can confirm that my changes are working as intended

You did a good job here!
Just a few quick notes:
In part 2, your function works for the case-insensitive comparison, but it needs a minor adjustment for case-sensitive checks. Right now, the case-sensitive path will incorrectly compare unsorted strings. You need to ensure both strings are sorted regardless of the is_case_sensitive flag.
Also, please keep in mind that it's better to follow the guidelines on how to complete your PR description. https://github.com/UofT-DSI/onboarding/blob/main/onboarding_documents/submissions.md#guidelines-for-pull-request-descriptions
Please go ahead and do the modifications and then let me know. Thanks!

Hi @pedram-aliniaye-asli
I've made changes.
Could you please check?
Thank you for your support!

you did a great job here!
Just a couple of quick notes:
Please remember to fill in the PR description for better context.
The branch name should be assignment-1 instead of assignment.
Please go ahead and close this pull request now. Thanks!


Add button attribute

Add button attribute to button element to fix searchbox bug in buyer frontend where pressing
enter on textbox trigger synthetic mouselick event on nearest button in the form.  Adding type button
to the button element overrides default the button default type of submit within the form.

Great sleuthing :+1:


Introduce #[builder(overwritable)]

This new attribute can be placed on individual members or at the top level via #[builder(on(_, overwritable)]. It disables the compile-time check for overwriting already set members. For example with this attribute this code compiles:
#[derive(bon::Builder)]
struct Example {
    #[builder(overwritable)]
    x: u32,
}

Example::builder()
    .x(1)
    .x(2)
    .build();

Why is this useful? It removes a whole bunch of generic state variables and where bounds from the generated code and considerably improves the compile times. For example in the frankenstein repo the difference for me is around 2-3 seconds of compile time.
@EdJoPaTo would you be interested in enabling this in frankenstein to improve the compile times (even at the cost of allowing overwrites)? To me it looks like the problem of overwrites is not that big and the compilation time perf. gains are probably more important.
I have this feature already implemented on my branch https://github.com/elastio/bon/pull/145, and I'm planning to include it in the next release.

The name itself doesn't include something in relation to performance currently so this might be misleading…
Thought about having this as a feature or something to enable it only on debug or something like that. But it doesn't seem that good either…
Not sure what I think about mixing feature and performance thingy… 🤔

Well, it can't be a cargo feature because it changes the type signature of the builder (it removes some generic associated types from the builder's state trait). I'm planning to make that type signature stable (i.e. to be able to name the actual type of the builder). So if anyone enables it as a cargo feature, their code may cease to compile if downstream code depends on some type states being available.
Therefore, this should be configured via attributes. The name of the attribute indeed doesn't make it clear that it improves the compilation performance, but I'm don't think that's important, because the attribute name describes what it actually does (makes it possible to call the setter multiple times for the same member). The fact, that it simplifies the generics machinery under the hood is just a considerable bonus, which will be part of the docs (and maybe have a separate page on "improving compilation perf" in the guide). I expect people will just enable this option in a single place (like with an attribute alias), and put a descriptive comment that say "it improves the compile perf. by N seconds).

So, you'd still like to keep the overwrites disabled? My expectation was that it wouldn't be as important since the overwrites problem doesn't happen that often, and people are used to this when working with manually-written builders. For some, it may even be a feature

im not entirely sure about it. Setting something twice seems like a mistake so having that is a code smell. Normally code smells are something for the linters… Could it create another kind of warning?
Also… is this a requirement for the basic library? Maybe it should allow overrides all the time and have a flag to prevent setting it more than once? Then all the people get better compile time performance for free and only the ones that need the override prevention can enable it? Maybe that's a better default?

Well, the difference between overwritable and non-overwritable becomes visible only at a greater scale (especially in structs with 50+ fields). In the general case, for structs of reasonable sizes and counts, having the overwrites protection makes sense by default, so I this option would only be useful for projects of bigger scale like frankenstein. This is where you already use the attribute alias approach, whereby requiring users to have an attribute alias by default to protect from overwrites doesn't seem reasonable.
Unfortunately, there isn't a good way to write a custom lint in Rust today. There are some tools that do that, but they are unpopular and 99% of people don't use anything fancier than clippy.

Setting something twice seems like a mistake so having that is a code smell

Yes, but another scenario could be where the developer uses this feature to implement a base fixture for tests. For example, the tests need to fill only the fields they are interested in and keep all other fields with dummy values.

#[derive(bon::Builder)]
#[cfg_attr(test, builder(on(_, overwritable)))]
struct User {
    login: String,
    name: String,
    level: u32,
}

#[cfg(test)]
mod tests {
    use super::*;
    use user_builder::{SetLevel, SetLogin, SetName};

    fn user() -> UserBuilder<SetLevel<SetName<SetLogin>>> {
        User::builder()
            .level(24)
            .name("Bon Bon".to_owned())
            .login("@bonbon".to_owned())
    }

    #[test]
    fn test_with_empty_name() {
        // Build user with an empty name, and all other fields filled with dummy data
        let user = user()
            .name("".to_owned())
            .build();

        // ...
    }

    #[test]
    fn test_with_zero_level_and_admin_login() {
        let admin = user()
            .level(0)
            .login("admin".to_owned())
            .build();

        // ...
    }
}

I think it's actually a really handy (and might also deserve a separate guide page).

Yeah, I see you points. Anyway, I already have this feature implemented in my branch. I'll probably just keep it disabled by default and make it available only if the user enables some experimental cargo feature flag waiting for some more user feedback on the use cases.

Is there also a plan / time to remove the feature when it doesn't seem to be used and no one stated their use case? Keeping the code clean seems like a good idea :innocent:

I don't think this particular feature bears high maintenance burden. I'll just keep it experimental for 6 months, for example. And if I receive no feedback on this issue, I'll remove it

Hello, glad to see you have implemented this feature already! Thank you!
For my use case, I am building UI structs that looks like this:
#[derive(bon::Builder)]
#[builder(on(String, into))]
pub struct TextInput {
    name: String,
    value: Option<String>,
    error: Option<String>,
}

And let's say the value and error values comes from multiple sources and they have precedences too. With these requirements I would write something like this:
// let's say the value is an email (e.g<EMAIL_ADDRESS>let value_from_db = db_get_current_value().ok();
let value_from_user_input = user_input_value();
let default_value = String::from("default value");

let error_from_user_input = value_from_user_input.as_ref().and_then(|email| email.validate().err());
let system_error = value_from_user_input.as_ref().and_then(|email| verify_email_is_available(email).err());

// Building the UI
let email_input = TextInput::builder()
    .name("email")
    .value(default_value)
    .maybe_value(value_from_db)
    .maybe_value(value_from_user_input)
    .maybe_error(error_from_user_input)
    .maybe_error(system_error)
    .build()

Note that I didn't test the snippet, it's just for illustration.
I already use TypedBuilder for this, other types that doesn't require this and mutators, I use bon for it.
Hope this help.

I already use TypedBuilder for this

Could you elaborate how you configured TypedBuilder to allow for overwrites? As I know, TypedBuilder doesn't allow calling setters repeatedly, and there is no attribute to disable the overwrites protection.
Anyway, I think the code you shown contains a mistake. Every call to a setter overwrites the previous value. For example, if you do smth like .a(Some(1)).a(None), then the resulting value in a will be None. There is no special behavior for Option<T> in this case.
Just think of this like this (with the .value()/maybe_value() from your example):
let  mut value = Some(default_value); // equivalent to `value(default_value)`
value = value_from_db;                // equivalent to `maybe_value(value_from_db)`
value = value_from_user_input;        // equivalent to `value_from_user_input`

So it's more like assigning to a variable. I think from the code above it's clear that the last assignment fully overwrites previous assignments.
Instead, if you want to have a chain of defaults, then you should use Option::or, Option::or_else and Option::unwrap_or methods to implement that.
#[derive(bon::Builder)]
#[builder(on(String, into))]
pub struct TextInput {
    name: String,
    value: String,
    error: Option<String>,
}

let value_from_db: Option<String> = todo!();
let value_from_user_input: Option<String> = todo!();
let default_value = String::from("default value");

let error_from_user_input: Option<String> = todo!();
let system_error: Option<String> = todo!();

// Building the UI
let email_input = TextInput::builder()
    .name("email")
    .value(
        // This chain will stop at the first non-None value,
        // or on the final `unwrap_or`
        value_from_user_input
            .or(value_from_db)
            .unwrap_or(default_value),
    )
    .maybe_error(error_from_user_input.or(system_error))
    .build();

If you do it like this, you'll also notice that value should not be wrapped in Option<...>, because it always has a default value, so it can never be None.

@MuhannadAlrusayni

I already use TypedBuilder for this

Could you elaborate how you configured TypedBuilder to allow for overwrites? As I know, TypedBuilder doesn't allow calling setters repeatedly, and there is no attribute to disable the overwrites protection.
Anyway, I think the code you shown contains a mistake. Every call to a setter overwrites the previous value. For example, if you do smth like .a(Some(1)).a(None), then the resulting value in a will be None. There is no special behavior for Option<T> in this case.
Just think of this like this (with the .value()/maybe_value() from your example):
let  mut value = Some(default_value); // equivalent to `value(default_value)`
value = value_from_db;                // equivalent to `maybe_value(value_from_db)`
value = value_from_user_input;        // equivalent to `value_from_user_input`

So it's more like assigning to a variable. I think from the code above it's clear that the last assignment fully overwrites previous assignments.
Instead, if you want to have a chain of defaults, then you should use Option::or, Option::or_else and Option::unwrap_or methods to implement that.
#[derive(bon::Builder)]
#[builder(on(String, into))]
pub struct TextInput {
    name: String,
    value: String,
    error: Option<String>,
}

let value_from_db: Option<String> = todo!();
let value_from_user_input: Option<String> = todo!();
let default_value = String::from("default value");

let error_from_user_input: Option<String> = todo!();
let system_error: Option<String> = todo!();

// Building the UI
let email_input = TextInput::builder()
    .name("email")
    .value(
        // This chain will stop at the first non-None value,
        // or on the final `unwrap_or`
        value_from_user_input
            .or(value_from_db)
            .unwrap_or(default_value),
    )
    .maybe_error(error_from_user_input.or(system_error))
    .build();

If you do it like this, you'll also notice that value should not be wrapped in Option<...>, because it always has a default value, so it can never be None.

Oh! sorry I forget that I have used mutators like this:
#[derive(TypedBuilder)]
#[builder(field_defaults(setter(into)), mutators(
    pub fn error(&mut self, error: impl ToString) {
        self.error = Some(value.to_string())
    }
    pub fn try_error(&mut self, error: Option<impl ToString>) {
        if let Some(error) = error {
            self.error = Some(error.to_string())
        }
    }
    pub fn value(&mut self, value: impl ToString) {
        self.value = Some(value.to_string())
    }
    pub fn try_value(&mut self, value: Option<impl ToString>) {
        if let Some(value) = value {
            self.value = Some(value.to_string())
        }
    }
))]
pub struct TextInput {
    name: String,
    value: Option<String>,
    error: Option<String>,
}

And yes, this is is not the same behaviour as overwrite would be, it's like set_if_some and I am not sure any more if it fits within this feature, but it's kind of related to it some how, since it needs the builder to allow set the value multiple times.

@MuhannadAlrusayni
Aha, with that TypedBuilder code, now it's clear. Indeed, I think this use case doesn't fit into the overwritable attribute.
If you'd like to adapt that code to bon, you'll need to use custom fields (here is the guide).
The difference is that your custom setters need to be defined in a separate impl block for the builder:
#[derive(bon::Builder)]
pub struct TextInput {
    #[builder(field)]
    value: Option<String>,

    #[builder(field)]
    error: Option<String>,

    name: String,
}

impl<S: text_input_builder::State> TextInputBuilder<S> {
    pub fn error(&mut self, error: impl ToString) {
        self.error = Some(error.to_string())
    }
    pub fn try_error(&mut self, error: Option<impl ToString>) {
        if let Some(error) = error {
            self.error = Some(error.to_string())
        }
    }
    pub fn value(&mut self, value: impl ToString) {
        self.value = Some(value.to_string())
    }
    pub fn try_value(&mut self, value: Option<impl ToString>) {
        if let Some(value) = value {
            self.value = Some(value.to_string())
        }
    }
}

An issue I have with the overwritable feature is that it fiddles with the typestate.
A setter currently maps Builder<S> -> Builder<SetField<S>>, regardless if S already was IsSet<Field> or not. Arguably, I would expect the setter to only generate a different typestate if the field had not been previously assigned, something like
setter: Builder<S> -> Builder<SetField<S>> where S: IsUnset<Field>
setter: Builder<S> -> Builder<S> where S: IsSet<Field>

Also, as mentioned above by EdJoPaTo, perhaps a setter should only be allowed (at most) once, which would make overwritable a double edge sword.
I have fiddled a bit trying to implement getter(mut) and I got it working locally (I could tidy it up a bit and open a PR for that). My personal opinion is that setters should be once-only calls, and if you need to overwrite any field, you could do it with a getter(mut).

@angelorendina, thank you for looking into this and considering a contribution!
overwritable does remove the where S: IsUnset bound by design. Although, how do you think this can be a problem for getter(mut)? I've recently found a somewhat obscure use case for overwritable when changing from a couple of bool setters to a single enum setter (https://github.com/kivikakk/comrak/pull/497#issuecomment-2521343524).
Also, could you share your use case for getter(mut)? I wonder if that use case could be satisfied with #[builder(field)] instead?
Feel free to message me at https://bon-rs.com/discord for easier communication

@Veetaha thanks for pointing out the builder(field) attribute: it almost fits our use case.
I can actually repurpose the example in the documentation to explain our issue: imagine we needed the Command to have a non-empty list of arguments!
I have a workaround that looks like this:
#[derive(bon::Builder)]
struct Command {
    #[builder(field)]
    inner_args: Vec<String>,
    // marker field that at least one argument was passed, and the list is not empty
    args: (),
    name: String,
}

impl Command {
    fn to_string(self) -> String {
        // safe to assume inner_args is non-empty
        assert!(!self.inner_args.is_empty());
        todo!("should construct the string `name arg1 args2 ...`")
    }
}

impl<S> CommandBuilder<S> where S: command_builder::State, S::Args: command_builder::IsUnset<> {
    pub fn arg(self, arg: String) -> CommandBuilder<command_builder::SetArgs<S>> {
        self.args(()).append_arg(arg)
    }
}

impl<S> CommandBuilder<S> where S: command_builder::State, S::Args: command_builder::IsSet<> {
    // (*) Does not compile, because rustc cannot infer that this is mutually exclusive with `arg` above...
    // pub fn arg(mut self, arg: String) -> CommandBuilder<S> {
    //     self.inner_args.push(arg);
    //     self
    // }
}

impl<S> CommandBuilder<S> where S: command_builder::State, S::Args: command_builder::IsSet<> {
    // (*) ...so we have to give it a different name...
    pub fn append_arg(mut self, arg: String) -> CommandBuilder<S> {
        self.inner_args.push(arg);
        self
    }
}

#[test]
fn requires_arguments() {
    let command = Command::builder()
        .name("name".to_string())
        .arg("first".to_string())
        // (*) ...hence this does not compile...
        // .arg("would be nice".to_string())
        // (*) ...but this works fine.
        .append_arg("second".to_string())
        .build();

    // Does not compile since `args` is never set :)
    // let _no_compile = Command::builder().build();
}

but it would be nice if this kind of functionality was supported by a simple
#[derive(bon::Builder)]
struct Command {
    #[builder(field)]
    inner_args: Vec1<String>,
    name: String,
}

I have a workaround that looks like this:

Thank you for sharing this. Although I don't see how the example use case you shown could be nicely solved with getter(mut). I expect that getter(mut) will have where S::Member: IsSet bound on it, so you'd need to have an eagerly initialized member.
Also, here is a bit simpler workaround without getter(mut) that uses overwritable in this case. It solves the problem of arg/append_arg naming conflict:
pub struct Command {
    name: String,
    args: Vec<String>,
}

#[bon::bon]
impl Command {
    #[builder]
    fn new(
        #[builder(field)] inner_args: Vec<String>,

        #[builder(overwritable, setters(vis = ""))] _args: (),

        name: String,
    ) -> Self {
        Self {
            name,
            args: inner_args,
        }
    }
}

use command_builder::{SetArgs, State};

impl<S: State> CommandBuilder<S> {
    pub fn arg(mut self, arg: String) -> CommandBuilder<SetArgs<S>> {
        self.inner_args.push(arg);
        self.args(())
    }
}

fn main() {
    Command::builder()
        .name("bon".to_owned())
        .arg("one".to_owned())
        .arg("two".to_owned())
        .build();

    // This doesn't compile:
    // .build();
    //  ^^^^^ the member `Unset<args>` was not set, but this method requires it to be set
    Command::builder()
        .name("bon".to_owned())
        .build();
}

Do you have a specific example with getter(mut) that would solve the problem of arg/append_arg naming and a separate #[builder(field)]?

@angelorendina, I've just discovered a problem in the current #[builder(overwritable)], which isn't critical, but still a bit ugly. The problem is that if you call the setter several times for the required member called x1, for example, then you'll end up with the builder's type state SetX1<SetX1<SetX1>>, when instead it'd be cool if the type state didn't change after the first call to the setter, and once the member is already set, no new SetX1<> state transition is added to the type.
By itself this nesting of SetX1 on every setter call isn't bad on the surface. It's only a minor problem for the case when people want to spell the exact builder type.
However, I tried to work around this problem and suggest an alternative solution to the one proposed above (https://github.com/elastio/bon/issues/149#issuecomment-2523782192). With this approach the building process is split into two stages:

Fill all named parameters other than the args.
Fill args (here we can't intermix other named parameters).

As you can see, the limitation here is that the order of the building matter. Although, this may be a plus, because I don't think you'd want to see the pattern like .arg("foo").name("bar").arg("bar") where the name setter appears in the middle of arg(...) setters call chain.
use bon::{bon, builder};

pub struct Command {
    args: Vec<String>,
    name: String,
}

#[bon]
impl Command {
    // The first stage. Here we specify all regular named parameters.
    // We specify `arg` as the `finish_fn` parameter, and make the `finish_fn` named
    // after it. This way the `finish_fn` appears just like a regular setter to the caller,
    // however, it returns a new type of the builder, once it is called, thus transitioning
    // to a new state at the type level.
    #[builder(finish_fn(name = arg))]
    pub fn new(
        #[builder(finish_fn)] //
        arg: String,
        name: String,
    ) -> CommandWithArg1Builder {
        Self::with_arg1(arg, name)
    }

    // Here we accept all values from the stage 1, and add the ability to push new args
    // via `#[builder(field)]`. A small problem here is that `arg1` needs to be passed as
    // a `start_fn` parameter separate from `builder(field)`. Ideally, we'd have the ability
    // to access start_fn parameters just like regular `#[builder(field)]`s
    #[builder(builder_type(vis = "pub"), finish_fn = build)]
    fn with_arg1(
        #[builder(start_fn)] //
        arg1: String,

        #[builder(start_fn)] //
        name: String,

        #[builder(field)] //
        mut args: Vec<String>,
    ) -> Command {
        // That's suboptimal, but we can make `start_fn` parameters accessible in `self`
        // of the builder just like `builder(field)` params. We don't even need a getter(mut)
        // for that.
        args.insert(0, arg1);

        Command { args, name }
    }
}

impl<S: command_with_arg1_builder::State> CommandWithArg1Builder<S> {
    pub fn arg(mut self, arg: String) -> Self {
        self.args.push(arg);
        self
    }
}

fn main() {
    Command::builder()
        .name("echo".to_owned())
        .arg("Hello, World!".to_owned())
        .arg("asd".to_owned())
        .arg("asdsa".to_owned())
        .build();

    // Doesn't compile (method `build` was not found)
    // Command::builder()
    //     .name("echo".to_owned())
    //     .build();
}

Also, I think it's possible to swap the stages 1 and 2, if you'd like the caller to fill args first (not last).
So I think what would be cool here, is the ability to access start_fn as fields on the builder. This would make this pattern nicer.

@Veetaha indeed, the issue we are facing is that we do need to explicitly spell out the type of the builder: we have a state machine that wraps various stages of the builder, so we need each stage to explicitly state which fields are set or unset.
The issue you mentioned about overwritable is exactly what I meant when I originally said that I would expect
setter: Builder<S> -> Builder<SetField<S>> where S: IsUnset<Field>
setter: Builder<S> -> Builder<S> where S: IsSet<Field>

so that the setter avoid appending further SetField to the type, if it's already set.
I was fiddling with another possible implementation of the internals of the derive, and I got the following to work in a way that does not append multiple SetField. I am not sure how it compares to the internals of bon, but perhaps it could be repurposed or adapted:
/// The actual structure we will build.
struct Thing {
    a: u8,
    b: u16,
}

/// Marker for a field that was populated with a value
struct Set<T>(T);
/// Marker for a field that was not populated
struct Unset;

/// Only implemented for [Set] and [Unset]
trait Field {}
impl<T> Field for Set<T> {}
impl Field for Unset {}

/// Represents the state of each stage of the builder,
/// where its associated types correspond to the final fields
/// and are marked as either [Set] or [Unset].
trait State {
    type A: Field;
    type B: Field;
}

/// Marker for a builder whose fields have not been set.
struct Empty;
impl State for Empty {
    type A = Unset;
    type B = Unset;
}

/// Marker for a builder whose A field has been set.
struct WithA<S: State>(PhantomData<S>);
impl<S: State> State for WithA<S> {
    type A = Set<u8>;
    type B = S::B;
}

/// Marker for a builder whose B field has been set.
struct WithB<S: State>(PhantomData<S>);
impl<S: State> State for WithB<S> {
    type A = S::A;
    type B = Set<u16>;
}

/// The actual builder, together with its generic representing its completion state.
struct Builder<S: State> {
    a: S::A,
    b: S::B,
}

// (*) Wrapper workaround to allow for mutually exclusive implementations, because...
trait SetterA<S: State>: Sized {
    /// Sets the value of `a` for the builder.
    fn a(self, a: u8) -> Builder<S>;
}
impl<S: State<A = Unset>> SetterA<WithA<S>> for Builder<S> {
    // (*) ...this...
    fn a(self, a: u8) -> Builder<WithA<S>> {
        Builder {
            a: Set(a),
            b: self.b,
        }
    }
}
impl<S: State<A = Set<u8>>> SetterA<S> for Builder<S> {
    // (*) ...and this should be mutually exclusive,
    // but cause a compiler error due to a known bug.
    fn a(self, a: u8) -> Builder<S> {
        Builder {
            a: Set(a),
            b: self.b,
        }
    }
}

trait SetterB<S: State>: Sized {
    /// Sets the value of `b` for the builder.
    fn b(self, b: u16) -> Builder<S>;
}
impl<S: State<B = Unset>> SetterB<WithB<S>> for Builder<S> {
    fn b(self, b: u16) -> Builder<WithB<S>> {
        Builder {
            a: self.a,
            b: Set(b),
        }
    }
}
impl<S: State<B = Set<u16>>> SetterB<S> for Builder<S> {
    fn b(self, b: u16) -> Builder<S> {
        Builder {
            a: self.a,
            b: Set(b),
        }
    }
}

impl<S: State<A = Set<u8>, B = Set<u16>>> Builder<S> {
    /// Finishes the build, returning the fully populated [Thing].
    // Only available when all fields have been set, guaranteed at compile time by the trait bounds.
    fn build(self) -> Thing {
        Thing {
            a: self.a.0,
            b: self.b.0,
        }
    }
}

impl Thing {
    /// Gets a Builder for [Thing].
    fn builder() -> Builder<Empty> {
        Builder { a: Unset, b: Unset }
    }
}

#[test]
fn foo() {
    let x = Thing::builder().a(8).b(16).build();
    assert_eq!(x.a, 8);
    assert_eq!(x.b, 16);

    let y = Thing::builder().b(16).a(8).build();
    assert_eq!(y.a, 8);
    assert_eq!(y.b, 16);

    let z = Thing::builder()
        // appends WithA
        .a(8)
        // appends WithB
        .b(16)
        // does NOT append WithA
        .a(7)
        // does NOT append WithB
        .b(15)
        .build();
    assert_eq!(z.a, 7);
    assert_eq!(z.b, 15);

    // let _no_compile = Thing::builder()
    //     .a(8)
    //     .build();
}

The issue you mentioned about overwritable is exactly what I meant

Yeah, now I see, I somehow missed that point initially 😳, sorry for that.

I got the following to work

Thank you for sharing this, that's very helpful! I tried to fiddle with this approach as well, and adapt it to bon's codegen. However, the main problem that I see here is that this requires generating additional traits (one per each member), several method implementations (two per each member), which incurs compile time overhead. My initial idea for overwritable was that it would reduce compile time overhead (not increase it 😅).
However, even if there weren't any compile time overhead, the bigger problem for me is that the generated setters become trait methods instead of being inherent methods. This would require the user of the builder to import the necessary traits into their scope, which is inconvenient. It also increases the API surface of the builder, making it prone to more API breakages.
I tried to fiddle with the provided code, but I couldn't find a way to keep the setters as inherent methods (yet?). I'll try to fiddle with this more. Hopefully there is a better way to do that. Otherwise I think this may be blocked by https://github.com/rust-lang/rust/issues/20400

actually, i'd find it quite usable, as it adds some flexibility, which is simply missing otherwise, and bon cannot be used at all

@dj8yfo could you share an example where overwritable is critical in your case?

@Veetaha it'll pop up some time later in a link to this issue. Please don't mind if it appears silly to you


Any codesandbox or code example for implementing cross domain communications

No, because it's impossible to have Coodesandbox and for example Codepen demo. You would need to add an iframe on those domains that are not possible. To have cross domain communication you need to have your own server that you control, like the one on the two domains I control https://jcubic.pl/sysend.php

But if you want one end I can create a Codepen demo that will send a message to https://jcubic.pl/sysend.php but I'm not sure if this will help you in any way.

Thanks,
For cross domain, message is broadcasting from one web server to other but not vice versa.
Can you please let me know anything i am missing

It's because you need to have an iframe on both domains, There is open PR #30 but I think it would be a real security issue if the library allows both directions communication when only one page has an iframe. I need to investigate maybe add some API to protect the page that has an iframe on it, so you can specify which domain can receive messages.
If you don't protect the server the attacker can steal potentially sensitive information. Also, the PR breaks old code with two iframes.

Feature of a single proxy HTML file is tracked in #37. The code was moved to the devel branch.

It seems that the library stopped working on CodeSandbox. Just tried it to use in the ReactJS project. The module is loaded when the page has already been loaded and the load event handler is not triggered. Which makes the whole library broken. I've tried to debug on CodeSandbox but because Overwrite Panel doesn't work with Service Worker, I was not able to quickly test it.

Sorry for the long delay. It seems that one file for Cross-domain communication is not needed for CodeSandbox since you can create a proxy HTML file on CodeSandbox.
Here is an example of Cross-Domain communication:
https://codesandbox.io/s/proxy-demo-hpfc53?file=/index.html
You need to use demo.html from the repo and run it on port 8000 (I used python3 -m http.server command in sysend repository).
To have two-side communication you need to edit the proxy locally and add domain of the CodeSandbox origin (for me it was "https://hpfc53.csb.app").


Fix Slack link

Link in the footer seems broken to me. I would favor a more direct pointer to https://cordova.slack.com/.

The direct link will probably not work as this is for an app to invite yourself to the Slack channel.
But currently it doesn't seem to load at all, so there is definitely something broken.

Problem appears to be in the slack library itself...
Stacktrace when interacting with the slack button:
Uncaught TypeError: e.data.substr is not a function
    at slackin.js:76
(anonymous) @ slackin.js:76


ROX-13758: Backend support for in-use feature

Description
Un-hide the search label for embedded collection ids on collections objects, and add the same search tag to scope_id inside of resource collections to allow for a simple search query to show objects which reference a given collection.
Checklist

[ ] Investigated and inspected CI test results

Testing Performed
Verified that the queries work as expected through the API:
roxcurl https://localhost:8000/v1/collections\?query.query\=Embedded%20Collection%20ID%3A3e0f67ec-375a-4850-9626-526e4d08df5e\&query.pagination.offset\=0\&query.pagination.limit\=20\&query.pagination.sortOption.field\=Collection%20Name\&query.pagination.sortOption.reversed\=false | jq

/test all

/test all

/test all

/retest

/test all

/retest


Updating logging to follow .NET logging guidance

https://learn.microsoft.com/en-us/dotnet/core/extensions/logging-library-authors

Various components here are being passed an ILogger. The general recommendation for libraries is instead to accept an ILoggerFactory. That let’s a) the component itself select a category to use and b) pass the ILoggerFactory along to another component that can also choose its own category. For example, the OpenAIPlanner is being passed an ILogger, and the caller is being forced to do loggerFactory.CreateLogger(), which really isn’t its job; it should instead be able to just pass in loggerFactory. Logging guidance for .NET library authors - .NET | Microsoft Learn - Stephen Toub


Prisma migrate deploy is leaving a zombie process

Bug description
After every run of prisma migrate deploy there's an empty [node] process:
# ps aux

PID   USER     TIME  COMMAND
    1 root      0:09 {node} /usr/bin/qemu-x86_64 /usr/local/bin/node node dist/index.js
  143 root      0:01 [node]
  195 root      0:00 {sh} /usr/bin/qemu-x86_64 /bin/sh /bin/sh
  202 root      0:00 ps aux

How to reproduce
 /app/node_modules/.bin/prisma migrate deploy

Expected behavior
No empty [node] process in stdout of ps aux
Prisma information

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

Environment & setup

OS: docker/node:16.19-alpine
Database: PostgreSQL 14.9
Node.js version: v16.19.1

Prisma Version
# yarn prisma -v
yarn run v1.22.19
$ /app/node_modules/.bin/prisma -v
Environment variables loaded from .env
prisma                  : 5.3.1
@prisma/client          : 5.3.1
Current platform        : linux-musl-openssl-3.0.x
Query Engine (Node-API) : libquery-engine 61e140623197a131c2a6189271ffee05a7aa9a59 (at<EMAIL_ADDRESS>Schema Engine           : schema-engine-cli 61e140623197a131c2a6189271ffee05a7aa9a59 (at<EMAIL_ADDRESS>Schema Wasm             : @prisma/prisma-schema-wasm 5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59
Default Engines Hash    : 61e140623197a131c2a6189271ffee05a7aa9a59
Studio                  : 0.494.0
Done in 16.95s.

Hi. Ofcuz
Here:
$ /app/node_modules/.bin/prisma migrate deploy
2023-09-20 17:09:12 Environment variables loaded from .env
2023-09-20 17:09:12 Prisma schema loaded from prisma/schema.prisma
2023-09-20 17:09:12 Datasource "db": PostgreSQL database "dp_product", schema "public" at "***:5432"
2023-09-20 17:09:12
2023-09-20 17:09:13 1 migration found in prisma/migrations
2023-09-20 17:09:13
2023-09-20 17:09:13
No pending migrations to apply.
2023-09-20 17:09:13 Done in 10.98s.


Bug Report: Error with Default Integrations in @sentry/capacitor 1.0.1

Environment
Sentry versions (latest):
@sentry/capacitor version: 1.0.1
"@sentry/nextjs": "8.33.0",

Next.js version (latest of V13):
"next": "13.5.7"

Capacitor versions (latest):
    "@capacitor/browser": "^6.0.1",
    "@capacitor/camera": "^6.0.1",
    "@capacitor/cli": "^6.1.1",
    "@capacitor/core": "^6.1.1",
    "@capacitor/filesystem": "^6.0.0",
    "@capacitor/ios": "^6.1.1"

TypeScript version:
"typescript": "5.1.3"

Platform: Capacitor app running on iOS
Steps to Reproduce

Initialize Sentry in a Capacitor app using @sentry/capacitor version 1.0.1 with default integrations.

   // src/pages/_app.tsx
   import { useEffect } from 'react';
   import { Capacitor } from '@capacitor/core';
   import { App as CapApp } from '@capacitor/app';
   import * as Sentry from '@sentry/capacitor';

   useEffect(() => {
     const initSentry = async () => {
       if (Capacitor.isNativePlatform()) {
         const appInfo = await CapApp.getInfo();

         Sentry.init({
           dsn: 'YOUR_SENTRY_DSN',
           release<EMAIL_ADDRESS>           enableOutOfMemoryTracking: false,
           // No customization of defaultIntegrations
         });
       }
     };

     initSentry().catch((err: Error) => {
       console.error(err);
     });
   }, []);

Build and run the Capacitor app on a device or emulator.
Perform any action that triggers network requests or other operations that Sentry might instrument.

Expected Result

The app should run without any errors related to Sentry.
Sentry should capture errors and performance data as configured.
Default integrations should work as in previous versions without causing issues.

This used to work in the previous Sentry versions.
Actual Result
The app encounters runtime errors related to Sentry's default integrations.
Error messages observed:
  TypeError: Cannot create proxy with a non-object as target or handler
  TypeError: A Proxy's 'target' should be an Object
Stack trace snippet:
  Cannot create proxy with a non-object as target or handler

  /_next/static/chunks/8363.5460f4c2d4fc202b.js in instrumentXHR at line 1:4143

  /_next/static/chunks/8363.5460f4c2d4fc202b.js in maybeInstrument at line 16:5949

  /_next/static/chunks/8363.5460f4c2d4fc202b.js in addXhrInstrumentationHandler at line 1:4028

  Object.setup at line 5:7634

These errors occur when Sentry tries to instrument XMLHttpRequest or related APIs.
The issue did not occur in previous versions of @sentry/capacitor before version 1 and Sentry V8.
What you thought would happen.
Additional Info / My Thoughts:

Impact: We get errors regarding this, not sure how important they are, it seems it doesn't affect the app itself.

Is the issue is specifically with the XHR instrumentation?

Temporary solution:

Disabling default integrations. What is the affect of this?

Questions

Is there a known issue with default integrations in @sentry/capacitor version 1.0.1 causing these errors?

Are there any recommended changes to configuration to resolve this without disabling default integrations?

If disabling the default integrations is the solution for now: how do we add integrations with Sentry Capacitor and which ones should work?

Thanks for working on this package, it's crucial to us and we are happy that Sentry is recognising Capacitor!

The same error occurs with these dependencies:
"@sentry/capacitor": "1.0.0",
"@sentry/vue": "8.27.0",

Interestingly in our configuration only for android builds - for web and iOS everything works fine.

Thank you for opening this issue! We will investigate further what's going on here.

This issue is likely related to this one: https://github.com/getsentry/sentry-javascript/issues/14077

One thing that could be done for the moment is instead of removing all integrations, add the breadcrumb integration and only disable the xhr option, example:
+ import { breadcrumbsIntegration, init as sentryAngularInit } from '@sentry/angular'; // or from @sentry/vue, @sentry/react,...
import * as Sentry from '@sentry/capacitor';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

// ATTENTION: Change the DSN below with your own to see the events in Sentry. Get one at sentry.io
Sentry.init(
  {
    dsn:
<EMAIL_ADDRESS>    // An array of strings or regexps that'll be used to ignore specific errors based on their type/message
    ignoreErrors: [/MiddleEarth_\d\d/, 'RangeError'],
    // To see what the Sentry SDK is doing; Helps when setting things up
    debug: true,
    // Whether SDK should be enabled or not
    enabled: true,
    // Use the tracing integration to see traces and add performance monitoring
    integrations: [
      Sentry.browserTracingIntegration(),
      Sentry.replayIntegration({
        maskAllText: false,
        blockAllMedia: true,
      }),
+     breadcrumbsIntegration({
+      console: true,
+      dom: true,
+      fetch: true,
+      history: true,
+      xhr: false,
+    })
    ],
  },
  sentryAngularInit,
);

I am not sure why but the even after disabling the breadcrumb integration the code that tries to add the XHR instrument still runs and causes the error, does it get called or bundled anyhow?

This error should be fixed on the latest version, feel free to reopen this issue if the same persist for you


Patch release including new pyo3 version

Hi @clitic,
Would you be able to do a release post @ljeub-pometry's PR merge? We need it for our own release of raphtory 0.14.0.
On this point, how would you feel about one of our team assisting in the maintainance of kdam? This would mainly be updating pyo3 when required and publishing patches.
All the best,
Ben

Hey Ben,
I think it's a great idea to send someone to maintain and update pyo3 version because currently I have not enough time. Send the username of the interested person and I will add him as collaborator.

Thank you @clitic!
Would it be possible to add me and @ljeub-pometry ?

Yes ofcourse

Thanks! Have accepted


Not working in 2021?

This doesn't seem to work, I just see a small 320x480 thumbnail and nothing else happens.

Same problem.

This doesn't seem to work, I just see a small 320x480 thumbnail and nothing else happens.

Seems unlikely this will work again, man that would have been cool...


Memory not to be recovered. Using CSS3 filter or SVG feGaussianBlur

simulation IOS .
The chrome does not appear to be the case.
Frequent  add / remove   -webkit-filter:blur(3px), On multiple DOM nodes.
Memory is maintained at a very high level, and will not take the initiative to release.
use electron v0.30.4

If I did something wrong, I would give a suggestion, thank you.

Can you provide a demo, or some code snippet that can run in both Chrome and Electron?

Closing until there is more information provided.


Problem about testing my trained model

Thanks for the training code.
I train a classic model.
I get 500000_optimizerG.pth 500000_G.pth 500000_E.pth.
May I know which pth I should run during testing?
When I run
python main_test_swinir.py --task classical_sr --scale 4 --training_patch_size 64 --model_path superresolution/swinir_sr_classical_patch64_x4_l1/models/500000_G.pth --folder_lq testsets/real3wx4/test_LR_crop
It seems cannot load the model
model.load_state_dict(torch.load(args.model_path)['params'], strict=True)
KeyError: 'params'
May I know how to solve this?
Thanks.

Hi, sorry for this bug. Please remove ['params'] in Line 126
https://github.com/JingyunLiang/SwinIR/blob/96a446fd6ce6867f9660209e263a66af01d36e62/main_test_swinir.py#L126
as
model.load_state_dict(torch.load(args.model_path), strict=True).

Hi, sorry for this bug. Please remove ['params'] in Line 126
https://github.com/JingyunLiang/SwinIR/blob/96a446fd6ce6867f9660209e263a66af01d36e62/main_test_swinir.py#L126
as
model.load_state_dict(torch.load(args.model_path), strict=True).

Thanks for reply.
I notice that when I ran your pretrained model, the main_test_swinir.py works fine.
However, when I ran main_test_swinir.py with either 500000_optimizerG.pth 500000_G.pth 500000_E.pth, it occurs the above error.
Is it the 500000_G.pth has some problem?

The main difference between my pretrained model and yours (trained on KAIR) is that:
1, my pretrained model is a dict: {'params': model}.
2, KAIR's model is just the model.
Therefore, you have to use the following line to load my pretrained model:
model.load_state_dict(torch.load(args.model_path)['params'], strict=True) # specify the dict key

and the following line to load your trained model (on KAIR)
model.load_state_dict(torch.load(args.model_path), strict=True) # directly load it

Sorry for the inconsistence between KAIR and SwinIR testing code. We will fix this problem.

Update: I have fixed the bug.

Thanks a lot.


add ci cd workflow

"Add a CI/CD workflow .yml file to automate build, test, and deployment processes on every push or pull request to the main branch. This ensures code quality and streamlines the deployment pipeline."

i want to work on it

Hi @ananyag309 @Vishwajith-Shettigar, I've submitted a PR (#112) that resolves this issue. Please take a look and let me know if any changes are required.
Could you also please add the relevant labels to this PR so it's marked correctly?
Thank you!


Can't see files to commit

Issue Type: Bug
Git is in folder
add file or change file. usually if you click git button, it shows files that changed. now it shows nothing. if i click the plus button it add to stage and appear. this use to work
VS Code version: Code 1.23.1 (d0182c3417d225529c6d5ad24b7572815d0de9ac, 2018-05-10T16:03:31.083Z)
OS version: Darwin x64 17.3.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz (4 x 2700)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledvideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
4, 3, 3

Memory (System)
16.00GB (6.41GB free)

Process Argv
/Applications/Visual Studio Code.app/Contents/MacOS/Electron

Screen Reader
no

VM
0%

Extensions (18)

Extension
Author (truncated)
Version

react-native-react-redux
EQu
1.9.0

beautify
Hoo
1.3.0

crane
Hvy
0.3.8

format-indent
Kas
1.3.0

vscode-react-native-storybooks
Ort
2.5.1

copy-relative-path
ale
0.0.2

npm-intellisense
chr
1.3.0

vscode-javascript-snippets
cod
1.0.0

githistory
don
0.4.1

RelativePath
jak
1.4.0

relativepathrefactor
jak
0.9.0

vue
liu
0.1.5

MagicPython
mag
1.0.12

mssql
ms-
1.3.1

python
ms-
2018.4.0

vscode-uppercase
rui
1.0.1

python
tht
0.2.3

vue-ls
van
0.1.5

@bpasero File events

VS Code is using different file watching strategies depending on your OS and your setup.
First thing to check:

[ ] I verified that the issue still reproduces in our insiders version (https://code.visualstudio.com/insiders/)
[ ] I verified that this issue is happening outside of a node_modules folder. Our file watcher ignores this folder!

To find out more about this issue, please first answer this:

[ ] What OS are you on
[ ] Does this happen from an empty workspace, a single-folder workspace or a multi-root workspace?
[ ] Do you have files.useExperimentalFileWatcher: true configured in settings?
[ ] What is your configured files.watcherExclude setting?

Then please answer the following depending on your setup:

[ ] It reproduces with any folder or workspace you open
[ ] The files/folders you open are on your local disk and not on a network share nor a UNC drive
[ ] The files/folders you open are not behind a symbolic link
[ ] The folder(s) opened use the exact same casing as they are on disk
[ ] It reproduces when I make a change to the file from another VS Code window (either from the editor or the file explorer)

Then please attach the output of our development console

run code --verbose from the command line
perform the action that causes you to not see the file change in VS Code
attach the output from the console (Help > Toggle Developer Tools > Console)

Thanks for taking the time to fill out this questionnaire.


[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

Part of #13642.
BrewTestBot adds Signed-off-by for who approved PRs (https://github.com/Homebrew/brew/blob/1cf53b4281e7bc22a8d7fc915fc6ba4576f8ef88/Library/Homebrew/dev-cmd/pr-pull.rb#L91-L93).
Let's count these too, at least until we can get PR approvals from the GitHub API.

Review period will end on 2023-02-14 at 00:00:00 UTC.

Review period ended.


add support for loading GPTQ models

Addresses issue # 3

@neokd please check

@VPraharsha03 Thanks for your contribution

@neokd Thank you, Can I get a hacktoberfest accepted label ?

Added the label @VPraharsha03 . Sorry was caught up in other work and missed the label


Add initial support for flexible consumption pricing

Add 'reckoner' daemon
Update gem to include checkers for compliance and chef server
Update gem to include an updater for ec2
Use standard omnibus-ctl so that we have service commands

Strong work right here. :rocket: :cake: :rabbit:


Setup multiprocessing on tile conversion

Setup multiprocessing on tile conversion from the setup step.

Speed up is seen, closing this feature now.

I do see the speed-up, however, the .npy files from training are getting written to both the training and test directory and I do not see the test .npy files being written anywhere.
See example outputs at /explore/nobackup/people/mmacande/srlite/chm_model/20230515d_chm

Feel free to pull the latest version, this should include the fix.


Add missing entries.

As discovered during https://github.com/plantuml-stdlib/gilbarbara-plantuml-sprites/issues/7, some .pngs that have a *.puml counterparts are not listed in sprites-list.md.
This MR fixes that, so we can release v1.1.0, and take our time in fixing the root problem.

Hello @Potherca,
I see the changes in sprites-list.md, but not changes in the groovy script. Is this ok?
Have you just re-run the groovy script to regenerate the list? Or have you fixed something in groovy script which is missing in this MR?
Regards

I cheated and created the list in bash, from the /pngs/ directory. I thought, if we merge this first we can release v1.1 and take our time in finding and fixing the issue in groovy.

Hello, I think you did a good job fixing the listing, but I would avoid leaving something inconsistent (not documented or automated approach), otherwise, we may not remember in the future how we got the listing "working", if we ever want to revisit our steps or want to release a new version.
I have created this branch where I have updated to use groovy 4 and latest dependencies, and most of the listing is complete. There are some missing entries because the logos are no longer in gilbarbara/logos repo or have changed names. If you want, after review, you, or me, can just merge it into master.
I think we should add to the script to remove them from this repo when that happens (is just adding logic to clean pngs and pumls folders at script initialization). That would imply that if some user doesn't use a tag, and use master, then diagrams using such logos may stop "working", but in general I think users should just use tagged versions.
What do you think?

I would avoid leaving something inconsistent

Fair enough. :+1:

There are some missing entries because the logos are no longer in gilbarbara/logos repo or have changed names.
[...]
I think we should add to the script to remove them from this repo when that happens (is just adding logic to clean pngs and pumls folders at script initialization).

We could leave the removed logos in (to avoid backward incompatibility). That would require other logic. It would make it possible to mark logos that have been removed/renamed upstream in the markdown file. Also, maybe there is a way of marking things as deprecated, instead of directly removing them. Not sure.

That would imply that if some user doesn't use a tag, and use master, then diagrams using such logos may stop "working", but in general I think users should just use tagged versions.

The issue here is when users don't include this project using a URL (with a version) but through PlantUML directy (with the <sprites/foo> syntax).
It such cases, removing things will cause unexpected breakage for users.
It is possible adding "versioning" by using folders which include a version number (like awslib, awslib10, and  awslib14) but that is something I would rather avoid if possible.

I have added to the branch logic to mark deprecated sprites. Let me know if it looks good to you, mainly checking generated listing. If so, I you (or me) can merge the changes and tag the release.

I just took the liberty to merge the changes into master branch and create the release 1.1. Feel free to modify anything, or let me know of any comments you may have. Thank you @Potherca for helping with this and taking the initiative.


Fix workflows that create PRs

Overview/Summary
Fix workflows that create PRs
This PR fixes/adds/changes/removes

Fix workflows that create PRs

Breaking Changes
None
Testing Evidence
Working in ALZ-Bicep and ALZ-Monitor repos
As part of this Pull Request I have

[x] Checked for duplicate Pull Requests
[x] Associated it with relevant issues, for tracking and closure.
[x] Ensured my code/branch is up-to-date with the latest changes in the main branch
[x] Performed testing and provided evidence.
[x] Updated relevant and associated documentation.

Thanks @jtracey93 ! Nice one

/azp run unit


wrong icons displayed on windows

I set up a little "development" enviroment using grunt, grunt:sass, grunt:connect, grunt:assemble etc
my problem is about the icon font;
on MAC everything works fine, on Windows everything is messed up... the icons are scrambled;
it seems that the unicode characters corresponding to the icons are understood wrong.
I don't understand what goes wrong; do you have some suggestions?

There has been a change in the icons in the latest version, are you sure you are using 0.97.0 in both development environments?
http://materializecss.com/icons.html

I am using the previous version (and the same version in both the enviroments) but the problem is about the different behavior between Windows and Mac... the icons are shown, but they are not the right ones

If you are using a version prior 0.97 make sure the css/javascript files are from the same master commit as the fonts, as there was also changes on those, so if you updated the one without the other you would experience that behaviour.

@carlosperate please close: you were right: the fonts were different.
Just a question: with the new method of adding the icons:
stay_primary_landscape
you will end with a lot of "nonsense" text inside your page ("stay_primary_landscape") that will be indexed by search engines. Am I right? Isn't this harmful?
And it will be also read by assistive technologies, unless you add:
stay_primary_landscape

I'm not a maintainer, but if you feel your issue has been solved you can close it from you account.
About the indexing, I must admit that I don't know if this will have any effect, but I do agree with the fact that it doesn't seem very friendly for web assistive technologies. I haven't tried it myself, so I haven't really looked at the final form of the DOM, maybe the <i> content gets replaced, but I personally don't know.

@erredeco This is the official google icon font they have made. I am sure most search engines now can pick apart what is content and what is not.


cdc: revert something from PR 10139

What problem does this PR solve?
Issue Number: ref #10143
What is changed and how it works?
Revert something from PR #10139 . I guess it's introduced mistakely in branch manual merging.
Check List
Tests

No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
None

/retest

/retest

/retest

/retest

/test all

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest


Can't handle Action type as Symbol

I define my action types as symbols. e.g.
export const ROOT_DID_MOUNT = Symbol('ROOT_DID_MOUNT');

which produces the following:
Uncaught TypeError: Cannot convert a Symbol value to a string

This appears to be a 1.0.9 -> 2.0.0 regression, as this was not an issue previously.

OK, I've found a workaround. But it would be great if this wasn't necessary.
const logger = createLogger({
    actionTransformer: (action) => Object.assign({}, action, {
        type: action.type.toString()
    })
});

Note though that we don't recommend using Symbol action types because you can't (de)serialize them.

Fair enough. Though I'm sure I adopted the practice from an online example.
I'll change them to strings. Thanks.

It's not workaround, it's better management of action transforms. Earlier (#14), but other users want to control by themselves (#31), (#33), so we release 2.0.0 with that feature and, of course, with a note about transforms in Breaking changes section.


IBC page is broken

This is reproduced on the current main, but not reproduced on the embedded validator frontends, because they still don't have the latest registry available

Uncaught TypeError: Cannot read properties of undefined (reading 'name')
    at useChainConnector (hooks.ts:24:41)
    at IbcInForm (ibc-in-form.tsx:11:49)
    at renderWithHooks (chunk-LFUR5DFY.js?v=d73062eb:18418:26)
    at mountIndeterminateComponent (chunk-LFUR5DFY.js?v=d73062eb:21796:21)
    at beginWork (chunk-LFUR5DFY.js?v=d73062eb:22784:22)
    at HTMLUnknownElement.callCallback2 (chunk-LFUR5DFY.js?v=d73062eb:10544:22)
    at Object.invokeGuardedCallbackDev (chunk-LFUR5DFY.js?v=d73062eb:10569:24)
    at invokeGuardedCallback (chunk-LFUR5DFY.js?v=d73062eb:10603:39)
    at beginWork$1 (chunk-LFUR5DFY.js?v=d73062eb:26635:15)
    at performUnitOfWork (chunk-LFUR5DFY.js?v=d73062eb:26068:20)

IBC page failed to load registry

seems to bisect to fa798d9732654c929d167d7443c3ca788d892f88

checking out 4a31a095097d0aff292033ebbc84baf0003e75a4 and upgrading the registry alone reproduces the failure
the registry is returning an empty array for 'ibcConnections' so when ibcChainProvider filters the list and passes it to ChainProvider
https://github.com/penumbra-zone/web/blob/5641af2cbd992a98bfc366d312c20f600a500b14/apps/minifront/src/components/ibc/ibc-in/chain-provider.tsx#L24-L44
which is providing chains to useChainConnector which asserts the presence of at least one element in that list
https://github.com/penumbra-zone/web/blob/5641af2cbd992a98bfc366d312c20f600a500b14/apps/minifront/src/components/ibc/ibc-in/hooks.ts#L21-L26
the page fails


Crawlab Pro Schedule double schedules the same task

Describe the bug
After scheduling the task in Schedules, Crawlab executes them two times. One of them is pending forever, second one executes correctly.
To Reproduce
Steps to reproduce the behavior:

Schedule task
Once the time comes two same tasks are being launched where one of them is pending forever.

Expected behavior
Only one task is being executed.
Screenshots

Noted. Will try to reproduce this.


-StartAfter

-StartAfter is not available in Exchange 2013 CU15 (A parameter cannot be found that matches parameter name 'StartAfter') nor Exchange 2019 CU4. -StartAfter is available in Set-MoveRequest but not Set-MigrationBatch

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0b745608-183e-f65c-6902-c691f9234c80
Version Independent ID: 365b7127-cc37-a0bc-56d6-08a03fadda07
Content: Set-MigrationBatch (exchange)
Content Source: exchange/exchange-ps/exchange/move-and-migration/Set-MigrationBatch.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

https://github.com/MicrosoftDocs/office-docs-powershell/issues/4947

@officedocsbot assign @yogkumgit

@dusansk, the StartAfter parameter is available to me on a 2013 CU15 server and a 2019 CU4 server on the Set-MigrationBatch cmdlet.
I ran the following command on the 2013 and 2019 servers, and I got the same result.
[PS] C:\>Get-ManagementRoleEntry *\* -Parameters StartAfter | ft name,role

Name                         Role
----                         ----
Set-MigrationBatch           Migration
New-MigrationBatch           Migration
Set-MoveRequest              Move Mailboxes
New-MoveRequest              Move Mailboxes
New-MailboxRelocationRequest Move Mailboxes

If you run this command in your environment, what do you see?

@chrisda
When I run your command I get the same result:
[PS] C:\Windows\system32>Get-ManagementRoleEntry ** -Parameters StartAfter | ft name,role
Name                         Role

New-MigrationBatch           Migration
Set-MigrationBatch           Migration
Set-MoveRequest              Move Mailboxes
New-MoveRequest              Move Mailboxes
New-MailboxRelocationRequest Move Mailboxes
But when I want to use it, it doesn't work.
[PS] C:\Windows\system32>Set-MigrationBatch "XXX_DB_02" -StartAfter "02/21/2020 7:00 PM"
A parameter cannot be found that matches parameter name 'StartAfter'.
+ CategoryInfo          : InvalidArgument: (:) [Set-MigrationBatch], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Set-MigrationBatch
+ PSComputerName        : serverX.domain.com

Topic updated.
Thanks for the feedback.
Closing