Enable checkstyle and spotlessCheck for h2 on CI

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license
and can be relicensed under the terms of the LGPL v2.1 license in the future at the maintainers' discretion.
For more information on licensing, please check here.

Spotless doesn't cover every rule enforced by our code-stye, and this already caused build failures locally (where it was not disabled).
@sebersole agreed we should re-enable checkstyle just for the h2 build.

Neither does checkstyle: we have lots of coding conventions which checkstyle has never enforced.
If checkstyle didn't measurably slow us down, I wouldn't mind it. But recently I lost almost half a day when the compileJava task was failing because of some checkstyle violation that wasn't being properly reported by Gradle. And even when checkstyle actually works, it's unacceptably slow on our codebase.

If you guys can fix it so that it's not pig slow, and so that the Gradle integration is nonbroken, then by all means, please go ahead and turn it back on again.

Checkstyle doesn't run with the compileJava task, and this change has nothing to do with local builds. Your original changes only disabled it on the h2 run for GH actions, and this is just re-enabling it, so I'm not sure how this could affect you.
The h2 run, which already takes less then half the time then other, will simply take 2 more minutes.

Part of the problem, now, with checkstyle is that it is still doing work that spotless is doing.  Cleaning up the checkstyle config will definitely help.  I'll change that in a little

And regardless of whether it is"pig slow" it is formatting we want to enforce.  So how else would you suggest we do that?
And no, "simply not enforcing" is not an option.

Look I agree it would be nice to enforce the brace on a new line rule. But I would also love to be able to enforce the maximum-120-characters per line rule, or the don't-stack-parens-without-a-space rule, etc, etc.
But we don't enforce those rules, nor others, and somehow we manage to live with that.

Alternatively, it's probably not terribly difficult to write a spotless step that replaces ^(\s+)} else with $1}\n$1else.

We have a code formatting step in Search and Validator builds... It actually produces a good result overall (there may be a few places with very long generics where the formatting might be a bit odd). Then in those places where we have code that goes into the documentation guides and we want to have more control, we just wrapped the code blocks with "skip-formatting-here". And these plugins have caching, so they don't need to re-run the formatting of all the files, but only those that changed, so the build time is not visibly impacted.
I was looking into spotless to see if we can use it in Search/Validator and I've seen that it also has caching (https://github.com/diffplug/spotless/tree/main/plugin-maven#incremental-up-to-date-checking-and-formatting)
Sooooo ....  that might also be an option to consider (add the auto formatting to spotless config and enable this incremental cache so it doesn't run through all files).

One thing we could do is push an IntelliJ config with the project, so that the IDE automatically applies the coding conventions.

Like mentioned in the CONTRIBUTING?

Like mentioned in the CONTRIBUTING?

Well I mean actually including the IntelliJ config in the project itself so it's loaded automatically when you open the project.

Well I mean actually including the IntelliJ config in the project itself so it's loaded automatically when you open the project.

Unfortunately I don't know how to do that

@sebersole I commented out all checkstyle rules already enforced by spotless, also I added the spotlessCheck to the h2 build to go alongside it and disabled spotlessApply on CI since it's a bad idea to change files during the build there.

Unfortunately I don't know how to do that.

I can set it up if you like. (I used to do it this way on other projects.) The only doubt I have is I need to make sure I can properly sanitize the IntelliJ project metadata of anything specific to my environment. But I believe this to be possible,

Unfortunately I don't know how to do that.

I can set it up if you like. (I used to do it this way on other projects.) The only doubt I have is I need to make sure I can properly sanitize the IntelliJ project metadata of anything specific to my environment. But I believe this to be possible.

Sure!  I think that would be a great thing.
To be clear though, we still want checkstyle to run (on the H2 / "default" jobs).  Even with spotless and IDE formatting enabled, it is possible for someone to send code that is not formatted.  So what we discussed was to do the following on the H2 CI job -

execute spotlessCheck
execute checkstyleMain
disable spotlessApply

@sebersole I commented out all checkstyle rules already enforced by spotless, also I added the spotlessCheck to the h2 build to go alongside it and disabled spotlessApply on CI since it's a bad idea to change files during the build there.

Did you need to explicitly disable spotlessApply?  I'm surprised that is executed on a "normal CI build".

@sebersole I commented out all checkstyle rules already enforced by spotless, also I added the spotlessCheck to the h2 build to go alongside it and disabled spotlessApply on CI since it's a bad idea to change files during the build there.

Did you need to explicitly disable spotlessApply? I'm surprised that is executed on a "normal CI build".

Ahh, you did -
tasks.compileJava.dependsOn spotlessApply

I can set it up if you like.

See #9014 which appears to work.

I think also there may be a misundertanding here... compilation does not run checkstyle.

Does publishToMavenLocal? I have to run that quite often when developing HibernateProcessor.

@sebersole I commented out all checkstyle rules already enforced by spotless, also I added the spotlessCheck to the h2 build to go alongside it and disabled spotlessApply on CI since it's a bad idea to change files during the build there.

Did you need to explicitly disable spotlessApply? I'm surprised that is executed on a "normal CI build".

Ahh, you did -
tasks.compileJava.dependsOn spotlessApply

I was thinking about this some more.  I think we should have a different task set up here.  Something like this?
// currently spotlessApply happens every time we compile.
// here we move that to the `check` "lifecycle phase"
tasks.check.dependsOn spotlessApply

tasks.register( "ciCheck" ) {
    group "verification"
    description "Checks for most CI environments"
    dependsOn test
}

tasks.register( "ciCheckComplete" ) {
    group "verification"
    description "Checks for the H2 (default) CI environment.  Does more complete checking, but the extra work is only needed for on CI job group"

    dependsOn ciCheck
    dependsOn spotlessCheck
    dependsOn checkstyle
    dependsOn forbiddenApis
}

spotlessApply gets moved to check, which is what should be run locally.  check would run:

test
spotlessApply
checkstyle
forbiddenApis

The point of using spotless is so that it runs as soon as possible, and so you never get in a situation where you push code that hasn't had spotless run its cleanups.

i.e. the thing that makes checkstyle so awful (apart from the fact that I have to go off and open up its reports in my web browser to find out what files it's complaining about) is that it is so slow that it's impossible to properly integrate into the usual edit-compile-test process. It's the mere fact that it's a separate "task" that makes it such a pain in the ass.

spotlessApply gets moved to check, which is what should be run locally

I'm not against this, but it increases the likelihood that users that are not running the check task explicitly won't have spotless rules applied by default. Having it on compileJava has the advantage that even compilation triggered by running tests from the IDE will apply spotless, and gradle caches the task so the impact on build-time is negligible.
I'm fine with either solution though, as eventually the rules are checked by CI anyway.

CONTRIBUTING explicitly calls out the expectation that build be used locally for contributions.  And considering that multiple times recently I have pulled and had spotless DoStuff when I build locally, I'd say attaching it to compile isn't having the outcome we want either.
I don't have a string opinion here, but its not like I'm alone - spotless itself made the decision to apply to the verification phase by default for Maven; it does not bind to any tasks in Gracdle by default.

Correct me if I'm wrong, but doesn't this change just take us directly back to exactly the bad place we started from: where I find out about code style violations after I push to GH. The only difference is that it will be spotless driving me nuts instead of checkstyle.
If so then my work in this was for nothing.

I suggest that instead of merging this PR, we wait at least like 2 months with everything as it is right now, to see if the sky falls.
And if the sky does indeed not fall, as I predict, we sit down after that and try to optimize things which aren't perfect.
Because y'all have not even given this a chance to see if it can work.

Well, had you run check or build in the first place you would not be in that situation ;)
The difference now is that rather than checkstyle violations you would very likely have spotless silently change the stuff for you.
To me, for CI, the need to exclude a task tells me the depencies are not defined correctly.  So that's where this is coming from.  In a vaccum there is nothing "wrong" per-se with attaching spotless to compile.  Personally I don't think that is the most natural place but, again, "I don't have a string opinion here".

I mean to me, your main complaint is that you don't want to run check before pushing.  Because I think that is a pretty reasonable expectation.

@gavinking disabling checkstyle on CI while it's still enabled and runs with the check task makes local builds fail, and main was in that state because we had no way of noticing it without trying locally. If we're going to do that, than either we completely exclude checkstyle from the build, or we keep it enabled somewhere it doesn't cause inconvenience to anyone (i.e. the h2 build).

Completely excluding checkstyle would be awesone.

@gavinking disabling checkstyle on CI while it's still enabled and runs with the check task makes local builds fail, and main was in that state because we had no way of noticing it without trying locally. If we're going to do that, than either we completely exclude checkstyle from the build, or we keep it enabled somewhere it doesn't cause inconvenience to anyone (i.e. the h2 build).

We can quibble about whether spotless should be on compile or check.
However, the CI jobs absolutely should be running checkstyle and spotlessCheck and forbiddenApis.  No point running those for every database of course, so doing it on the H2 job is perfectly reasonable.

Apart from the issue of brace placement (for which we can surely find another solution), what are the critical things that checkstyle is doing, in your opinion. I mean the things that will cause the sky to fall if we don't have them?

Completely excluding checkstyle would be awesome.

If we can get those remaining checkstyle rules handled in spotless, I 100% agree that would be better.
But if we can't, then the checkstyle checks should still be there.

what are the critical things that checkstyle is doing, in your opinion?

MissingDeprecated
MissingOverride
EqualsHashCode
UpperEll
IllegalImport
newline at end of file handling

I'm sure some of these can be handled in spotless..

newline at end of file handling

I already set this up in spotless, and spotless does a much better job of it, automatically adding a newline if necessary, and also stripping off unnecessary newlines.

MissingOverride

This one, if it's actually enabled, simply doesn't work. I have had to fix oodles of missing @Overrides by hand.
Anyway, the GitHub CodeQL already does a really good job of catching these: https://codeql.github.com/codeql-query-help/java/java-missing-override-annotation/

EqualsHashCode

This is nice to have.
But again, CodeQL already does it: https://codeql.github.com/codeql-query-help/java/java-inconsistent-equals-and-hashcode/

IllegalImport

I mean this is also quite nice, but there simply has got to be a much more performant way to enforce this than running checkstyle! It's completely trivial to detect import illegal.package at the beginning of a line. This is a job for something more like sed.

MissingDeprecated

The value of this one seems pretty debatable because:

It only triggers when the method already has a Javadoc comment. It doesn't do anything at all if there's no Javadoc on the method.
There are only two people who regularly deprecate documented API methods: you and I, and we're both very careful about it, and we apply waaaay more rules than just this one. External contributors never add @Deprecated annotations.

UpperEll

Not counting a handful of serialVersionUids, there are 53 long literals in the whole of hibernate-core. The sky isn't going to fall if someone one day writes 1l. I have never even once in my whole career been confused by the meaning of a numeric literal in Java.

RightCurly

Just for completeness this one is definitely useful. But again it's something that you can actually do with just a regex.
Or, in summary:

2 are nice to have but can surely be done in a simpler/faster way
1 is already handled by spotless
2 are handled by CodeQL
2 we can live without (IMO)

There has gotta be some sed-like Gradle plugin out there and if there isn't we can write one.

This works, is ridiculously fast, and reports the problem in a much nicer way than checkstyle:
task searchInFiles {
	doLast {
		def tree = fileTree("${project.projectDir}")
		tree.include "**/*.java"
		tree.each { file ->
			file.eachLine { line ->
				if (line.startsWith('import jakarta')) {
					throw new GradleException( "Found in ${file}: ${line}" )
				}
			}
		}
	}
}

I'm sure we can easily improve on this.

This seems to work quite nicely, and it really does run very fast:
task enforceRules {
	doLast {
		def illegalImport = /^import (sun|java.awt|org.slf4j).*/
		def missingNewline = /^\s*}\s*(else|catch|finally|while).*/
		def errors = 0
		def tree = fileTree("$rootDir/hibernate-core/src/main/java/")
		tree.include "**/*.java"
		tree.each { file ->
			def lineNum = 0
			def shortName = file.path.substring(rootDir.path.length())
			file.eachLine { line ->
				lineNum++
				if (line ==~ illegalImport) {
					errors++
					logger.error("Illegal import in ${shortName}\n${lineNum}: ${line}")
				}
				if (line ==~ missingNewline) {
					errors++
					logger.error("Missing newline in ${shortName}\n${lineNum}: ${line}")
				}
			}
		}
		if ( errors>0 ) {
			throw new GradleException("Code rules were violated ($errors problems)")
		}
	}
}

See #9023.

I pulled https://github.com/hibernate/hibernate-orm/pull/9023 locally and played with it.  It runs super fast.  I think we should definitely move to this.

Great, that's even better! Still, we should make sure we never call spotlessApply on CI and I would still call spotlessCheck at least on H2. Should I update this PR to that effect @sebersole (i.e. only keeping the ciCheck and ciCheckComplete tasks)?

I would still call spotlessCheck at least on H2. Should I update this PR to that effect

I think both spotlessCheck and this new enforceRules.  wdyt?

Sure, I'll wait for Gavin's PR to be merged then I guess. I'm guessing by this change the intention is to leave spotlessApply at compile-time for local builds, which is fine by me as long as the enforceRules task works with build cache.

In theory, if CI is enforcing this stuff correctly we should not be seeing what is happening now where we check out, compile and now end up applying someone else's bad formatting fixesg our your working tree.

as long as the enforceRules task works with build cache.

It should be.  It runs before compile so to Gradle it just looks like you changed those files yourself.
Combined with better checking on the CI jobs, this should minimize the cases we've seen where a pull from upstream suddenly leads to a bunch of changed files on compile.

What do y'all think about making these checks a proper CI action instead (similar to Code QL)?  Especially if we can make the execution of tests depend on successfully pass.
It would help make it even more obvious that its bad formatting that failed the build visually.

What do y'all think about making these checks a proper CI action instead (similar to Code QL)?

I like the idea, would make it very easy to understand that the problem is related to code formatting.

Especially if we can make the execution of tests depend on successfully pass.

I'm fine with this, though note that if we want to include forbiddenApisMain it requires compilation of main files, which usually takes ~4 minutes on gh actions runner, and this would mean delaying all other build runs (that already take a long time). If we only run spotlessCheck and enforceRules however, the time to run becomes much less (50 sec to 1 minute).

Since this PR was opened for another purpose and stale I've created a new one: https://github.com/hibernate/hibernate-orm/pull/9188, that introduces a separate task for CI builds ciCheck, and also runs static code analysis (spotlessCheck and enforceRules) in a separate CI action.


verbal error

Job d2l-zh/PR-693/1 is complete.
Check the results at http://preview.d2l.ai/d2l-zh/PR-693/

Fabulous! Thanks @aa12356jm


Don't generate core dump when walproposer intentionally panics.

Walproposer sometimes intentionally PANICs when its term is defeated as the
basebackup is likely spoiled by that time. We don't want core dumped in this
case.
https://neondb.slack.com/archives/C0681GPE9Q8/p1701078146122769?thread_ts=1701076635.110279&cid=C0681GPE9Q8

I'm not sure if disabling coredump is a good idea and if it impoves anything...

Well, see slack thread linked in the description. The idea is that cores for these particular PANICs are useless and increase IO which probably makes current stuck-in-terminating issue more probable.
Though I generally I agree that our infra should be ready to chew many core dumps, as PANIC can happen in many places in postgres.

Tests are failing because you can't call postgres functions from walproposer.c directly.

Tests are failing because you can't call postgres functions from walproposer.c directly.

Right, fixed.


added score and powerups

added score and some basic powerups. cleaned up some code in helper funcs for readability

I can't see pipes being generated and Could you please reduce the probability of generation of powerups.
I think a powerup to slow speed would be good and would be pretty easy to create.Let's focus on just one powerup.Reducing the ball size is also good.Just make it temporary.I like the colour you have chosen.

I'll make some adjustments tonight, seems that the prev. merges made some things change..

Thanks @Jake0Tron that would be great.

@Jake0Tron Are you still interested taking up this issue?

Work has picked up so I don't have much time to get back into it. Feel free
to pick up or hand off
On Fri, Nov 3, 2017, 3:45 AM Vignesh Ramesh<EMAIL_ADDRESS>wrote:

@Jake0Tron https://github.com/jake0tron Are you still interested taking
up this issue?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/igameproject/line-ball/pull/8#issuecomment-341638474,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHeEvDL3v-qT46nUPbp7ZDlIMFkB4mrIks5sysSRgaJpZM4Ppnfq
.


The learning rate is related to batch size?

Thanks for sharing your work. From ReadMme, I got the learning rate is related to the number of GPUs, so it is also related to the batch size? Thanks

@hdjsjyl Yes. For example, 2 imgs per gpu with 8 gpus totally on MS COCO needs a lr = 0.02. If you only use 1 gpu. The lr = 0.02 / 8.


Duplicate Events Should Attach To On Start When Decompiled Into Grey Blocks

Repro notes in https://arcade.makecode.com/S84683-03204-06431-95554
Context
We create an almost-dead block when, in the monaco editor, you change the value for an "on score" or "on button press" to one that already exists. Going back to the blockly editor after doing this will invalidate the original "type" of block it is.
It then becomes attachable to any other block, at which point you can copy/paste your code by going back to the monaco editor.
Repro steps

Create multiple on-score blocks in blockly
Invalidate one in JS by setting one onScore call to the same score as another
Back in blockly editor the original onScore block is invalidated.
Go back to JS and see that the code no longer exists.
Sad user lost valuable work :(

Notes

This repros with "on controller A pressed" and "on score X" blocks.
The solution seems to be

drag JS block into anything it can attach to
Copy code in monaco editor
Paste
See that the block returns in good shape.

If you drag this into the on start does it live again? it looks like it should as it's just a typescript block?

It does, which took me a bit of time to figure out since the type of block changed. I assume this behavior is expected then? I couldn't get the simulator to run until copy/pasting the code so it could replace the newly-formed JS block with the blockly-block

it's semi expected, though I would say the intention of https://github.com/microsoft/pxt/pull/8953 is probably that it gets stuck in an on start instead of just a free floating block @riknoll ?

yeah, and i could have sworn i added a test case to specifically test that it did. maybe not, though!

Renamed the issue to reflect the needed change.


search-engines: Fix spelling error in variable.

Simple fix, now Startpage works again.

Ah yes, thanks for pinning it down!


Counter HELP and TYPE lack _total suffix

When encoding counters, prometheus-client adds _total suffix to sample name:
https://github.com/prometheus/client_rust/blob/b462e610498510cc1a4de42c7e920ba67032a493/src/encoding/text.rs#L187
This suffix is however not added in HELP and TYPE lines. This is visible in tests, for example:
https://github.com/prometheus/client_rust/blob/b462e610498510cc1a4de42c7e920ba67032a493/src/encoding/text.rs#L20-L23
HELP and TYPE lines should have the same suffix, it is shown in example at https://prometheus.io/docs/instrumenting/exposition_formats/#text-format-example:
# HELP http_requests_total The total number of HTTP requests.
# TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1027<PHONE_NUMBER>000
http_requests_total{method="post",code="400"}    3<PHONE_NUMBER>000

Because of this bug Grafana does not display help for counters. At the same time for gauge type metrics help is displayed.

This is inline with the OpenMetrics specification:
https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#counter-1
When exporting, are you setting the correct content type?
https://github.com/prometheus/client_rust/blob/b462e610498510cc1a4de42c7e920ba67032a493/examples/hyper.rs#L69-L70

I don't feel strongly about following the specification. That said, I want to be either (a) consistent with the specification or (b) consistent with the other client implementations and ideally (a) and (b).


EPAC resource graph queries fails in AzureChinaCloud due to missing/invalid table authorizationresources

It seems that the resource graph table authorizationresources is not working in AzureChinaCloud:
===================================================================================================
Get Policy Resources for EPAC environment 'epac-dev' at root scope /managementGroups/mg-test-policies
===================================================================================================
DEBUG: Running resource graph query: PolicyResources | where (type == "microsoft.authorization/policyassignments") or (type == "microsoft.authorization/policysetdefinitions") or (type == "microsoft.authorization/policydefinitions")
Retrieved 1000 Policy definitions, Policy Set definitions, and Policy Assignments
Retrieved 1703 Policy definitions, Policy Set definitions, and Policy Assignments
Processed 1000 Policy definitions, Policy Set definitions, and Policy Assignments
Processed 1703 Policy definitions, Policy Set definitions, and Policy Assignments

DEBUG: Running resource graph query: authorizationresources | where type == "microsoft.authorization/roleassignments" and properties.principalId in ( "" )
Search-AzGraph: /EPAC/Scripts/Helpers/Search-AzGraphAllItems.ps1:11
Line |
  11 |      $result = Search-AzGraph $Query -First 1000 @scope
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | {   "error": {     "code": "BadRequest",     "message": "Please provide below info when asking for support: timestamp = 2024-01-29T07:51:43.5395045Z, correlationId =
     | 1ac9a4e9-3a19-4e65-9c9b-15859e3e0334.",     "details": [       {         "code": "DisallowedLogicalTableName",         "message": "Table authorizationresources is invalid, unsupported or disallowed."
     | }     ]   } }
MethodInvocationException: /EPAC/Scripts/Helpers/Search-AzGraphAllItems.ps1:12
Line |
  12 |      $null = $data.AddRange($result.Data)
     |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling "AddRange" with "1" argument(s): "Value cannot be null. (Parameter 'c')"
DEBUG: Running resource graph query: authorizationresources | where type == "microsoft.authorization/roledefinitions"
Search-AzGraph: /EPAC/Scripts/Helpers/Search-AzGraphAllItems.ps1:11
Line |
  11 |      $result = Search-AzGraph $Query -First 1000 @scope
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | {   "error": {     "code": "BadRequest",     "message": "Please provide below info when asking for support: timestamp = 2024-01-29T07:51:44.6270834Z, correlationId =
     | 10e1ada3-3448-46a4-a068-482dbfb56fe4.",     "details": [       {         "code": "DisallowedLogicalTableName",         "message": "Table authorizationresources is invalid, unsupported or disallowed."
     | }     ]   } }
MethodInvocationException: /EPAC/Scripts/Helpers/Search-AzGraphAllItems.ps1:12
Line |
  12 |      $null = $data.AddRange($result.Data)
     |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling "AddRange" with "1" argument(s): "Value cannot be null. (Parameter 'c')"

===================================================================================================
Policy Resources found for EPAC environment 'epac-dev' at root scope /managementGroups/mg-test-policies
===================================================================================================

Policy counts:
    BuiltIn        = 1656

Running the query in Azure Resource Graph Explorer from the Microsoft Azure operated by 21Vianet portal gives the following error:
Table authorizationresources is invalid, unsupported or disallowed. (Code:DisallowedLogicalTableName)

Verified that table does not exist in 21v.  21v has 15 tables available for lookup whereas commercial has 42.  Will need to find all places where we updated lookups to use ARG and verify those tables exist.  If the table is not available in 21v we'll need some kind of switch to go back to the less efficient queries.

authorizationresources is the only table not available in 21v (only other table we're using is PolicyResources).

We are working on a fix. About 2 weeks out

Fixed in v10.0.0


Lnd grpc connection pooling

We share a single connection per server. It’d be worth creating a pool probably(assuming there’s isn’t one already).

Connections are supposed to be fairly well mutliplexed so closing hoping #1448 fixes it.


make flake8 run on PR

set main branch as a target branch on PR

closes #24

Can you please rebase? the second commit was merged by another PR

Can you please rebase? the second commit was merged by another PR

This PR should be probably closed.

Can you please rebase? the second commit was merged by another PR

Can you please rebase? the second commit was merged by another PR

This PR should be probably closed.

Can you please rebase? the second commit was merged by another PR

This PR should be probably closed.

I close it but can you say how you solve the problem?


Insert a term to git-config configuration in README

Fixes #90

Although I don't know why the build failed, I'll close this


[Pomodoro] Daily Focus time and Cycles

Extension
https://www.raycast.com/asubbotin/pomodoro
Description
I want to see daily focus time and daily cycles. Currently, we can only see the total focus time and cycles for the whole period. I think this is more efficient than seeing the total focus time and cycles for the whole period.
Who will benefit from this feature?
No response
Anything else?
No response

Can I have a day to try creating this feature?

I just came across this. Just wanted to say that I really want this feature implemented as well!


bug: proof is not verified

Right now proof is generated and sent with message.
The problem happens when proof is tried to be verified in rln-js example here
.verify operation uses verifyWithRoots
At the same time verifyRLNProof is able to verify proof.

Ping @rymnc maybe you can get a pointer for investigation here

This could happen when the roots are invalid, can you log out the root when the proof is generated, and the roots that are being passed into verifyWithRoots?

Weekly update:

achieved: as per suggestion investigated if the roots are correct, seems found a fix;

moving to blocked until discussion with @rymnc this Friday
seems that when root is computed in zerokit it is not present in roots from contract and thus validation with proofs fails


setField in useEffect dependency causes infinite loop

eslint automatically adds setField as a dependency in any useEffect that uses it. This causes an infinite loop. currently using // eslint-disable-next-line to prevent this behaviour. react-use-form-state isn't the only library i've seen that causes this so maybe it's something on my end or my understanding of hooks, but I feel like setField should be stable the same way dispatch in redux is a stable dependency

Here's a simple CodeSandbox that shows the issue:
https://codesandbox.io/s/amazing-germain-k2gy0

I guess it makes sense that running setField should be a stable dependency (don't know much about how to achieve this) but there is a possible workaround for the situation displayed on the codesandbox posted by @alterx
You can add a condition inside the fetchData method to run your fetch + setField only if: a) The current input form fields are empty; b) Neither of them have been touched by the user yet
This way I believe it works as expected with no eslint errors.
Codesandbox: https://codesandbox.io/embed/gifted-haibt-13o4f

This issue is now fixed in v0.12.0! 🎉


Only exception after runner.py

OS: Win10, no CUDA

Token (type: read) was set
file ".env" available
runner.py was startet (unchanged), just being curious what happens

Result: only a cascade of exceptions on the command line, as following:
Traceback (most recent call last):
File "E:\Programme\Anaconda3\envs\apps\lib\site-packages\huggingface_hub\utils_errors.py", line 213, in hf_raise_for_status
response.raise_for_status()
File "E:\Programme\Anaconda3\envs\apps\lib\site-packages\requests\models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://huggingface.co/CompVis/stable-diffusion-v1-4/resolve/main/vae/diffusion_pytorch_model.bin
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "E:\Programme\Anaconda3\envs\apps\lib\site-packages\diffusers\modeling_utils.py", line 394, in from_pretrained
model_file = hf_hub_download(
File "E:\Programme\Anaconda3\envs\apps\lib\site-packages\huggingface_hub\file_download.py", line 1053, in hf_hub_download
metadata = get_hf_file_metadata(
File "E:\Programme\Anaconda3\envs\apps\lib\site-packages\huggingface_hub\file_download.py", line 1359, in get_hf_file_metadata
hf_raise_for_status(r)
File "E:\Programme\Anaconda3\envs\apps\lib\site-packages\huggingface_hub\utils_errors.py", line 254, in hf_raise_for_status
raise HfHubHTTPError(str(HTTPError), response=response) from e
huggingface_hub.utils._errors.HfHubHTTPError: <class 'requests.exceptions.HTTPError'> (Request ID: iJKkSfoiLnBa4bMVHLKZ2)

the error is 403 Client Error: Forbidden for url. To fix this go to CompVis/stable-diffusion-v1-4 and accept the model license agreement and then it'll work

@DoctorMG did this work? Ill close this issue if so.


Focused specs

Closes #185.

Current coverage is 96.97% (diff: 100%)

Merging #199 into master will increase coverage by 0.23%

@@             master       #199   diff @@
==========================================
  Files            20         20
  Lines           645        695    +50
  Methods         162        173    +11
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            624        674    +50
  Misses           21         21
  Partials          0          0

Powered by Codecov. Last update 2f5cdb1...66587cd

@ezzatron were we going to merge this as part of our release party together? Should I merge this now? No rush on anything. Just want to make sure I'm not blocking things up.

I would say this one can get merged, since it won't get tagged til we release anyway. If that sounds good to you, then go for it!


I am getting com.google.android.gms.common.api.ApiException: 4: 4:

I am using Firebase auth to signin user with Google, and I have setup the Firebase project with proper configuration and google-services.json and add that to my android project. I have added below dependencies in my
build-gradle.kts(project) id("com.google.gms.google-services") version "4.4.1" apply false
build.gradle.kts(app)
implementation("com.google.firebase:firebase-auth:22.3.1")  implementation(platform("com.google.firebase:firebase-bom:32.8.0"))  implementation("com.google.android.gms:play-services-auth:21.0.0")
This is my mainactivity.ky
`
private fun signIn(){
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build()
googleSignInClient = GoogleSignIn.getClient(this, gso)
val signInIntent = googleSignInClient.signInIntent
startActivityForResult(signInIntent, SIGNIN_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == SIGNIN_CODE) {
        val task = GoogleSignIn.getSignedInAccountFromIntent(data)
        try {
            // Google Sign In was successful, authenticate with Firebase
            val account = task.getResult(ApiException::class.java)!!
            Log.d(TAG, "firebaseAuthWithGoogle:" + account.id)
            firebaseAuthWithGoogle(account.idToken!!)
        } catch (e: ApiException) {
            // Google Sign In failed, update UI appropriately
            Log.w(TAG, "Google sign in failed", e)
        }
    }
}

private fun firebaseAuthWithGoogle(idToken: String) {
    val credential = GoogleAuthProvider.getCredential(idToken, null)
    auth.signInWithCredential(credential)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInWithCredential:success")
                val user = auth.currentUser
                Toast.makeText(this, "Login Successfull", Toast.LENGTH_SHORT).show()
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInWithCredential:failure", task.exception)
                Toast.makeText(this, "Login Failed", Toast.LENGTH_SHORT).show()
            }
        }
}

This is giving me random results, I am able to log in successfully sometimes, and sometimes I am gettingcom.google.android.gms.common.api.ApiException: 4: 4: ` exception, I am not sure what is wrong, I tried everything, to add value ofdefault_web_client_id to string.xml to remove that, and invalidate and restart my projects too.

Requirement changed.


Testing Previewnet EVM with more complex EVM contracts

Issue to be solved
We're planning to test our EVM implementation with a couple of more complex Solidity contracts. We plan to deploy:

Cheeze Wizards
Uniswap-v3

And try to uncover any early issues.

some updates
https://github.com/NomicFoundation/hardhat-ignition/issues/738
Hardhat ignition still has some issues wit hthe flow node that we haven't figured out just yet. Best to continue this conversation to figure out whats missing

Deployed Uniswap v4-core PoolManager to PreviewNet successfully.
The current issue is that we need to use --legacy with Foundry to disable EIP-1559 style transactions. We're working to fix this as well so the deployment scripts work out-of-the-box:
https://github.com/onflow/flow-evm-gateway/issues/208
Currently waiting for new gateway deployment to test further.

Reported https://github.com/onflow/flow-evm-gateway/issues/247 for adding script for Foundry

Continuing with USDC deployment on PreviewNet, reported https://github.com/onflow/flow-evm-gateway/issues/273

Successfully deployed USDC https://github.com/circlefin/stablecoin-evm/

Cheeze wizards presale contract was a success in deployment. I did hit some snags on using hardhat, but ultimately did deploy and was able to interact and buy wizards


Task 9 missing -SkipVerification

Hi,
Task 9 is missing the -SkipVerification parameter since those data migration extension and empty System and Base Application created in Tasks 2 and 3 are not signed.
Best,
Zoran M.

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

ID: 5a8b2a8e-89a9-dda2-7d06-c433f2127044
Version Independent ID: 4a968a4c-8ad7-8d9b-b966-b08daf4bda9a
Content: Upgrading Customized C/AL Application to Microsoft Base Application - Business Central
Content Source: dev-itpro/upgrade/upgrade-to-microsoft-base-app.md
Service: dynamics365-business-central
GitHub Login: @jswymer
Microsoft Alias: jswymer

Thanks for the feedback! The information has been added. An update will be published soon.


Dock documentation

1. Why?
The documentation about the docks are empty.
2. How?
Just write the information about the dock, the usage and other features. I also added the entry for the bottom dock ( still WIP ) and fixed some title indentations
3. Related Issue
None
4. Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

5. Tests made
None
6. Notes
None

Perfect! Thanks for contributing :D


List of updates from pytorch master

There are several updates from Pytorch master which are relevant to Pyro. So I put them here to have references for future pull requests.

[ ] pytorch has vectorized count Binomial, HalfCauchy, HalfNormal, and might be LowRankMultivariateNormal
[x] logsumexp is available in Pytorch master
[x] bo tutorial's code can be more stable after pytorch's lbfgs supporting line search (under reviewing)
[x] we can remove matrix_triangular_solve_compat in Pyro and update SparseGPRegression to deal with trace_term because pytorch's lowrank_mvn does not support it
[x] tensor.new() is depricated, use .new_empty instead

Some performance tips:

[x] use K.view(-1)[::n+1] += 1 to add identity matrix to a contiguous matrix K
[x] ~use x.size(0) (faster) instead of x.shape[0] for a single element retrive from shape~ not important

Also, torch.jit has changed significantly, so pyro.ops.jit is basically obsolete.

@eb8680 Long time ago, you mentioned about a trick to add a term to log_prob from a model. Could you be more explicit about that trick? I am trying to move the trace_term here outside of LowRankMultivariateNormal distribution (to compatible to pytorch master). That trace_term is added directly to log_prob of lowrank_mvn.
Thanks!

a trick to add a term to log_prob from a model

You can add an arbitrary factor to a model's trace by observing a Bernoulli distribution:
pyro.sample("factor", dist.Bernoulli(logits=arbitrary_value), obs=1.)

Thank you @eb8680 ! I still can not write down the math here. I see that log(sigmoid(logit)) is different to logit. I'll write things down again after lunch. Maybe I miss something.

I guess there's a bit of extra plumbing in dist.Bernoulli, but there's some manipulation such that Bernoulli(...).log_prob(1.) == arbitrary_value, which is what you're trying to achieve.   You could do something similar with Categorical.

Yeah, got it! Thanks a lot! :)

The JIT is covered by #1063.  Closing now that #1225 is merged.


Quiver fixes + cleanup

Store quiverUserName in global settings
Support reconnect in Quiver (using stored name) from both UI (unexpected disconnect) and uProxy restart (https://github.com/uProxy/uproxy/issues/1954)
Refactor Quiver login screen to be a core-overlay, instead of page within splash.html, to allow it to be re-used when logging in via the settings drawer (https://github.com/uProxy/uproxy/issues/1960)
Add userName to social2 API to remove version hack (https://github.com/uProxy/uproxy/issues/1955)

Tested in Chrome using latest version of Quiver
Here's a screenshot of the latest Quiver login screen.  It will be translated prior to webstore launch, probably after we restyle everything to move the login screens behind the invite button:

:+1:


[Core] Update GH Actions

Greetings,
There are a few warning and info messages in the current actions, warning about a sunset of a few features and usages.
This PR updates all actions used to the latest major version and replaces the set-output usage in the pr tester with the github environment variables approach.
PR tester is tested in my Repo, so are lint and tests. Dockerbuild is not 100% testable because it requires the dockerhub and ghcr repos to exist, but I see no reason why it wouldnt work as usual (couldn't find anything in the action definitions that changed between the version we used and this uses now).

Looks good. Haven't tested it. Merging.


proposal: net/http: HTTP/2 configuration API

This issue is part of a project to move x/net/http2 into std: #67810
Configuring HTTP/2-specific protocol options currently requires users to import the golang.org/x/net/http2 package and call http2.ConfigureServer or http2.ConfigureTransports.
Configuring options in this fashion has the side effect of replacing the bundled HTTP/2 implementation in net/http with the one in golang.org/x/net/http2.
I propose adding HTTP/2 configuration options to net/http, permitting HTTP/2 servers and clients to be configured without importing an external package and separating configuration from version selection.
Many of the HTTP/2 settings are identical for server and client connections. For example, the MaxDecoderHeaderTableSize field of http2.Server and http2.Transport sets the SETTINGS_HEADER_TABLE_SIZE setting sent to the peer. We will unify these settings into a single configuration struct, and add this configuration to http.Server and http.Transport.
type HTTP2Config struct {
	// MaxConcurrentStreams optionally specifies the number of
	// concurrent streams that a peer may have open at a
	// time (SETTINGS_MAX_CONCURRENT_STREAMS).
	// If zero, MaxConcurrentStreams defaults to at least 100.
	MaxConcurrentStreams uint32

	// MaxDecoderHeaderTableSize optionally specifies the http2
	// SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It
	// informs the remote endpoint of the maximum size of the header compression
	// table used to decode header blocks, in octets. If zero, the default value
	// of 4096 is used.
	MaxDecoderHeaderTableSize uint32

	// MaxEncoderHeaderTableSize optionally specifies an upper limit for the
	// header compression table used for encoding request headers. Received
	// SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero,
	// the default value of 4096 is used.
	MaxEncoderHeaderTableSize uint32

	// MaxReadFrameSize optionally specifies the largest frame
	// this endpoint is willing to read (SETTINGS_MAX_FRAME_SIZE).
	// A valid value is between 16k and 16M, inclusive.
	// If zero or otherwise invalid, a default value is used.
	MaxReadFrameSize uint32

	// MaxUploadBufferPerConnection is the size of the initial flow
	// control window for each connection. The HTTP/2 spec does not
	// allow this to be smaller than 65535 or larger than 2^32-1.
	// If the value is outside this range, a default value will be
	// used instead.
	MaxUploadBufferPerConnection int32

	// MaxUploadBufferPerStream is the size of the initial flow control
	// window for each stream. The HTTP/2 spec does not allow this to
	// be larger than 2^32-1. If the value is zero or larger than the
	// maximum, a default value will be used instead.
	MaxUploadBufferPerStream int32

	// SendPingTimeout is the timeout after which a health check using a ping
	// frame will be carried out if no frame is received on the connection.
	// If zero, no health check is performed.
	SendPingTimeout time.Duration

	// PingTimeout is the timeout after which the connection will be closed
	// if a response to a ping is not received.
	// If zero, a default of 15 seconds is used.
	PingTimeout time.Duration

	// WriteByteTimeout is the timeout after which a connection will be
	// closed if no data can be written to it. The timeout begins when data is
	// available to write, and is extended whenever any bytes are written.
	WriteByteTimeout time.Duration

	// PermitProhibitedCipherSuites, if true, permits the use of
	// cipher suites prohibited by the HTTP/2 spec.
	PermitProhibitedCipherSuites bool

	// CountError, if non-nil, is called on HTTP/2 errors.
	// It's intended to increment a metric for monitoring, such
	// as an expvar or Prometheus metric.
	// The errType consists of only ASCII word characters.
	CountError func(errType string)
}

type Server struct { // contains unchanged fields
	HTTP2 HTTP2Config
}

type Transport struct { // contains unchanged fields
	HTTP2 HTTP2Config
}

The SendPingTImeout and PingTimeout fields assume #67812 is accepted, and the WriteByteTimeout field assumes #67811 is accepted.
The http2.Transport.StrictMaxConcurrentStreams field controls whether a new connection should be opened to a server if an existing connection has exceeded its stream limit. For example, if an HTTP/2 server advertises a stream limit of 100 concurrent streams, then the 101st concurrent stream opened by the client will block waiting for an existing stream to complete when StrictMaxConcurrentStreams is true, or create a new connection when it is false. There is no equivalent to this setting for HTTP/1 connections, which only support a single concurrent request per connection. We will add this setting to http.Transport, since it could be used to configure HTTP/3 connections (if and when we support HTTP/3):
type Transport struct { // contains unchanged fields
	// StrictMaxConcurrentRequests controls whether an HTTP/2 server's
	// concurrency limit should be respected globally.
	// If true, new requests sent when an connection's concurrency limit has been exceeded
	// will block until an existing request completes.
	// If false, an additional connection will be opened if all existing connections are at their limit.
	StrictMaxConcurrentRequests bool
}

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

Why are the types uncommon (for Go APIs) sizes like uint32? Can they all be int?
Otherwise this seems fine.

The proposal reuses the types from the x/net/http2 Server and Transport.
HTTP/2 settings are defined as 32-bit unsigned integers; I don't know for sure, but I'd guess that's the reason for the uint32s. I don't see a problem with defining these as ints, although the extra range isn't going to be used. 24 more bytes in the Server and Transport structs isn't going to be noticeable, given that you're not expected to have a lot of either.

It seems like now that this has outgrown being an HTTP/2 guts package, we should probably use Go types (int or else int64 if it really matters) instead of wire types. Otherwise this seems fine.

Have all remaining concerns about this proposal been addressed?
The proposal is https://github.com/golang/go/issues/67813#issue-2333927077, except using ints instead of uint32 etc.

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group
The proposal is https://github.com/golang/go/issues/67813#issue-2333927077, except using ints instead of uint32 etc.

No change in consensus, so accepted. 🎉
This issue now tracks the work of implementing the proposal.
— rsc for the proposal review group
The proposal is https://github.com/golang/go/issues/67813#issue-2333927077, except using ints instead of uint32 etc.

A minor change to rename two fields:
MaxUploadBufferPerConnection is now MaxReceiveBufferPerConnection.
MaxUploadBufferPerStream is now MaxReceiveBufferPerConnection.
These fields originate as http2.Server fields, where "upload" unambiguously refers to the flow control window used to limit the rate at which the peer sends data. As part of a common struct configuring client and server, I think it's clearer for this field to consistently control the peer's flow control window, in which case "receive buffer" is more accurate than "upload buffer".

Just to make sure I understand, I see that most of this API is in 1.24, but the issue is still open. Is it just Transport.StrictMaxConcurrentRequests that's missing from 1.24?

Yes, we have everything in 1.24 except for Transport.StrictMaxConcurrentRequests. Some questions about StrictMaxConcurrentRequests came up in review, and I was still thinking through whether we want to promote it to the net/http API or not in its current form when the freeze window closed.
If you'd like, I can close this issue and open a new one for StrictMaxConcurrentRequests.

If you'd like, I can close this issue and open a new one for StrictMaxConcurrentRequests.

No need. Thanks for the update!

Just a note that I think that CountError could use a little more documentation.  Are the strings passed to it entirely arbitrary other than being lowercase, digits, and underscore?  Is there any canonical list we can point to?  Or, what do we expect people to do with the counts once they have them?  Thanks.


Update requestHandler.js

enable rule.beforeDealHttpsRequest to overwrite host and port

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[7.x] Remove wasted file read when loading package manifest

This PR removes an unused file_get_contents of the packages manifest file.
How / Why
I was optimizing an application to have zero disk accesses, but I noticed the package manifest was read on every request, even though it is a PHP file and it should be cached by opcache.
I dug into the code and I find out there's a get of the manifest file before requiring it:
https://github.com/laravel/framework/blob/407372de8bb0031ba8364d303cd74bf306a11441/src/Illuminate/Foundation/PackageManifest.php#L109
This translates to always reading the file into memory, and then throwing away the result.
$this->files->get was introduced in commit 683637a5c0d8ee0049e9067785175f9a291e824e as a locking mechanism to prevent partial reads of the manifest file.
In commit 633a907bf974d303a2ee19eef070efdc6150ca2c the locking was substituted by an atomic rename-based file write. The get called survived the refactor, resulting a no-op file_get_contents that just trashes the output.
Behavior Differences
When the build function is not capable of creating the file, the filesystem get would have thrown a FileNotFoundException. After this changes, an empty manifest is returned instead.
I don't think there is a way for build to silently fail a write, and the following line is explicitly checking the existence of the file. Hence I believe this is the intended behavior.

I don't think we can merge this. It looks like it was added as a bug fix: https://github.com/laravel/framework/pull/25012.

At the time of #25012, the manifest was written using file_put_contents without locking, which can result in multiple concurrent writes.
As of #26010, the write is replaced by Filesystem::replace:

Create a temp file with the content we want
Rename the temp file to the target manifest location
Because rename is atomic in Linux, there are no concurrent writes anymore. The last rename sets the final file contents.

In fact, the locking is not used anymore (removed by #26010). The author removed the locking instead of removing the function call by mistake.

Right, thanks for those details.

After this changes, an empty manifest is returned instead.

I think we still need to throw an exception?

Doesn't getRequire raise an error or throw an exception, or something, when not found?

I just realized that, yes.
Should we simplify the call to the following?
return $this->files->getRequire($this->manifestPath);

No, I think this is fine as is.

In fact, this PR should possibly go to 6.x instead of 7.x.

Sure, I'm opening a PR from / to 6.x branch.

Closing this in favor for the other PR. @TheNodi you might wanna transfer your description to it.


Improve the diff section design to provide clearer context of the changes and alert to users

Describe the task
Following the technical design solution as discussed and agreed with @pbastia and @dleard on Wed, Mar 8, we need to improve the design of the diff section for an Amendment or General Revision to provide clearer context of the changes and alert the users when needed.
In summary,

Only 1 open Amendment and/or 1 open General Revision at a time
Before a revision record is applied/approved, under the diff section, for a changed field, instead of showing {field name}: {initial value when the record was created} -> {updated value}, we will show {field name}: {latest committed value} -> {updated value}

For the improved design, we need to address the following scenarios:

Display fields that are changed by the user, and alert the user if the fields have been changed by other users after the current revision record was created and before it is applied/approved
Display auto-calculated/populated fields impacted by the user's changes

Acceptance Criteria

[ ] Update the design with rapid prototypes
[ ] Validate the usability/accessibility of the improved design with CIF and the developers
[ ] Iterate/improve design based on the input
[ ] Create user stories for implementation

Additional context

@dleard's comment:

1523 is necessary before implementing the very permissive editing flow. They will need to see what has changed since they started their revision/amendment and be able to decide which change to accept.

Hi @LindsayMacfarlane - This ticket is ready for you to review and can be closed with:

Design of the diff section refined and reviewed with both CIF and the developers
- Design: Sequential Scenario 1
- Design: Sequential Scenario 2
- Design: Sequential Scenario 3
- Design: Cleaner Version preferred by users, nice-to-have, out of scope of this ticket (Sequential Scenario 2)
#1569 created for dev refinement and implementation
#1573 created for the cleaner version as preferred by users, which is labelled as a "nice-to-have"

Thank you @nanyangpro for all your work on this design task!


Bump AS version

super() calls are now required for derived classes. See https://github.com/graphprotocol/graph-ts/pull/51.

Tests will pass after the graph-ts PR is merged.

Alright it's green now.


the trait std::error::Error is not implemented for roxmltree::Error

I'm not sure if this was intentional, but trying to upgrade from 0.13 -> 0.14 results in this error:
error[E0277]: the trait bound `roxmltree::Error: std::error::Error` is not satisfied
   --> src/main.rs:318:48
    |
318 |     let doc = roxmltree::Document::parse(&text)?;
    |                                                ^ the trait `std::error::Error` is not implemented for `roxmltree::Error`
    |
    = note: required because of the requirements on the impl of `From<roxmltree::Error>` for `anyhow::Error`
    = note: required by `from`

Ah, debugging I now see I need to enable the std feature to get this back.

Yes, it's not enabled by default.

I'm glad I looked through the issues before posting a new one 😅

Fixed in the latest version.


Scan window doesn't work when using BoxFit.cover

Hi, I can't seem to make scan window work when I use BoxFit.cover instead of BoxFit.contain. I think it is related to how I am painting the overlay scan, but dunno what to do.
Scaffold(
      appBar: AppBar(
        title: const Text('Escaneie o QR Code!'),
        backgroundColor: strongBlueColor(),
      ),
      backgroundColor: Colors.black,
      body: LayoutBuilder(builder: (context, constraints) {
        final scanWindow = Rect.fromCenter(
            center: Offset(constraints.maxWidth / 2, constraints.maxHeight / 2),
            width: 300,
            height: 300);

        return Stack(
          fit: StackFit.expand,
          children: [
            MobileScanner(
              onDetect: (capture) => _onDetected(capture, data_controller),
              controller: controller,
              fit: BoxFit.cover,
              scanWindow: scanWindow,
            ),
            if (started)
              CustomPaint(
                painter: ScannerOverlay(scanWindow),
              )
          ],
        );
      }),
    );

class ScannerOverlay extends CustomPainter {
  ScannerOverlay(this.scanWindow);

  final Rect scanWindow;

  @override
  void paint(Canvas canvas, Size size) {
    final backgroundPath = Path()..addRect(Rect.largest);
    final cutoutPath = Path()..addRect(scanWindow);

    final backgroundPaint = Paint()
      ..color = Colors.black.withOpacity(0.5)
      ..style = PaintingStyle.fill
      ..blendMode = BlendMode.dstOut;

    final backgroundWithCutout = Path.combine(
      PathOperation.difference,
      backgroundPath,
      cutoutPath,
    );
    canvas.drawPath(backgroundWithCutout, backgroundPaint);
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) {
    return false;
  }
}

According to the docs at https://api.flutter.dev/flutter/painting/BoxFit.html BoxFit.cover means "as small as possible while still contained in the target box", while BoxFit.contain means "as large as possible [...]".
We do have a conversion at https://github.com/juliansteenbakker/mobile_scanner/blob/master/lib/src/scan_window_calculation.dart
However, that conversion seems to imply that the scan window is always centered when a BoxFit conversion is made.


bayes_mvs doctest stringency

The doctests added in https://github.com/scipy/scipy/pull/5065 are more strict than the corresponding unit tests.
I don't know the best way to fix this. One way could be to somehow mark the examples as non-executable. Another could be to print fewer digits in the doc examples. Another way could be to not do anything, or rather to keep changing the doctests each time an insignificant change is made to a related stats function.

+1 for fewer digits. use ... instead: https://docs.python.org/2.7/library/doctest.html#doctest.ELLIPSIS

fixed in https://github.com/scipy/scipy/pull/6258


init: lib.{collect',flattenAttrs}

Description of changes
This change adds an advanced version of lib.collect that exposes the attribute path, and a function to flatten an attribute set. These are mostly inteded for use with Nix flakes where packages are a flat set of derivations. That is, this allows flakes to define packages (or other outputs) as a tree of derivations (or other types) and flatten them before exposing.
In particular, this is useful for flakes that want to expose cross-compiled variants of packages so the user can run, for example, nix build path:.#go-linux-amd64-v3 independent of the current system (as in packages.${system}). In this case, Go is used as an example since the build system has an excellent support for cross-compilation out-of-the-box (assuming Cgo is disabled).
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

I think I can improve the implementation in a few places, so marking this as a draft for now.

Switched from using foldlAttrs to concatMap, and collect'’s f argument returns the value directly instead of a list.

@roberth, you’ve recently reviewed a similar PR #218776, perhaps you can take a look at this too?

Would it make sense to specify the order (pre / in / post, https://en.wikipedia.org/wiki/Tree_traversal) in the documentation?

This should be a depth-first pre-order traversal, just like the lib.attrsets.collect. Yes, makes perfect sense.
Should I also add docs for lib.attrsets.collect in a separate commit? Also, same for the infinite recursion warning.

That'd be great!

I found good use for this for my flattenVSCodeSettings lib function :heart_eyes:
Would be great to have this in nixpkgs then I might add that to the Wiki :thinking:

@tennox, neat! I plan to revisit this PR on a vacation next week (June 12th).
Although I don’t want to dedicate all of my time to software development during vacation so I can’t guarantee anything 🥲
The implementation should be pretty solid, so I think what’s left are tests and docs for edge cases (see previous review comments).

I almost forgot about my PR

https://github.com/NixOS/nixpkgs/pull/202517

flattenAttrs seems similar to joinAttrsRecursive.
I've updated it to document the strictness issues, at least for derivations, where that's not insignificant. In general I wouldn't recommend creating trees if you need to flatten them anyway.
You can turn a flat attrset with separator characters in the names into a tree without evaluating any of the leaves (which are just attribute values), but if you want to do the opposite, you're going to have to evaluate the leaves because they're mixed in with your non-leaf nodes.

Another implementation of pretty much the same thing is in https://github.com/NixOS/nixpkgs/pull/234615/files#diff-56d5f4426e78a9b4d1d89abbfe85a6196ea411b7eaddfc51a677e1e4e55c1e91

Note that I'm not opposed to the addition of these functions, but we should make it very very clear that they should be used either

on data that is consumed in whole
as a last resort.

Here is a possible draft implementation of the more generic approach.
  collect' =
    pred:
    f:
    attrs:
    path:
    if isAttrs attrs && pred attrs then
      concatMap (name: collect' pred f attrs.${name} (path ++ [name])) (attrNames attrs)
    else
      [ (f path attrs) ];

Note you should split the last argument of the function path and provide path = [] on the initial outer call.

Would it make sense to specify the order (pre / in / post, https://en.wikipedia.org/wiki/Tree_traversal) in the documentation?

This should be a depth-first pre-order traversal, just like the lib.attrsets.collect. Yes, makes perfect sense.
Should I also add docs for lib.attrsets.collect in a separate commit? Also, same for the infinite recursion warning.

collect' is not a depth first function. As soon as the value is collected it stops the recursion.
Which is better i think but should be correctly documented.

collect' is not a depth first function. As soon as the value is collected it stops the recursion.

A depth first algorithm can stop its traversal at any depth it deems sufficient. I don't think it implies that the whole tree or graph is always traversed in its entirety.
Depth first / breadth first would be a completely internal property if it wasn't for things like errors and side effects like builtins.trace, but I'm not sure that we need users to care about that. (iiuc you could make it breadth first by putting a (seq attrValues attrs [ (f path value) ]) instead of just [ (f path value) ], but I'm probably mistaken and it doesn't matter. We might even need more detailed terminology to describe such variations of the implementation)


Add wait to fix intermittent failing test

It seems that the file watcher does not detect changes after making a change immediately after running the dev command. Add a wait to fix the intermittent failing test.
50 passing runs here: https://buildkite.com/uberopensource/fusion-cli/builds/834
Fixes #331

!merge


Multiple k8s version upgrade options available for a nodegroup in an EKS cluster

What kind of request is this (question/bug/enhancement/feature request): bug
Steps to reproduce (least amount of steps as possible):

Deploy a hosted EKS cluster with k8s 1.15
After the cluster is deployed successfully, From the EKS console update the k8s version of the cluster to 1.16
The cluster upgrades to 1.16 in Rancher
Edit cluster
The nodegroups are in 1.15
In the dropdown, 1.17 and 1.16 options are available.

Expected Result:

From the EKS console, user can do an Update on the nodegroup which will upgrade to the cluster's version (if the cluster is on 1.16) nodegroups can update to 1.16.
Update from the EKS console also gives user two options - Rolling Update and Forced update
From Rancher option to update a node group should be available rather than allowing the user to choose from a dropdown

Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): master-head - commit id: 33f755
Installation option (single install/HA): HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): Hosted EKS
Kubernetes version (use kubectl version):

1.15

The UX now does not allow the user to specify a specific version for upgrade any longer. We are now more in line with how aws does it and the user is only presented with an option to upgrade when the node version is behind the cluster. And then you can only match the cluster version.

On master-head - commit id: c983bb ui tag: latest2

Deploy a hosted EKS cluster with k8s 1.15
After the cluster is deployed successfully, From the EKS console update the k8s version of the cluster to 1.16
The cluster upgrades to 1.16 in Rancher
Edit cluster --> User is not given multiple options to upgrade nodegroup's k8s version


DNN-10143: Fix ambiguous column reference

Original definition for this stored procedure can be found here

code review done


Broken URLs in README.md file

The URLs in the readme file are currently broken due to the files being relocated to another directory. You can find the corrected URLs below and update the readme file accordingly.
## Built In Widgets

The structure for all the `args` is defined in each widget builder, which are defined below:

Widget Builders | Example Location
----------------|------------------
[align](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAlignBuilder-class.html) | [align.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/align.json)
[animated_align](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedAlignBuilder-class.html) | [animated_align.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_align.json)
[animated_container](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedContainerBuilder-class.html) | [animated_container.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_container.json)
[animated_cross_fade](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedCrossFadeBuilder-class.html) | [animated_cross_fade.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_cross_fade.json)
[animated_default_text_style](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedDefaultTextStyleBuilder-class.html) | [animated_default_text_style.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_default_text_style.json)
[animated_opacity](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedOpacityBuilder-class.html) | [animated_opacity.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_opacity.json)
[animated_padding](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedPaddingBuilder-class.html) | [animated_padding.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_padding.json)
[animated_physical_model](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedPhysicalModelBuilder-class.html) | [animated_physical_model.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_physical_model.json)
[animated_positioned](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedPositionedBuilder-class.html) | [animated_positioned.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_positioned.json)
[animated_positioned_directional](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedPositionedDirectionalBuilder-class.html) | [animated_positioned_directional.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_positioned_directional.json)
[animated_size](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedSizeBuilder-class.html) | [animated_size.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_size.json)
[animated_switcher](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedSwitcherBuilder-class.html) | [animated_switcher.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_switcher.json)
[animated_theme](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAnimatedThemeBuilder-class.html) | [animated_theme.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/animated_theme.json)
[app_bar](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAppBarBuilder-class.html) | [align.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/align.json)
[aspect_ratio](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAspectRatioBuilder-class.html) | [aspect_ratio.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/aspect_ratio.json)
[asset_image](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonAssetImageBuilder-class.html) | [asset_images.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/asset_images.json)
[baseline](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonBaselineBuilder-class.html) | [baseline.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/baseline.json)
[button_bar](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonButtonBarBuilder-class.html) | [card.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/card.json)
[card](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonCardBuilder-class.html) | [card.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/card.json)
[center](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonCenterBuilder-class.html) | [center.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/center.json)
[checkbox](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonCheckboxBuilder-class.html) | [checkbox.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/checkbox.json)
[circular_progress_indicator](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonCircularProgressIndicatorBuilder-class.html) | [circular_progress_indicator.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/circular_progress_indicator.json)
[clip_oval](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonClipOvalBuilder-class.html) | [clips.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/clips.json)
[clip_path](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonClipPathBuilder-class.html) | [clips.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/clips.json)
[clip_rect](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonClipRectBuilder-class.html) | [clips.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/clips.json)
[clip_rrect](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonClipRRectBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[column](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonColumnBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[comment](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonCommentBuilder-class.html) | [scroll_view.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/scroll_view.json)
[conditional](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonConditionalBuilder-class.html) | [conditional.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/conditional.json)
[container](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonContainerBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[cupertino_switch](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonCupertinoSwitchBuilder-class.html) | [cupertino_switch.yaml](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/cupertino_switch.yaml)
[custom_scroll_view](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonCustomScrollViewBuilder-class.html) | [slivers.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/slivers.json)
[directionality](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonDirectionalityBuilder-class.html) | [directionality.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/directionality.json)
[dropdown_button_form_field](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonDropdownButtonFormFieldBuilder-class.html) | [form.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/form.json)
[dynamic](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonDynamicBuilder-class.html) | [dynamic.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/dynamic.json)
[elevated_button](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonElevatedButtonBuilder-class.html) | [buttons.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/buttons.json)
[expanded](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonExpandedBuilder-class.html) | [conditional.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/conditional.json)
[fitted_box](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonFittedBoxBuilder-class.html) | [fitted_box.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/fitted_box.json)
[flexible](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonFlexibleBuilder-class.html) | [form.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/form.json)
[floating_action_button](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonFloatingActionButtonBuilder-class.html) | [buttons.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/buttons.json)
[form](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonFormBuilder-class.html) | [form.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/form.json)
[fractional_translation](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonFractionalTranslationBuilder-class.html) | [fractional_translation.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/fractional_translation.json)
[fractionally_sized](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonFractionallySizedBoxBuilder-class.html) | [fractionally_sized.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/fractionally_sized_box.json)
[gesture_detector](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonGestureDetectorBuilder-class.html) | [gestures.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/gestures.json)
[grid_view](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonGridViewBuilder-class.html) | [for_each.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/for_each.json)
[hero](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonHeroBuilder-class.html) | [asset_images.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/asset_images.json)
[icon](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonIconBuilder-class.html) | [card.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/card.json)
[icon_button](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonIconButtonBuilder-class.html) | [buttons.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/buttons.json)
[ignore_pointer](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonIgnorePointerBuilder-class.html) | [gestures.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/gestures.json)
[indexed_stack](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonIndexedStackBuilder-class.html) | [indexed_stack.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/indexed_stack.json)
[ink_well](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonInkWellBuilder-class.html) | [asset_images.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/asset_images.json)
[input_error](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonInputErrorBuilder-class.html) | [input_error.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/input_error.json)
[interactive_viewer](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonInteractiveViewerBuilder-class.html) | [interactive_viewer.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/interactive_viewer.json)
[intrinsic_height](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonIntrinsicHeightBuilder-class.html) | [intrinsic_height.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/intrinsic_height.json)
[intrinsic_width](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonIntrinsicWidthBuilder-class.html) | [intrinsic_width.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/intrinsic_width.json)
[limited_box](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonLimitedBoxBuilder-class.html) | [limited_box.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/limited_box.json)
[linear_progress_indicator](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonLinearProgressIndicatorBuilder-class.html) | [linear_progress_indicator.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/linear_progress_indicator.json)
[list_tile](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonListTileBuilder-class.html) | [card.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/card.json)
[list_view](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonListViewBuilder-class.html) | [list_view.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/list_view.json)
[material](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonMaterialBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[memory_image](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonMemoryImageBuilder-class.html) | [images.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/images.json)
[network_image](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonNetworkImageBuilder-class.html) | [images.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/images.json)
[offstage](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonOffstageBuilder-class.html) | [offstage.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/offstage.json)
[opacity](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonOpacityBuilder-class.html) | [opacity.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/opacity.json)
[outlined_button](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonOutlinedButtonBuilder-class.html) | [buttons.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/buttons.json)
[overflow_box](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonOverflowBoxBuilder-class.html) | [overflow_box.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/overflow_box.json)
[padding](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonPaddingBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[placeholder](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonPlaceholderBuilder-class.html) | [placeholder.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/placeholder.json)
[popup_menu_button](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonPopupMenuButtonBuilder-class.html) | [popup_menu_button.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/popup_menu_button.json)
[positioned](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonPositionedBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[primary_scroll_controller](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonPrimaryScrollControllerBuilder-class.html) | [scroll_view.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/scroll_view.json)
[radio](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonRadioBuilder-class.html) | [radio.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/radio.json)
[rich_text](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonRichTextBuilder-class.html) | [rich_text.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/rich_text.json)
[row](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonRowBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[safe_area](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSafeAreaBuilder-class.html) | [form.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/form.json)
[save_context](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSaveContextBuilder-class.html) | [form.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/form.json)
[scaffold](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonScaffoldBuilder-class.html) | [form.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/form.json)
[scroll_configuration_](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonScrollConfigurationBuilder-class.html) | [scroll_view.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/scroll_view.json)
[scrollbar](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonScrollbarBuilder-class.html) | [scroll_view.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/scroll_view.json)
[set_default_value](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSetDefaultValueBuilder-class.html) | [set_default_value.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/set_default_value.json)
[set_scroll_controller](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSetScrollControllerBuilder-class.html) | [scroll_view.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/scroll_view.json)
[set_value](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSetValueBuilder-class.html) | [set_default_value.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/set_default_value.json)
[single_child_scroll_view](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSingleChildScrollViewBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[sized_box](https://pub.dev/documentation/json_dynamic_widget/latest/json_dynamic_widget/JsonSizedBoxBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[sliver_grid](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSliverGridBuilder-class.html) | [slivers.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/slivers.json)
[sliver_padding](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSliverPaddingBuilder-class.html) | [slivers.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/slivers.json)
[sliver_list](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSliverListBuilder-class.html) | [slivers.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/slivers.json)
[sliver_to_box_adapter](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSliverToBoxAdapterBuilder-class.html) | [slivers.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/slivers.json)
[stack](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonStackBuilder-class.html) | [align.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/align.json)
[switch](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonSwitchBuilder-class.html) | [switch.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/switch.json)
[text](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonTextBuilder-class.html) | [bank_example.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/bank_example.json)
[text_button](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonTextButtonBuilder-class.html) | [buttons.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/buttons.json)
[text_form_field](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonTextFormFieldBuilder-class.html) | [form.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/form.json)
[theme](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonThemeBuilder-class.html) | [theme.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/theme.json)
[tooltip](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonTooltipBuilder-class.html) | [tooltip.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/tooltip.json)
[tween_animation](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonTweenAnimationBuilder-class.html) | [tween_animation.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/tween_animation.json)
[wrap](https://pub.dev/documentation/json_dynamic_widget/latest/builders/JsonWrapBuilder-class.html) | [wrap.json](https://github.com/peiffer-innovations/json_dynamic_widget/blob/main/json_dynamic_widget/example/assets/pages/wrap.json)

Wow, thanks!  That was a big time saver.  Redeployed tonight with 7.0.6 with the updated links.