introduce an ASM-like language for debugging

This PR adds an ASM-like language that's useful to inspect circuits and debug. (It also adds the public input size to the Circuit type, and adds some convenience functions, to make this work.)
It looks like this:
row0.pub.Generic<1,0,0,0,0>
.l1 -> row4.l1

row1.pub.Generic<1,0,0,0,0>
.l1 -> row2.l1

row2.Generic<-1,0,0,1,0><-1,0,0,1,0>
.l1 -> row4.r1, .r1 -> row1.l1
.l2 -> row0.l1, .r2 -> row2.l2

row3.Generic<-1,0,0,1,0><-1,0,0,1,0>
.l1 -> row4.r2, .r1 -> row3.l1
.l2 -> row4.l2, .r2 -> row3.l2

row4.Generic<0,0,1,-1,0><0,0,1,-1,0>
.l1 -> row2.r2, .r1 -> row2.r1, .o1 -> row5.l1
.l2 -> row3.r2, .r2 -> row3.r1, .o2 -> row4.o1

row5.Generic<1,0,0,0,-1>
.l1 -> row4.o2

See https://github.com/MinaProtocol/mina/pull/12125 to see it used in tests

I'm very much not a fan of this format, and would prefer to revert this.
For the snarky tests PR, can you use a JSON representation instead, like we discussed?


Hardware Keyboard stops working, fixed by reboot

This affects both my Cosmos and my Astro, although the old battered Cosmos exhibit it way more often. It just happened once or twice on the Astro so far in the last 4 months and quite frequently (about once per day) on the Cosmo that is being retired now.
The hardware keyboard just stops working completely and works again after a reboot. It's interesting to note that both the cosmo and the astro can be rebooted by holding the ESC key.

Strange. I've never encountered this, but I am extremely careful with my devices


⚠ Bofrost.fr has degraded performance

In 05ff5e8, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 833 ms

Resolved: Bofrost.fr performance has improved in a2d1def.


Is multi-hop possible?

Can I forward a port behind 2 SSH tunnels?

I could just chain them back to back and it works thanks


Add some fixes proposals to docker-compose.yml.dist

@thomasbisignani @Remg @ottaviano I tested it once more and it's not working as I expected. The cache is not a filesystem but the permissions are the same...


Roll engine c02dd8f935a4..a01c82e9d7e2 (9 commits)

https://github.com/flutter/engine/compare/c02dd8f935a4...a01c82e9d7e2
git log c02dd8f935a4..a01c82e9d7e2 --no-merges --oneline
a01c82e9d Roll src/third_party/skia 7e9ea391cfce..1bfdd1adfa22 (1 commits) (flutter/engine#6894)
9ba556156 Revert "Guard the service protocol's global handlers list with a reader/writer lock (#6888)" (flutter/engine#6893)
517e52548 Roll src/third_party/skia 73b4a1f57254..7e9ea391cfce (1 commits) (flutter/engine#6892)
9352360c8 Guard the service protocol's global handlers list with a reader/writer lock (flutter/engine#6888)
9296d80c8 Roll src/third_party/skia 7fb30f11a055..73b4a1f57254 (3 commits) (flutter/engine#6891)
93cbf60b6 Roll src/third_party/skia 281224020a57..7fb30f11a055 (1 commits) (flutter/engine#6889)
aa9793f73 Roll src/third_party/skia a2187bf7629a..281224020a57 (5 commits) (flutter/engine#6887)
3978f0753 Keep a copy of each engine's description that can be accessed outside the engine's UI thread (flutter/engine#6885)
0870e3782 Roll src/third_party/skia 3b155a77c370..a2187bf7629a (11 commits) (flutter/engine#6884)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://cirrus-ci.com/task/4924281047744512


Add RoundRobinServerSelector to speed up segment assignments

Description
Initial segment assignments can take very long due to the strategy cost computation
for a large number of segments.
This PR addresses the issue by making the first assignment round-robin within a tier.
Only segment balancing takes cost-based decisions to move segments around.
Changes

Add dynamic config useRoundRobinSegmentAssignment with default value false
Add RoundRobinServerSelector. This does not implement the BalancerStrategy
as it does not conform to that contract and may also be used in conjunction with a
strategy (round-robin for RunRules and strategy for BalanceSegments)
Parameterize LoadRuleTest to test segment loading using both regular balancer strategy
and round-robin

Changes not in this PR

Drops are still cost-based even round-robin assignment is enabled.

Web-console change

Release note
Add a round-robin segment strategy to speed up initial segment assignments.
Set useRoundRobinSegmentAssigment to true in the coordinator dynamic config to enable this feature.

This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[x] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[x] been tested in a test Druid cluster.

Is there a specific reason to not try using RandomBalancerStrategy for load rules?

@rohangarg , RandomBalancerStrategy might not help get a tier with uniform-ish distribution (atleast in terms of number of segments).
This is because even within a tier, the list of eligible servers given as input to the RandomBalancerStrategy would be different in every call. The list of eligible servers for a segment depends on whether the segment is being served or loaded by a server or not. Thus the random integer might not give a uniform distribution since the output integer range, as well as the server at each index changes in each call. It might be even more non-uniform with multiple datasources having different number of replicas in a tier.
I have not validated this behaviour though, it might be interesting to see if we get a similar behaviour with random strategy as we would with round-robin. Let me know what you think.

I think with respect to uniform distribution, even the round-robin allocation might create holes in servers since it also skips them incase a segment is already scheduled on the server.
Although, I've also not compared the behavior of the two strategies. My question was more related to that itself - that given there is RandomBalancerStrategy which has been there for sometime, is there some specific reason to not pick it?
Also, I think that if RoundRobin strategy is considered superior to Random principally and practically, we should probably implement that as a BalancerStrategy and recommend it over random too.

Yeah, I thought of making round-robin a balancer strategy but then decided against it as balancing is the one thing it would not be used for. Balancing with round-robin would again cause issues similar to the ones I believe random would face during assignments.
Also, the contract for the two are fairly different. We could make them conform to each other, I guess.

Also, I think that if RoundRobin strategy is considered superior to Random principally and practically, we should probably implement that as a BalancerStrategy and recommend it over random too.

I don't think RandomBalancerStrategy is ever recommended for a real use case. It is really a bare bones impl mostly for testing purposes and is effectively no-op as it always returns null for balancing, meaning "segment is already optimally placed".

even the round-robin allocation might create holes in servers since it also skips them incase a segment is already scheduled on the server.

I agree, round-robin would also create holes but these would be filled in the next round itself. After any number of rounds, this would be expected to have a near uniform distribution.
random would do it too, if we always passed the complete list of servers to the strategy (rather than only eligible servers) and kept generating random numbers until we found an eligible server. The problem is primarily the range of the generated number, which keeps changing, thus defeating the pseudo-randomness. But given enough rounds, this too might attain a uniform distribution.
But it would be best to validate this hypothesis 🙂. I will write out some simulation tests and share the results here.

Yeah, I thought of making round-robin a balancer strategy but then decided against it as balancing is the one thing it would not be used for. Balancing with round-robin would again cause issues similar to the ones I believe random would face during assignments.

I'm not sure how would we balance in round-robin strategy out of the box without a cost function. I thought it would be like random strategy where the balancing is a no-op logic. Only the assignment APIs of BalancerStrategy are implemented using findNewSegmentHomeReplicator method.

@rohangarg , I ran some simulation tests with 10 historicals of equal disk capacity.
The round-robin does seem to perform better than random strategy in the following cases, as seen by the distribution of number of segments on the different historicals.
1. datasource "wiki" with 1k segments, 2 replicas
random:      [186, 192, 192, 195, 199, 202, 207, 207, 210, 210]
round-robin: [200, 200, 200, 200, 200, 200, 200, 200, 200, 200]

2. datasource "koala" with 10k segments, 2 replicas
random:       [965, 969, 989, 992, 995, 998, 1000, 1020, 1023, 1049]
round-robin:  [1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000]

3. both "koala" (1 replica) and "wiki" (3 replicas) published together
random:       [1274, 1278, 1292, 1294, 1301, 1302, 1309, 1310, 1317, 1323]
round-robin:  [1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300]

I have also included the test in this PR. To get the above results, you can re-run the tests with round-robin disabled.


feat: Leverage Token Registry and Accept List Updates

Description

Add a CLI handler for submitting a UpdateRegistryProposal
Update the x/oracle AcceptList based on the registry using the Hooks methodology that staking and other modules use
Remove ApplyAcceptList from x/oracle

closes: #281
closes: #100

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added appropriate labels to the PR
[ ] added ! to the type prefix if API or client breaking change
[ ] targeted the correct branch (see PR Targeting)
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed ! in the type prefix if API or client breaking change
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

Codecov Report

Merging #296 (72245e6) into main (e3009ca) will decrease coverage by 0.92%.
The diff coverage is 27.15%.

@@            Coverage Diff             @@
##             main     #296      +/-   ##
==========================================
- Coverage   30.94%   30.02%   -0.93%
==========================================
  Files          65       71       +6
  Lines        8569     8883     +314
==========================================
+ Hits         2652     2667      +15
- Misses       5683     5971     +288
- Partials      234      245      +11

Impacted Files
Coverage Δ

x/leverage/client/cli/tx.go
0.00% <0.00%> (ø)

x/leverage/gov_handler.go
80.00% <0.00%> (-20.00%)
:arrow_down:

x/leverage/types/hooks.go
0.00% <0.00%> (ø)

x/oracle/keeper/ballot.go
0.00% <ø> (ø)

x/oracle/keeper/params.go
32.25% <ø> (+16.12%)
:arrow_up:

x/leverage/keeper/token.go
64.86% <7.69%> (ø)

x/leverage/types/proposal.go
23.07% <23.07%> (ø)

x/leverage/types/token.go
35.89% <50.00%> (-29.62%)
:arrow_down:

x/leverage/keeper/keeper.go
53.84% <66.66%> (+0.28%)
:arrow_up:

x/leverage/client/cli/proposal.go
72.72% <72.72%> (ø)

... and 6 more


Ruby experimental

remaining gap is:

interop tests are not run for ruby, as they depend on either of the both other not done things:
need to settle on what 'quark install' does for ruby (in a way to allow isolation)
need to settle on what 'quark run' does (without sprinkling stuff all over the system install)

To view a diff that excludes emit/expected directory run:
git diff origin/develop..origin/ruby-experimental -- $(git diff origin/develop..origin/ruby-experimental --name-only | grep --invert-match 'emit/expected')


Don't use images in trusted workspace dialog

It could look a bit nicer if we used real HTML elements with real styles/etc. As-is the colors are off, and the text is a but blurry.

Dialogs don't allow arbitrary HTML because of their layering. This is done via markdown and styling. We could inject arbitrary elements and use css to put in svgs though

Hmm. I just feel like if we're showing an annoying pop up to everyone, at least make it pretty 😉
Also bonus bug that the link doesn't meet contrast requirements in HC mode. (2.14)

Change default for request of the user and pull request.
Create configuration with default for request of the user and pull request.
Develop for enable users personalize for this and according with this request.

@JacksonKearl yea I need to apply link styles properly

outdated


updated to function component

Details
Updated the component so it is now built with a function.
Fixed Issues
$ https://github.com/Expensify/App/issues/16119
Tests

Log in to the app
click avatar
click avatar placed over user's email
4a. click every row in the list and go back
4b. click on the avatar so the bottom sheet appears
click "upload photo"
6a. click on the screen outside the sheet - check if closes without issues
6b. click on the "gallery" option
Gallery - pick a photo
Edit photo and "save"
When taken back to profile view click again on the avatar (already set) so the bottom sheet appears with new set of options
10a. click on the screen outside the sheet - check if closes without issues
10b. click "view photo" and then go back
10c. click "upload photo" and repeat the proccess of picking a photo
10d. click "remove photo" - see if avatar changed to default one
exit the view to the app's main view and return back here to verify if the default avatar persists on every screen
do the same with the avatar set with some photo

:white_check_mark: Verify that no errors appear in the JS console

Offline tests
NA
QA Steps
The same as described in "Tests" section.

[ x] Verify that no errors appear in the JS console

PR Author Checklist

:white_check_mark: I linked the correct issue in the ### Fixed Issues section above
:white_check_mark: I wrote clear testing steps that cover the changes made in this PR

:white_check_mark: I added steps for local testing in the Tests section
:white_check_mark: I added steps for the expected offline behavior in the Offline steps section
:white_check_mark: I added steps for Staging and/or Production testing in the QA steps section
NA - I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
:white_check_mark: I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
:white_check_mark: I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

:white_check_mark: I included screenshots or videos for tests on all platforms
white_check_mark: I ran the tests on all platforms & verified they passed on:

:white_check_mark: Android / native
:white_check_mark: Android / Chrome
:white_check_mark: iOS / native
:white_check_mark: iOS / Safari
:white_check_mark: MacOS / Chrome / Safari
:white_check_mark: MacOS / Desktop

:white_check_mark: I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
:white_check_mark: I followed proper code patterns (see Reviewing the code)

:white_check_mark: I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
:white_check_mark: I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
:white_check_mark: I verified that comments were added to code that is not self explanatory
:white_check_mark: I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
:white_check_mark: I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

:white_check_mark: If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

:white_check_mark: I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
:white_check_mark: I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
:white_check_mark: I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
:white_check_mark: I verified the JSDocs style guidelines (in STYLE.md) were followed

:white_check_mark: If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
:white_check_mark: I followed the guidelines as stated in the Review Guidelines
:white_check_mark: I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
:white_check_mark: I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
:white_check_mark: I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
:white_check_mark: I verified that if a function's arguments changed that all usages have also been updated correctly
:white_check_mark: If a new component is created I verified that:

:white_check_mark: A similar component doesn't exist in the codebase
:white_check_mark: All props are defined accurately and each prop has a /** comment above it */
:white_check_mark: The file is named correctly
:white_check_mark:The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
:white_check_mark: The only data being stored in the state is data necessary for rendering and nothing else
:white_check_mark: If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
:white_check_mark: For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
:white_check_mark: Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
:white_check_mark: All JSX used for rendering exists in the render method
:white_check_mark: The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

:white_check_mark: If any new file was added I verified that:

:white_check_mark: The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

:white_check_mark: If a new CSS style is added I verified that:

:white_check_mark: A similar style doesn't already exist
:white_check_mark: The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

:white_check_mark: If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
:white_check_mark: If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
:white_check_mark: If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
:white_check_mark: If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
:white_check_mark: If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
:white_check_mark: If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
:white_check_mark: I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/18525360/63ad1dc3-6658-4ea3-b1ce-f1d9dc2d89ee
https://github.com/Expensify/App/assets/18525360/3c79afc2-beff-4b3c-9211-c5e03389727d

Mobile Web - Chrome
https://github.com/Expensify/App/assets/18525360/191935fc-244a-4786-a5f5-60a8f83002bc

Mobile Web - Safari
https://github.com/Expensify/App/assets/18525360/fbeadfcb-c3b7-4c7a-b7bf-aeea8334951d

Desktop
https://github.com/Expensify/App/assets/18525360/e313dbec-f336-4cf0-b790-2a3b19d491d5

iOS
https://github.com/Expensify/App/assets/18525360/b4b57df2-48dd-4b84-b97b-0269b32fcfa9

Android
https://github.com/Expensify/App/assets/18525360/adfc88ae-db17-4188-8275-33e8d5e73e16

Extra - workspace avatar
Uploading workspaceAvatar.mov…

I have read the CLA Document and I hereby sign the CLA

Also, I added comment to a resolved discussion here

There are a couple of linter errors still

They're should be highlighted in IDE, but you can also run linter from the command line. To do that

Add a new line containing **/vendor/* eslintignore
Run npm run lint from command line

Looks good except for the unrelated changes in Podfile.lock

I have not changed the podfile.lock, I kept the original one but had to push the changes as accidentally pushed podfile.lock earlier.

@keisyrzk

just undo the changes to the podfile.lock (i.e. add the new line at the end of the file)
pull the latest main

@keisyrzk

just undo the changes to the podfile.lock (i.e. add the new line at the end of the file)
pull the latest main

The file has been already reverted to the original.

The file has been already reverted to the original :)

it's still present in the list of the changed files, there should be only 2 files changed

The file has been already reverted to the original :)

it's still present in the list of the changed files, there should be only 2 files changed

I have reverted it once again. Looks like Podfile.lock disappears from the change map.

@eVoloshchak updates ready and pushed

@eVoloshchak ok got it, I have updated the code for isFocused and pushed the changes.

@keisyrzk
There's a linter error now

@eVoloshchak I have merged the newest main and resolved conflicts. I did also fix the linter error and warnings.

@keisyrzk, the order of imports should be different, the Lint check will still fail
run npm run prettier and commit the changes

@eVoloshchak ran prettier and linter again and pushed updates

@eVoloshchak ok I have added the SpinningIndicatorAnimation

@keisyrzk @eVoloshchak Why SpinningIndicator was restored? It wasn't used before, context

ok I have added the SpinningIndicatorAnimation

@keisyrzk, I meant we need to delete the SpinningIndicatorAnimation.js file

…and resolve the merge conflict 😬

@eVoloshchak oh ok, I misunderstood your comment. I have removed the SpinningIndicatorAnimation.js file and the animation code I added last time. Changes pushed.

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/deetergp in version: 1.4.2-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.4.2-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


feat: add tooltip for expiration on offer table

Thank you for your contribution to the KodaDot NFT gallery.
👇 _ Let's make a quick check before the contribution.
PR type

[ ] Bugfix
[x] Feature
[ ] Refactoring

What's new?

[x] PR closes #3639
[ ] Requires deployment <rubick/magick_issue>
[ ] <brief_description_of_what_I've_added>

Before submitting Pull Request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[x] I've posted a screenshot of demonstrated change in this PR

Optional

[ ] I've tested it at </rmrk/collection/26902bc2f7c20c546a-1FVG7>
[ ] I've tested PR on mobile and everything seems works
[ ] I found edge cases
[ ] I've written some unit tests 🧪

Had issue bounty label?

[x] Fill up your KSM address: Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot

[x] My fix has changed something on UI; a screenshot is best to understand changes for others.

https://user-images.githubusercontent.com/11361147/182155614-6b082128-24ab-4dd3-b708-d66c4ce2eff1.mov

@petersopko for now, I kind of hide the tooltip of the expiration date.

just one thing I've noticed, we're not showing timezone here (utc) so can we add that as well, please? I've checked how is it done in: https://deploy-preview-3642--koda-nuxt.netlify.app/sales and that looks more informative to me

Thank you for your contribution to the KodaDot NFT gallery. 👇 _ Let's make a quick check before the contribution.
PR type
* [ ]  Bugfix

* [x]  Feature

* [ ]  Refactoring

What's new?
* [x]  PR closes [expiration time detail tooltip #3639](https://github.com/kodadot/nft-gallery/issues/3639)

* [ ]  Requires deployment <rubick/magick_issue>

* [ ]  <brief_description_of_what_I've_added>

Before submitting Pull Request, please make sure:
* [x]  My contribution builds **clean without any errors or warnings**

* [x]  I've merged recent default branch -- **main** and I've no conflicts

* [x]  I've tried to respect high code quality standards

* [x]  I've didn't break any original functionality

* [x]  I've posted a screenshot of demonstrated change in this PR

Optional
* [ ]  I've tested it at </rmrk/collection/26902bc2f7c20c546a-1FVG7>

* [ ]  I've tested PR on mobile and everything seems works

* [ ]  I found edge cases

* [ ]  I've written some unit tests 🧪

Had issue bounty label?
* [x]  Fill up your KSM address: [Payout](https://beta.kodadot.xyz/transfer?target=DaWoVNNhBTdqJ5iPN3UcaLeamkPpJeGWdrs8LhvX9TQbadc)

Community participation
* [x]  [Are you at KodaDot Discord?](https://discord.gg/35hzy2dXXh)

Screenshot
* [x]  My fix has changed **something** on UI; a screenshot is best to understand changes for others.

Screen.Recording.2022-08-01.at.9.11.46.PM.mov

Hi, could you please load the screen recording again? It's not working, and it would be helpful to see it.

@KngZhi
https://deploy-preview-3641--koda-nuxt.netlify.app/bsx/gallery/10000001-0
here
it says expiration is 2 months, on hover it says November which would be like 3 months?

this is 2 months 30 days. @prachi00

pay 75 usd

😍 Perfect, I’ve sent the payout
💵 $75 @ 60.73 USD/KSM ~ 1.235 $KSM
🧗 HgpGWWmqrw8t6viwSy6LPcTVr2SuVPKWW5ArdNp2xCJY2U4
🔗 0x018b8eb9d61eadd0aad84edc676b2218cdb19ac1871af898ae4a7a8cf6ca84c5
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


[SPARK-46629] Fix for STRUCT type DDL not picking up nullability and comment

What changes were proposed in this pull request?

This change adds logic to generate correct DDL for nested fields in STRUCT. In particular instead of generating list of fields with data type names it will add NOT NULL qualifier when necessary and field comment when present.
For a table:
CREATE TABLE t(field STRUCT<one: STRING NOT NULL, two: DOUBLE NOT NULL COMMENT 'comment'>);
SHOW CREATE TABLE t;

Before:
CREATE TABLE t(field STRUCT<one: STRING, two: DOUBLE>)

After
CREATE TABLE t(field STRUCT<one: STRING NOT NULL, two: DOUBLE NOT NULL COMMENT 'comment'>)

Why are the changes needed?

Generate correct DDL.
Does this PR introduce any user-facing change?

No, we do not document behavior of this command for struct case.
How was this patch tested?

New unit test.
Was this patch authored or co-authored using generative AI tooling?

No

cc @MaxGekk

BTW, here is a similar PR https://github.com/apache/spark/pull/41016

@vitaliili-db Could you change PR's title, it is too much specific.

@MaxGekk changed the title and added test. The #44644 seems to be similar to my initial PR, I leave it for you to decide which one we should merge.

+1, LGTM. Merging to master.
Thank you, @vitaliili-db.


[WIP] Initial checking for CSharp GPU support

Add delay loading of DLLs to cmakelists.
Add GPU execution provider to C#.

Hi @jignparm , right now the C++ part is using atol = 1e-3, rtol = 0.017
If the following equation is element-wise True, then the test is passed:
absolute(a - b) <= (atol + rtol * absolute(b))


Clippy

This PR is a fast integration of Clippy.
It's change mostly files of telamon because a Clippy resolution was added.
Not all the report of Clippy was solved.
If @bors report a valid test. @ulysseB I recommend a fast merge to prevent of any merge conflict.

bors try

bors try

bors try

bors retry

bors try

bors try

bors try

bors try

bors try

bors+

bors r+


Update tutorial-config-management.md

update to use correct section and button names

@DerekHerman-MSFT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@cynthn - Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@DerekHerman-MSFT: I'm sorry - only the author of this article, @cynthn, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


more platform 6 fixes

koji_import gets rendered properly
platforms is an optional argument in arrangement6 and create_orchestrate_build shouldn't raise an error if it is omitted.

Not updating release notes draft because this is bugfix to an unreleased feature.


Arunima Fork for Openvino Notebooks

From @arunimaaaa:
225-distilbert-sequence-classification: This is for sentiment analysis, where a sentence is taken as input and the output is one among 2 classes: positive or negative.
226-bert-fill-mask: This is a fill mask operation notebook, which is most commonly known as auto-predict. It predicts the masked word in sentence based on the content of the sentence.

Hi @paularamo There are 2 notebooks.
225-distilbert-sequence-classification: This is for sentiment analysis, where a sentence is taken as input and the output is one among 2 classes: positive or negative.
226-bert-fill-mask: This is a fill mask operation notebook, which is most commonly known as auto-predict. It predicts the masked word in sentence based on the content of the sentence.

Hi @paularamo There are 2 notebooks. 225-distilbert-sequence-classification: This is for sentiment analysis, where a sentence is taken as input and the output is one among 2 classes: positive or negative.
226-bert-fill-mask: This is a fill mask operation notebook, which is most commonly known as auto-predict. It predicts the masked word in sentence based on the content of the sentence.

Thanks

Hey @paularamo have you gone through this? Let me know if you need something from my side.

@arunimaaaa, thanks for this contribution. Please create two separate PRs for these notebooks. The first one with the work related to distilbert and the second one with the work related to bert fill mask.

@adrianboguszewski removed 226 notebook. Will add it once you approve the 225 notebook.

Hi @adrianboguszewski and @zhuo-yoyowz have you reviewed this? I can upload the other notebook only if I can close this PR

Hi @arunimaaaa, Zhuo is covering this PR :) I think you can open another one, keeping in mind all changes/updates you were asked for here.

@arunimaaaa we merged develop branch to main, with several notebooks targeted to 2022.3 release. So 225 number is already occupied, please move to 229.
Also it will be nice if you test and update notebook for 2022.3 (if required)

@eaidova I removed 225 and added this as 229 notebook

@eaidova I removed 225 and added this as 229 notebook

Great! Could you please also resolve conflicts in README.md files?

@eaidova I've done that. Are there any more issues??

@arunimaaaa from my side everything is fine, we are waiting language review from @ryanloney
the only thing what I want to propose, it is adding quantization for this model and view benefit from it, but I'm not sure that you can perform these changes (possibly we need to discuss or I can commit them later)

@eaidova Sure, I'll discuss with you and integrate the changes later


Label of Last Bar in CategoryChart Not Visible

When creating a CategoryChart with bar styling and visible labels, the label of the last bar in the series is not visible. This is a new bug introduced in the latest release of the library. The following code will demonstrate the issue:
        double[] xData = new double[] { 0.0, 1.0, 2.0, 3.0, 4.0 };
        double[] yData = new double[] { 2.0, 1.5, 4.0, 3.77, 2.5 };

        // Create Chart
        CategoryChartBuilder builder = new CategoryChartBuilder();
        builder.title("Sample Chart")
            .xAxisTitle("X")
            .yAxisTitle("Y")
            .theme(Styler.ChartTheme.Matlab);
        CategoryChart chart = builder.build();
        // chart.getStyler().setYAxisMin(1.0);
        chart.getStyler().setLabelsVisible(true);
        //.setDefaultSeriesRenderStyle(CategorySeries.CategorySeriesRenderStyle.Line).

        chart.addSeries("y(x)", xData, yData);

        // Show it
        new SwingWrapper(chart).displayChart();

I have looked into the issue myself and the error occurs because the final bar in the series is drawn twice, with the second rendering overwriting the label. This extra rendering occurs due to a call to closePath on line 510 of PlotContent_Category_Bar.java that should not occur. I can fix this issue for the above example by setting 'path = null;' on line 312 following the first rendering of the bar. I am not sure if this bug occurs in other permutations of the CategoryChart. If so, my fix likely does not address those bugs. I hope this helps. Thanks for the hard work on this library.

Thanks, I'll check it out soon hopefully. If you want, please create a PR with the fix.

+1, running into this one, too.
Interestingly it doesn't happen all the time, but it does happen if I set the series colors on the ChartStyler. How is that related to the proposed "eliminate the redraw" fix?

@mindlessolipsist For me, this is appearing whether or not I set the series colors on the ChartStyler.
@timmolter Is there any update on this issue?

+1，
last bar color depper，label missing


Callback on maker exit

I'm adding a feature to the plugin I'm working on lldb.nvim which will allow users to compile their code before launching the debug session. And I want to delegate command handling to Neomake, which will take care of displaying the output asynchronously (in quickfix), displaying error/warning signs etc.
The problem is lldb.nvim can't know when Neomake has completed a command it issued, and its exit status. It needs a callback on exit. So I am working on implementing basic callbacks for Neomake. I will submit a PR when ready.

This sounds like a good idea. I can think of two different callbacks that could be nice to have:

A callback when an individual maker completes
A callback when all the makers spawned by the :Neomake command complete.

Hi @critiqjo  and @benekastah. Dispatch fires a QuickFixCmdPost cgetfile event each time a build finishes. Does neomake do the same? Thanks in advance.

No, I guess it doesn't. Would that be useful to a user? The only use I can think of is for opening the quickfix window right after it completes... @petobens Do you use that event for anything?

Hi @critiqjo. I find it useful because by checking that event I know when Dispatch finishes a build and I can therefore do:
au QuickFixCmdPost cgetfile call s:SomeRandomFunction()

I believe your implementation of exit callbacks generalizes this simple approach?

Yea, I got that... I was asking if you could provide an example use-case...
Anyway, this is not a generalization of it. Because users won't be able to catch all exits.
Only the caller can request a callback. And the caller could be another plugin -- and the user will not be notified by any means. Notifying the user of all events would be another independent feature.

I''ll try to provide a concrete a example. Thanks for your explanation.

Isn't "The only use I can think of is for opening the quickfix window right after it completes..." an example usecase? (I came to this issue trying to do exactly that...)

@gibiansky  sorry for the late reply. I also think its valid usecase (at least for me).

Ran into that while trying to add neovim support via neomake to https://github.com/wincent/ferret
        autocmd QuickfixCmdPost cgetfile call ferret#private#post('qf')

Would love this. Trying to run eslint --fix in neomake, but the changes don't show up w/o reloading.

@benekastah If you can point me to where in the code to add it, I can add a if g:neomake_reload_file then :e or something, and issue a PR.

I was also looking for a callback for this to jump to the first error in the file (like syntastic can with let g:syntastic_auto_jump = 3).

@critiqjo @benekastah Can either of you provide a sample how I could use the exit_callback to do something useful?
Just like @jamischarles I'd really like to have :e called after the eslint maker has run.

You'll have to manually define a command which executes Neomake#make(1, [], your_func). And your_func may execute :e if has_next is false. I'm closing this issue, since it was long resolved.

Thank you @critiqjo, if anyone else is interested, I've implemented this here: https://github.com/edwardsmit/dotfiles/blob/master/nvim/settings/neomake.vim

It is best having quickfixcmdPost/Pre working in the plugin i'd say.


Improve processor ID'ing

Processor comparisons are built on the basis of FAMILY and MODEL. Thus, processors that have different base and extended models or base and extended families MAY be in the same SEV generation.
The family calculations is as follows:
    FAMILY = Base family + Extended family

The model calculation is as follows:
    MODEL = Base model | (Extended model << 4)

Signed-off-by: Tyler Fanelli<EMAIL_ADDRESS>

Closes #65


How to switch FfmpegAudioRenderer and  MediaCodecAudioRenderer by play hls(m3u8) ?

I used exoPlayer (with ffmpeg extension open) to play a link to my m3u8 like this .     I found that ExoPlayer always uses FfmpegAudioDecoder and cannot switch to MediaCodecAudioRenderer?
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-STREAM-INF:BANDWIDTH=128000,CODECS="mp4a.40.34"
000_00000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=320000,CODECS="mp4a.40.34"
001_00000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=999000,CODECS="mp4a.40.34"
002_00000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1000000,CODECS="flac"
003_00000.m3u8

Just for clarity, can you specify

which version of the library you are using?
how you configure DefaultRenderersFactory
whether the ffmpeg extension is configured to support AAC or only FLAC

which version of the library you are using?

ExoPlayer version is 2.18.1

how you configure DefaultRenderersFactory

public class AppRenderersFactory extends DefaultRenderersFactory {
   public AppRenderersFactory(Context context) {
      super(context);
      setExtensionRendererMode(EXTENSION_RENDERER_MODE_PREFER);
  }

  @Override
  protected void buildAudioRenderers(Context context, int extensionRendererMode, MediaCodecSelector mediaCodecSelector, boolean enableDecoderFallback, AudioSink audioSink, Handler eventHandler, AudioRendererEventListener eventListener, ArrayList<Renderer> out) {
      out.add(new FfmpegAudioRenderer());
      super.buildAudioRenderers(context, extensionRendererMode, mediaCodecSelector, enableDecoderFallback, audioSink, eventHandler, eventListener, out);
  }
}

whether the ffmpeg extension is configured to support AAC or only FLAC
My Ffmpeg just support FLAC

Maybe my question is  that
First my ffmpegAudioRenderer just support FLAC.    My m3u8 file like this.
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-STREAM-INF:BANDWIDTH=128000,CODECS="mp4a.40.34"
000_00000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=320000,CODECS="mp4a.40.34"
001_00000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=999000,CODECS="mp4a.40.34"
002_00000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=1000000,CODECS="flac"
003_00000.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=1000000,CODECS="ac-<IP_ADDRESS>"
004_00000.m3u8

When ExoPlayer plays hls (m3u8), I choose to switch between trackIndex 4 (ac4 code) and trackIndex 3 (flac code).     How does ExoPlayer switch between FfmpegAudioRenderer and MediaCodecAudioRenderer?    Or switch back between  trackIndex 3 (flac code) and trackIndex 4 (ac4 code) .
Perhaps after the creation of ExoPlayer, does the player support dynamic switching of Renderers ？
Now i just  recreate ExoPlayer when i  I choose to switch between trackIndex 4 (ac4 code) and trackIndex 3 (flac code).
This method can work very well.
Can I achieve this sound quality switching function （switch between trackIndex 4 (ac4 code) and trackIndex 3 (flac code)） without recreating the player ？

@tonihei can you help on this issue?

does the player support dynamic switching of Renderers

Not at the moment I'm afraid. ExoPlayer will create a group of tracks of all your variants and then tries to find the most suitable renderer for the entire group. In your case, this doesn't work very well because it can just assign it to a single renderer and depending on which one it chooses it can only play the tracks supported by this renderer. We can leave this issue open as an enhancement to track dynamic switching between MediaCodec and other software codecs.

Can I achieve this sound quality switching function

The only thing you can easily do right now is to use EXTENSION_RENDERER_MODE_PREFER is you prefer the FLAC track or EXTENSION_RENDERER_MODE_ON to prefer the MediaCodec-compatible tracks. (This effectively changes the order of renderers and then the mapping of the group to renderer is done differently).
It's theoretically possible to change the renderer association mid-playback, but you'd need to make customizations to MappingTrackSelector (and fork DefaultTrackSelector to inherit your changed class). This is very advanced and given how complicated both classes are, I'd not advise to do this.

We can leave this issue open as an enhancement to track dynamic switching between MediaCodec and other software codecs.

ok  ，that is very good idea ，thanks.

make customizations to MappingTrackSelector (and fork DefaultTrackSelector to inherit your changed class)

Then I'm trying to do this ，thank you for your suggestion.


Switch Github Actions to ubuntu-20.04

The GH Actions scripts currently use ubuntu-latest, which is ubuntu-18.04. Over the next few weeks, this will switch over to ubuntu-20.04 (https://github.com/actions/virtual-environments/issues/1816), and then this line will break:
https://github.com/extendr/extendr/blob/5ebf0ab1dfc6e9574fe80526dca97ecf8377223b/.github/workflows/test.yml#L24
I think it would be best to switch over to ubuntu-20.04 explicitly now. You can see a workflow for that version here:
https://github.com/clauswilke/helloextendr/blob/main/.github/workflows/R-CMD-check.yaml
Notably, it doesn't require any setup for libclang, it just works.
cc @hobofan @CGMossa

I addressed this in #53. If you want a separate pull request, I'll create another one. Anyway, it's now confirmed Ubuntu 20.04 works by the checks on my pull request :tada:  https://github.com/extendr/extendr/pull/53/checks?check_run_id=1471818079

I have merged #53. Does that close this issue?

I believe yes.


Added SIMD-accelerated Levenshtein distance support based on the triple_accel library

I added support for Levenshtein distance by using the triple_accel library. Levenshtein distance can be optionally enabled by the user by using SearchOptions. I also edited the readme, documentation, and benchmarks to reflect this change. I tried to follow the existing code style. The code passes all tests on my laptop, and for reference, here is an overview of the benchmark results:
add books: ~1.4 ms
search_jaro_winkler: ~212 us
search_levenshtein: ~131 us

SIMD Levenshtein distance should be even faster with longer strings.

@andylokandy just to follow up, do you want me to implement a check for Unicode strings if the levenshtein option is enabled? This may make the code much more complex and possibly slower, but it is safer for the user.

I'm sorry, I was too busy recently to review the pr. Thanks for your work, it's great! And I've no problem of the design!

The new version is published on crates.io! 😄


Allow AE Team Reviewers to submit information requests

AE Team Reviewers (the farthest down the chain) will need to send information requests that bubble back up to the Team Manager / AE Admin and (from there) to the site editors in another information request.

I've set this to currently only allow information requests to be generated by AE Team Reviewers who are currently assigned and have not completed their assignments.


Question : Where is the website

Thanks ?

www.es6fiddle.net
I'll update the project description to include it. Thanks!


RFM - iasl

I DON'T Want To Become The Maintainer

[x] I have followed the Package Triage Process and I do NOT want to become maintainer of the package;
[x] There is no existing open maintainer request for this package;

Checklist

[x] Issue title starts with 'RFM - '

Existing Package Details
Package URL: https://community.chocolatey.org/packages/iasl
Package source URL:  https://github.com/warexify/chocolatey-edk2-buildtools/tree/master/manual/iasl
Date the maintainer was contacted (in YYYY-MM-DD:)  2022-10-01
How the maintainer was contacted:  Pull request to warexify/chocolatey-edk2-buildtools, the iasl package's host repository.
Date the Chocolatey Community Packages site admins were contacted (in YYYY-MM-DD:)  2022-10-13
How the Chocolatey Community Packages site admins were contacted:  E-mail via form reached from the iasl package's Chocolatey Community Packages description page's 'Contact Site Admins' link.

     Continues following up on #1060.

I am happy to pick this one up.

@dgalbraith I've added you as a maintainer, you should have a confirmation email.

@dgalbraith, CC @TheCakeIsNaOH:
     Doesn't dgalbraith/chocolatey-packages#446 getting merged there also close this issue?

@RandomDSdevel issues generally stay open until the package has been approved by a moderator. Currently, the package is still in moderation: https://community.chocolatey.org/packages/iasl/2022.03.31

@RandomDSdevel issues generally stay open until the package has been approved by a moderator. Currently, the package is still in moderation: https://community.chocolatey.org/packages/iasl/2022.03.31

     Right, got it; thanks.

@RandomDSdevel There is an automatically updating package package now available but as @TheCakeIsNaOH says still awaiting moderation.
It is a little strange and needs a moderator to review - the package is currently failing validation but I do not think that this is a valid error.
Once a moderator has taken a look this will be confirmed or additional updates requested before the package is published/made available.
In the interim it is possible to install the under-moderation versions
choco install -y iasl --version 2022.03.31

but please note that there has not been any independent review as yet.

Package has now been reviewed and is available on the Community Repository.

Thanks for picking up the package @dgalbraith


New Feature: Time Series Prediction

What is the feature?
Prediction of trends.  Stock market, weather predictions, trends, etc.  This would be very similar to the existing recurrent net that will be deprecated, but will serve as a baseline for 2.0 GPU push.  This will be included in v1 somewhere, as it is a simplification of the existing recurrent network.
How important is this (1-5)?
5
Usage:
import brain from 'brain.js';

const net = brain.recurrent.RNNTimeSeries(options);
// or
const net = brain.recurrent.LSTMTimeSeries(options);
// or
const net = brain.recurrent.GRUTimeSeries(options);

net.train([
  [1,2,3,4,5],
  [5,4,3,2,1],
]);

net.run([1,2,3,4]) -> 5
net.run([5,4,3,2]) -> 1

It should be noted that this network type does not work with represented data.  This type of neural network will work directly with the data you send in.

@robertleeplummerjr another curiosity, how might one use this approach in aggregation with other time series layers, for example using 3 stocks in the same time period?
I'd like to select a time range of various time series data, I'll have a score applied time series event (say news polarity for example 0.0<->1.0 ), and predict from sets like that?

The more context the net has, the better and I'm not sure that the net would know how to distinguish one from the other.  I think it'd be best to train those nets separately.  The up-side to that would be each net would be smart enough to tracks its progress, but it would not do well at adjusting based off context of other financials.  Example: gold goes up, dollar goes down.
If some sort of non-generalized approach was needed I suppose a custom solution could be built.
The LSTM version (which would be my recommendation to use) uses simple math to achieve its equation: https://github.com/BrainJS/brain.js/blob/develop/src/recurrent/lstm.js#L48 so by modifying that, we may be able to achieve the context you are wishing for.

I thought about this and it hit me this morning, this is already somewhat supported.  This is how:
The time step prediction currently only accepts a single value at a time, also it only outputs a single value at a time.  By default the network is setup as:
const net = new brain.recurrent.LSTMTimeStep({
  inputSize: 1,
  hiddenSizes: [20, 20],
  outputSize: 1
});

The inputSize represents the single time-step.  So, simply make it larger, done.  This isn't unit tested, I'll if I can get it supported though.
As for v2, I imagine "brain.recurrent.LSTMTimeStep" will likely shorten to something like:
import { TimeStep } from 'brain.js';
const net = new TimeStep();

This way the default layer will simply be a runner for whatever layers we want, in this case just rnn, lstm, or gru.

Awesome, keep me posted! Thanks! 👍

Support added: https://github.com/BrainJS/brain.js/commit/d8f9170a135f11512d5c7d7197d48d9c6a81df1b

also tested ^

Thanks! And thanks for the tests, they make it really clear! 👍

Released in https://github.com/BrainJS/brain.js/releases/tag/1.2.0


Improve Pulumi project documentation

This change would add more documentation that explains the high level theory of what Pulumi projects are doing what and why. The intention to make it easy to steal from the reference architecture.

Yes, let's close.


Make some feature-generated links load via AJAX

Motivation: https://github.com/sindresorhus/refined-github/pull/4631#issuecomment-891201750
This PR will continue for a few days in case anyone find something new, but hopefully searching for <a will give not too much results to check.
Ajaxed features and Test URLS:

comments-time-machine-links: https://github.com/sindresorhus/refined-github/blob/main/.gitattributes?rgh-link-date=2021-08-01
linkify-branch-references: 🤷♀ Something like https://github.com/sindresorhus/refined-github/compare/main...test?quick_pull=1
linkify-symbolic-links: https://github.com/lxqt/lxqt/blob/master/CONTRIBUTING
list-prs-for-file: https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/all-packages.nix
rgh-feature-descriptions: https://github.com/sindresorhus/refined-github/blob/main/source/features/ci-link.tsx
swap-branches-on-compare: https://github.com/sindresorhus/refined-github/compare/hotfix...main
view-markdown-source: https://github.com/sindresorhus/refined-github/blob/main/readme.md

Screenshot

I have been focusing on some other stuff lately so I didn't really get to skim through every feature. I will try to do that tomorrow or the day after that.

@kidonng @yakov116 we can merge this now if the current ones have been tested and:

they actually change the type of navigation
they don’t introduce immediately-visible bugs (e.g. if you click and go back and go forward and everything is still fine then we’re good)

I've been seeing more and more often that features just don't work/appear on PRs and I have to refresh the page. Are you see thing issue? Does this fix the issue?

There's too many features and probably I won't notice anything missing unless it's severely broken.
This PR should only deal with links added by Refined GitHub and should have nothing to do with the issue.

Has this been tested? Do you want to merge it as is?

Sorry for creating another long-standing PR 😅  now that you mentioned I will certainly push some more changes later today

There are some links I haven't go through and I may add something new later but this PR is mergeable anytime.

Thanks! We won't release a new version for probably a week so we can see any issues while using the locally-built version.


.AddDefaultUI(UIFramework.Bootstrap4) problem. "UIFramework" no longer exists.

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/index?view=aspnetcore-3.0&tabs=visual-studio
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins?view=aspnetcore-3.0
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/twitter-logins?view=aspnetcore-3.0
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/google-logins?view=aspnetcore-3.0
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins?view=aspnetcore-3.0
Under: Configure Microsoft Account Authentication
.AddDefaultUI(UIFramework.Bootstrap4)
"UIFramework" no longer exists.

@wadepickett all these need to be updated for 3.0

Excellent, happy to work on these, thanks!

Moved to Master issue: Facebook, Google, and external provider s #16210


Check if my resampler usage is correct

So normally I'd use some closed source code making use of ffmpeg bindings to do audio resampling. But this is an open source project outside of my work so I thought I'd try rubato out as it seemed the most fleshed out solution. PR for reference https://github.com/xd009642/streamer-template/pull/19
So initially I'm doing some fairly simple resamplings in the tests just as a sanity check before doing anything more complicated.
Also I've had to manually implement some truncation to cut off a trailing silence which i guess is based on the buffer size? It would be nice if this was documented in some way or there was a code sample.
Hopefully my code is useful to see how someone with no knowledge of this library approaches using it and if there's any stupid mistakes I've made they could potentially be fed back into examples or docs to add more clarity.
EDIT: Removed something that was an issue in my test I fixed.

try this
https://gofile.io/d/yMHabA
select the desired compiler in the installer

Managed to get it working as expected, feel free to check and see if I'm doing anything stupid but as it works hopefully I'm not :pray:

I took a quick look and I'd say it looks fine. But the resampler size looks a little odd, like a power of two with a typo: const RESAMPLER_SIZE: usize = 4086;. Was that supposed to be 4096? It doesn't matter for the performance of the chosen resampler but maybe a wrong value can cause trouble elsewhere.

Ah yeah that was a typo. I was doing various powers of two and probably messed up in one of the changes.
It would be nice if I didn't have to manually figure out where to truncate to but that's do-able

You can use this to know how much to trim at the start:
https://docs.rs/rubato/0.15.0/rubato/trait.Resampler.html#tymethod.output_delay
You'll still have to calculate how much to trim at the end. I don't see any reasonable way the library could help with this, considering that the ratio etc can be adjusted at any time while processing.


SECURITY: Spoof package on NPM

It looks like a spoof version of this is available on NPM: https://www.npmjs.com/package/jupyterlab-sql
I don't know what is in that package, but you should definitely not install it. Always install jupyterlab-sql from Pypi.
If you have installed it, I strongly recommend wiping your JLab environment.

x-ref: https://github.com/quigleyj97/jupyterlab-spreadsheet/issues/12

how do we wipe it out ?

For reference, at first glance, the package looks like it's just a clone. There is no obvious malicious code in there.
I've submitted a support request to NPM to have it taken down.

Quoting from a recent npm security bulletin:

The attack was carried out by using a pattern that is becoming more and more popular; publishing a “useful” package (electron-native-notify) to npm, waiting until it was in use by the target, and then updating it to include a malicious payload

Copying a package and trying to pass it off as authentic isn't kosher and opens up jupyter users to exactly this type of attack.

NPM have replied with steps to follow -- to avoid having multiple versions of this conversation, I will carry on posting on this issue on jupyterlab-spreadsheet.

any progress on this ?

Ownership of the package has now been transferred to me, which is great. I can't take it down directly, but I have raised another support request with NPM to do this.

great, waiting for final green  light

The package is now completely gone. Running:
jupyter labextension install jupyterlab-sql

... no longer works. Hopefully this will force people to install the package via pip.

Closing this for now. If anybody thinks there are outstanding problems, feel free to re-open.


Provide regex pattern shortcuts to help users define cleaner models

Defining larger models with several regex patterns with lots of repetition can become a maintenance hell for users. Especially that many patterns are usually common ones such as URLs, numbers only, negative numbers etc...
Was thinking, it would be cool to have a pre-defined set of patterns in the lib to allow users to do shortcuts when defining models. Example:
Instead of having to define something like this as a model:
  const baseEntryPattern = {
    pageref: /(?<pageRef>.*)/,
    startedDateTime: /(?<startedDateTime>.*)/,
    request: {
      method: /(?<requestMethod>GET|POST)/,
      url: /(?<requestUrl>[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*))/,
      httpVersion: /(?<requestHttpVersion>.*)/,
      headersSize: /^(?<requestHeaderSize>\-?(\d+\.?\d*|\d*\.?\d+))$/,
      bodySize: /^(?<requestHeaderSize>\-?(\d+\.?\d*|\d*\.?\d+))$/,
    },
    response: {
      status: /^(?<responseStatus>[0-9]{3})/,
      content: {
        size: /^(?<responseContentSize>\-?(\d+\.?\d*|\d*\.?\d+))$/,
      },
      headers: [
        { name: /content-type/i, value: /(?<responseContentType>.*)/ },
        { name: /content-length/i, value: /(?<responseContentLength>.*)/ },
        { name: /cache-control/i, value: /(?<responseCacheControl>.*)/ },
      ]
    },
    timings: (val) => val,
    time: /^(?<time>\-?(\d+\.?\d*|\d*\.?\d+))$/
  };

Would be cleaner to (optionally) use a helper method in the module to define common patterns this way:
  const baseEntryPattern = {
    pageref: Objectron.patterns.any(),
    startedDateTime: Objectron.patterns.any('startDateTime'),
    request: {
      method: /(?<requestMethod>GET|POST)/,
      url: Objectron.patterns.url('requestUrl'),
      httpVersion: Objectron.patterns.any('httpVersionName'),
    },
    response: {
      status: /^(?<responseStatus>[0-9]{3})/,
      content: {
        size: Objectron.patterns.anyNumber('responseContentSize')
      },
    },
    timings: (val) => val,
    time: /^(?<time>\-?(\d+\.?\d*|\d*\.?\d+))$/
  };

Can save lots of effort in maintaining and re-implementing common patterns by the user especially that as the model gets more complex, repeated patterns become confusing and error prone.This could potentially be achieved via implementing a set of methods to generate regex expressions based on pre-defined patterns.
What do you think?

Loving the contributions @aymanfarhat keep em coming for sure. Yeah it'll definitely be cool to define helper matchers that are extendable and we provide a default set off the shelf. Doesn't cost much to put it in place also.


unit tests don't run, need more test coverage

When I attempt to run the test_detect_ts I get the following error:
Traceback (most recent call last):
File "/var/development/git/hokiegeek2-forks/AnomalyDetection/tests/test_detect_ts.py", line 34, in
test_anomaly_detect_ts(data)
File "/var/development/git/hokiegeek2-forks/AnomalyDetection/tests/test_detect_ts.py", line 24, in test_anomaly_detect_ts
results = detts.anomaly_detect_ts(data, max_anoms=0.02,
AttributeError: 'function' object has no attribute 'anomaly_detect_ts'
Also, definitely need more unit test coverage

Just submitted pull request

merged, thanks @Marcnuth


Spanish Translation

Hello, here I'm pulling the spanish translation for these files: MerchantHelp_es_ES.lang, NerdGeneral_es_ES.lang, NerdTheft_es_ES.lang, OrderlyGeneral_es_ES.lang, PatisserieMissing_es_ES.lang, and PatissierJob_es_ES.lang.

1096 translatable words have been translated to spanish (not counting codes, links, paths nor words that are suposed to remain untranslated)

I will continue to translate the whole es_ES folder, only that I'll be pulling every time I get to a 1000 words. I hope this is ok. Thank you!

 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.


Allowed Services [3.party module]

[ ] Allowed Services CRUD
[ ] title
[ ] desc
[ ] related only with journal

Service log:

[ ] time stamp
[ ] reason
[ ] history
[ ] user based

@ 8 October


Added support for Arrays mapping

Hello Dan,
I am using the object-mapper module in my project and find it very useful, but it is missing some basic support for Arrays mapping which in my case is a must. Therefore I added this support and updated the test case accordingly to show the new functionality in action. Please consider pulling my changes to your repository and push them to npm to avoid duplicate npm repositories with different versions.
Thank you in advance,
David

@rafakato added array mapping which has been released in v2.0.0. If it doesn't work as needed/expected please open another issue.
Thanks!

Hi, what about array mapping WITH constants, I can't get this to work?
// array with constant
let obj1 = [{'a' : 11}]
let map1 = {
  '[].a' : '[].b', // maps correctly
  '[].notExistingKey': [['[].c', null, 'STATIC']] // ** does not map correctly **
}
let result2 = objectMapper(obj1, map1) //-> [{'b':11}]  missing field 'c'

// object with constant does work as expected
let obj2 = {'a' : 11}
let map2 = {
  'a' : 'b', // maps correctly
  'notExistingKey': [['c', null, 'STATIC']] // maps correctly
}
let result1 = objectMapper(obj2, map2) //-> {'b':11,'c':'STATIC'}  correct

Tried a few notations but couldn't get it to work...
Thanks.


Security Fix

Hi,
I've used PIP for a personal project and made quite a lot of changes/fixes (along with my work mates) and I intend to contribute those upstream. We added functionality, upgraded the database stuff to use PDO and did a few other things.
The first change I'm submitting is a security fix, which protects the framework from https://www.owasp.org/index.php/PHP_File_Inclusion
EDIT: See also https://www.owasp.org/index.php/Testing_for_Local_File_Inclusion
Please consider merging...
Thanks,
Dushan

This doesn't look like it supports sessions.

I'm not sure I follow, fix #37 specifically addresses the problem where you could specify a fully qualified path to a file on the servers disk and the router would include it, for example site.com/../../../etc/passwd
https://www.owasp.org/index.php/Testing_for_Local_File_Inclusion
https://en.wikipedia.org/wiki/File_inclusion_vulnerability
https://www.owasp.org/index.php/PHP_File_Inclusion
The session handling is done in index.php in the same way it always was, I've not changed that (however, I intend to put some more code in soon to prevent session fixation attacks and to generate stronger id's)

The rewrite forces everything through index.php
index.php includes the base classes for the model/controller etc.
Then each user generated model/controller extends the base one (and thus accesses all its members)
For this reason you don't need a session_start() in each file

Was that what you meant?

a problem :
when my script is in subfolder dont load style.css loool
plaease check BASE_URL


Fix incompatible (outdated) kind image version for cgroup v1/SLES15SP5

How to categorize this PR?
/area testing
/kind bug
What this PR does / why we need it:
After Gardener upgrade to 1.79.0 which brings kind version 0.20.0 - I can no longer setup local kind with make kind-up because it timeouts on "Starting control-plane..." - [kubelet-check] It seems like the kubelet isn't running or healthy.
Following error can be found kind/kubelet.log (on SLES 15SP5 with cgroup v1 unified):
Sep 13 14:33:10 gardener-local2-control-plane kubelet[839]: E0913
14:33:10.989403     839 run.go:74] "command failed" err="failed to run
   Kubelet: invalid configuration: cgroup [\"kubelet\"] has some missing
paths: /sys/fs/cgroup/cpuset/kubelet.slice,
/sys/fs/cgroup/hugetlb/kubelet.slice"

I suspect some race condition happening with change of cgroupns from host to private but haven't confirmed that.
As suggested by kind changelog it is necessary to switch to proper image (default is v1.27.3) It solves the issue.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Only the change in kind-up.sh was required to fix issue but I updated example/gardener-local/kind/cluster/values.yaml to keep it with sync, but there is already a TODO about upgrading to 1.28.0.
Release note:
bugfix developer - Use proper kindest/node image for kind 0.20.0.

Please sign the CLA.
/ok-to-test

/cla

/lgtm
/approve

/cherry-pick release-v1.79


Rudr installation instructions should specify how to install with Helm 2

Installing Rudr Using Helm 3 should have a 0.5 step that says run helm init if this is the first time you've used Helm with your k8s cluster.

We should actually keep the Helm 3 instructions as is and add a section on how to use Helm 2. Helm 3 doesn't have Tiller so helm init is not valid.

The chart was created using the newer chart API introduced in Helm 3, so it won't install with Helm 2.
https://github.com/oam-dev/rudr/blob/47ca798048d0fe7b01b269f166132eb4754ab1da/charts/rudr/Chart.yaml#L1

See https://v3.helm.sh/docs/faq/#chart-yaml-apiversion-bump for more context.

The Helm 2 instructions were removed because of what @bacongobbler says above.


add finalised stake linkings, votes on enacted proposals, and the cha…

closes #283
also see https://github.com/vegaprotocol/vega/pull/4748

Is that change required? We already have all those in here right: https://github.com/vegaprotocol/protos/blob/0eb665b3e84a1607196d5931bb4ea729424c191e/sources/vega/snapshot/v1/snapshot.proto#L79?

Is that change required? We already have all those in here right:
https://github.com/vegaprotocol/protos/blob/0eb665b3e84a1607196d5931bb4ea729424c191e/sources/vega/snapshot/v1/snapshot.proto#L79
?

You are probably right, It'll be great if it is, I'l check it out.


Split travis job in multiple stages to make it easier to know where i…

…t failed

Codecov Report

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

@@           Coverage Diff           @@
##           master     #200   +/-   ##
=======================================
  Coverage   91.63%   91.63%
=======================================
  Files         117      117
  Lines        2318     2318
  Branches      415      415
=======================================
  Hits         2124     2124
  Misses        192      192
  Partials        2        2


Add chimad-phase-field to list of sites

Add chimad-phase-field website to list of sites using Staticman

Lovely, thank you!


fix a bug in scan autodiff, improve autodiff tests

fixes #748

I accidentally made the final scan test in this PR less general than intended, but e04f344 generalized it. (I had tested the general case locally, then kept the wrong version.)


Possible to set output dir?

I don't see any option to set the output dir. Is that possible?

At the moment, files will be generated based on the current working directory.

It seems not even that, but the directory where package.json is located in when the generator is started via npm run. Strange.

At the moment, using the CLI, files will be generated based on the current working directory. If you require the package you can specify custom icons and platforms with the desired path. Maybe to much work to make that.

What I mean is that when I start npm run from a subfolder, your generator still looks for the icons/and saves the resulting splash/icons in the folder where the package.json is located. Maybe that's a quirks of how npm sets the cwd. Any idea?

Don't know why it's happening. You mean using the npm scripts? Can you send me your package.json file? Maybe I can try your scenario here.

scripts: {
  "prepare:icons": "splashicon-generator --imagespath=base-icons",
}

Given that folder structure:
/app/package.json
/app/subfolder/base-icons

call npm run prepare:icons from within subfolder. It should use the base-icons folder but it is actually looking for basic-icons in the same folder where package.json is located in.

Yes in this case you should use:
scripts: {   "prepare:icons": "splashicon-generator --imagespath=subfolder/base-icons", }
Note that you must include the path of the base icons relative to the current working directory that in the context of the npm is where the package.json is located.

While this may work, I can't change the scripts command for every subfolder I want to create the icons in (white label app). The question is, why is npm setting the wrong cwd.

This is an NPM behavior. Don't know how to by pass it.

Why not provide a CLI param for the output folder, which is by default process.cwd() if not specified?


log_circuit_size cannot depend on the transcript in the recursive verifier

Instead, we should probably use the value specified inside the verification key.

Actually, from offline conversation with @Rumata888 , it is fine as long as we will have recursive verifiers for all the sizes of circuits we support.


Fetching history is not working

Project setup :
Spring Boot 2.6.3
Java corretto-17 (17.0.9)
PostgreSQL 15.2
Issue:
When I am trying to get history of executions I am getting this error:
detailed message:
PreparedStatementCallback; bad SQL grammar [select * from scheduled_execution_logs where time_started >= ? and time_finished <= ? order by time_finished desc limit 500]
cause:
org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of java.time.Instant. Use setObject() with an explicit Types value to specify the type to use.
I am getting these time range parameters as default:

but I get the same behaviour with these values:

When I try to query database myself I am getting proper results:

I will try with required Spring Boot 2.7... ;)

With Spring boot 2.7.16 issue is still there.

db-scheduler-ui-starter:1.0.1

Updated to 3.10 and it seems that it works. There is still issue with serialising task data with LocalDate (but only for TaskModel not for LogModel, but I've seen that there is a fix for that).


integration test that build cli on windows & linux, run it and test it works

build and run the cli on windows & linux in the CI (github action)
meaning you need to figure out how to simulate audio & monitor
then i guess you can just make queries to /health
check this health status component: https://github.com/mediar-ai/screenpipe/blob/main/examples/apps/screenpipe-app-tauri/components/screenpipe-status.tsx
/bounty 100

/attempt #225

/attempt #225

@onyedikachi-david you are already on an Okay track... leaving this to you.

@louis030195 is this still open.
Hey you are not doing releases for linux and windows


Can you share your training config file?

Did you just modify from ssd_mobilenet_v1_coco.config?
Thx

Hi, yeah I just used that config file without doing any big changes. However, I don't have anymore the exact config file. Since I last worked on that project, a lot of new papers came out. I would recommend reading the paper TextBoxes++, this should give you some ideas what to change (aspect ratios etc.).


Some elements are not coloured like the preview screenshot of the theme

The italic and bold both are of the same color as the regular text and the highlight, for example, is of a different shade of light blue compared to the presented screenshot.
Honestly I don't know if I'm doing something wrong, but I didn't have the same problem with other themes :(

You're not doing anything wrong. :-)
This is just the way the theme was originally coded. You could create a CSS snippet to override the bold/italic text color.
Note that for Obsidian 0.16+ this theme has been completely rewritten and I did add a color change to bold/italic text. Just hang on until you get access to the new version of Obsidian.


Add Groups Column to CSV upload #787

[ ]  User can assign a person to a group or groups from a CSV upload
[ ]   Create a groups column in the example CSV
[ ]   Read groups column to auto assign a user to multiple groups
[ ]   Group names separated by columns

Fails testing. Groups is not an option in pairing nor is it in the sample CSV.

This is has not been implemented - we did the roles one. The issue is in
ready column

Oops that was my fault I guess I accidentally moved it! Sorry.

@kamaulynder this won't pass until the Groups & Roles columns are added to the sample CSV

@kamaulynder Failed QA Groups Column not yet added to CSV file.

@caharding I can't find csv uploads anywhere. Please confirm the status?

CSV upload should be under settings.

Thanks @caharding . It appears Groups column is not yet implemented.

@kamaulynder checking are you going to merge this before you leave?

@mackers the branch for this is on develop, you can test and merge

I reviewed PR. This is incomplete. Moving back to spec.


Update action runime to node v20

node16 is deprecated by github, resulting in deprecation warning when running the action (https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/)

Thanks, was looking for this.

Waiting for status to be reported.... for how long?

Looks like by now missing node20 is not just throwing warnings - In my github actions ( that use invoke-aws-lambda) do not show up in pull requests anymore

Hi! Any news on this?

@gagoar can we get this update?

It seems it cannot run the workflows. I will have to make the changes myself. Thanks @igors

I don't understand how these messages got lost in my inbox. Thank you @igors, here's the PR https://github.com/gagoar/invoke-aws-lambda/pull/260 with other changes. I will keep updating things as well. but at least the runtime will be sorted out.

closing in favor of #260


Manage compiler dependencies with shards

The compiler has two external dependencies vendored in at lib/: reply and markd.
To keep these synced with upstream, we use git subtree. Or at least that was the plan. It was never setup for lib/reply.
And while it's not terribly complex to setup and maintain, git subtree adds some overhead and it's not very straightforward to understand what's going on.
In the Crystal ecosystem we actually have a great tool for managing dependencies: shards!
Now of course the compiler should not require shards for building to avoid circular dependencies. But there's no need to. If we continue to keep the lib sources vendored in the repository, shards is only used for updating the sources. That would be a simple shards update then. Compare that with the commands for git subtree which I'm far from being able to recall from the top of my head. Of course, that could be automated. But the point stands that shards is just so much easier to use. And you have the full features available to check which versions are installed, check if they're outdated etc.
We should expect compiler dependencies to be published as Crystal shards, so this should work with any future additions.
So here's what I'm proposing:

Put a shard.yml into this repository with declared dependencies of reply and markd at the currently installed versions.
Run shards install and there should be no difference in the lib/ folder except a new lib/.shards.info file (which will also be checked in like the rest of lib/, and shard.lock as well)

This is a huge :+1: from me. I guess I was too early when I proposed that 5 years ago.
Let's treat the compiler as a regular crystal application already.

Trying to do this with the current declared versions in the respective shard.ymls:
name: Crystal
version: 1.12.0-dev

authors:
  - Crystal Team<EMAIL_ADDRESS>
dependencies:
  markd:
    github: icyleaf/markd
    version: "0.4.2"
  reply:
    github: I3oris/reply
    version: "0.3.0"

license: Apache-2.0

It looks like neither dependency matches exactly.
To avoid breaking existing code, we might as well update those dependencies to include at least these patches:

markd: https://github.com/icyleaf/markd/commit/53203b6407508a17ff51fcbb3795edef667b6e59 (removes an incorrect Crystal::VERSION check)
reply: https://github.com/I3oris/reply/commit/7f87b054bf592d8aa2918b1314e6b78802324ec6 (fixes ioctl's signature on Android, although apparently Solaris does this too)

The currently installed version of markd is exactly https://github.com/icyleaf/markd/commit/5e5a75d13bfdc615f04cc7ab166ee279b3b996d3
reply is a bit weird as it does not match any commit in the main branch exactly. But https://github.com/I3oris/reply/commit/90a7eb5a76048884d5d56bf6b9369f1e67fdbcd7 is functionally equivalent with no relevant changes.

@ysbaddaden I suppose the main selling point would've been that we can just keep lib/ checked in.

I'm stubborn, maybe we'll drop the lib folder in another 5 years :joy:
More seriously, both dependencies are external to crystal-lang so we'll probably want to ensure that they're vendored in.

Yeah, I've recently thought about whether checking in lib shouldn't be a general recommendation for any shard.
There's basically no real downside except adding a bit more code to the repository. But that's not a lot of memory. It's just a snapshot of the dependency. Not its entire history. It allows to work on the code without needing to deal with shards except for updating dependencies. If a repo is unreachable, you still have all the code you need to build.


Update to Spring 5.3.34_1

See https://github.com/spring-projects/spring-framework/releases/tag/v5.3.34

Implemented, done.


Add in operator to Bson and Json

This unfortunately doesn't work for Bson, because opApply yields a reference to a temporary. This is a good reminder that the signature should be changed to drop the ref, since that requirement should now be gone long enough.

Hmm... okay, is there then another way to check whether a key is in a Bson or Json object, even if it doesn't return a pointer, but just a bool?

Also, why use the D1 operator overloading style over opBinary ?

@Geod24 Somehow I didn't think that in would work with opBinaryRight(), but it makes sense.

I changed it to return bool. Is that acceptible?

Not to me. Changing an operator meaning / semantic via an overload is not something we should do.

Hm, it sounds reasonable to me in general. The only thing it changes about the semantics is that it tightens them. Implicit conversion of T* to bool happens anyway, so there is nothing bad about this as far as I can see.
One thing that concerns me a little bit about in for Bson in general is that it's already O(n) and using in + opIndex is much slower than it should be. A method returning Nullable!Bson could be an alternative here (or letting opIndex return a nullable, but that probably is a breaking change for some obscure reason).

Right, in is supposed to be O(1). I added a tryIndex() method that returns a Nullable!Bson. For Json, I left it as is because it can provide a real in operator returning a pointer.

Hm, it sounds reasonable to me in general. The only thing it changes about the semantics is that it tightens them. Implicit conversion of T* to bool happens anyway, so there is nothing bad about this as far as I can see.

in is expected to yield a pointer to the underlying value, and if (x in c) is just an use case. Actually, a very common idiom is:
if (auto p = x in b)
    // Use p

It leverage the fact the canFind and find are (often) similar operation, and often performed together. So having an in that returns bool would change in to mean canFind.
That being said, the P.R. now LGTM. Thanks @schuetzm !

Believe me that I'm very well aware of that idiom and the efficiency implications ;) But my point is that the behavior is changed in a completely safe and unsurprising way. You may lose a certain idiom, but that's it. I generally look at such things in a pragmatic and case by case way -  different/unexpected results for the same code on the other hand would definitely be a red flag. But the efficiency concern is also valid of course and is the reason why I agree in the end that in is not optimal in this case.
On the other hand tryIndex is also non-standard and doesn't fit with any potential future std.data.bson module, so I'm also not completely happy with that. But I don't see any better solution either, so let's go with it.

Thanks!

On issue that I have stumbled over is that the Json version will be successful for if (key in json) when json[key] is of type undefined. Since Json.Type.undefined is used more or less interchangeably with a non-existent field, it may make sense to return null, even if the AA field is set. Otherwise it's easy to introduce bugs with this. Thoughts?

Maybe this isn't the best place to put it, but I've been writing too much boilerplate for this. In javascript, you should be able to do json[key][key2][0][key3] and get undefined, whereas in vibe.d you have to write if (json.key.to!bool && json.key.type == Json.Type.object && json.key.key2.to!bool && ....

For std.data.json I've added an opt method for that purpose: https://github.com/s-ludwig/std_data_json/blob/3efc0600b4f8598dd6ccf897d6140d3351b5ee84/source/stdx/data/json/value.d#L103
For vibe.data.json we have the problem that we basically can't add any methods without silent breakage until opDispatch is removed. Since it has only been marked as scheduled for deprecation in this release, this will take at least 2 more releases :(

I noticed another unexpected behaviour with vibe.data.json.Json: Undefined is treated like NaN, i.e. it is unequal to anything, including itself. This was surprising to me, especially because it means that two larger Json objects that contain an undefined member, but are otherwise equal, are treated as unequal. If we change the in operator to treat undefined as absent, it should get treated that everywhere for consistency, e.g. {"foo":1,"bar":undefined} should be equal to {"foo":1} (and to itself, of course).
About opDispatch: I think it's still useful. We should just document that we reserve the right to add more methods in the future and will not consider them breaking changes.

You are right about comparison, it should definitely ignore undefined fields.
opDispatch - I'm convinced at this point that it was a mistake, at least for the DOM type itself, not only because it makes any API change a possibly silent(!) breaking change. What might be interesting would be to have an additional type akin to Adam Ruppe's var that can take the contents of a Json or Bson and provides full simulated dynamic typing. Instead of Json j = parseJson(...); you'd simply write var j = parseJson(...); and be good to go.

BTW, in stdx.data.json, I've completely removed the undefined type. That turned out to be the second mistake to carry over from JavaScript. It just complicates the logic, as well as the observable behavior. Using Nullable (or an Option type) and an explicit opt method is the far better approach. I'd like to transition vibe.data.json to this scheme, too, but I'm not sure about the deprecation path. Probably I'll just deprecate the whole package once std.data.json is in.

Hmmm, what happened here? I just discovered that Json already had the in operator defined all the time. It also already has the right behavior to return null for undefined fields. I'm simply going to remove the change in this PR and we should be fine.


feat: add sdk_client argument to AppConfigStore __init__

Issue number:
Summary
This pull request adds an argument to be able to pass a boto3 client from AppConfigData to the AppConfigStore initializer.
Changes

Please provide a summary of what's being changed

Adds an argument to pass a boto3 client of AppConfigData in the initialization of the AppConfigStore.

User experience

Please share what the user experience looks like before and after this change

Enables the following:

Reuse the AppConfigData boto3 client for other uses not related to the AppConfigStore.
Use the AWS AppConfig Agent Lambda extension, changing the endpoint_url argument of the client.
Create infrastructure mocks that point to local emulators such as LocalStack or moto.

Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] Meet tenets criteria
[x] I have performed a self-review of this change
[ ] Changes have been tested
[ ] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

Hello @adriantomas! What a great discovery to improve this utility!
Do you mind creating an issue to link here? And I think maybe there are some tests left, right?

Hello @adriantomas! What a great discovery to improve this utility!
Do you mind creating an issue to link here? And I think maybe there are some tests left, right?

Sure, let me take a look ;)

Hello @adriantomas! I've made a few changes to this PR to adjust some minor things. Here's a summary of what I've done:
1 - I've changed the name from sdk_client to boto3_client, as this is the standard we're using.
2 - I also added 2 new boto3_session and boto_config parameters, as this is how we're using them now.
3 - I've discouraged the use of sdk_config, as we no longer use this name. I didn't introduce any breaking changes for existing code, but I've removed it from the documentation to prevent further use.
4 - I've made some adjustments to the configuration to bring more clarity.
Please let me know your thoughts. We want to include this change in our tomorrow's release.
Thanks a lot for working on this PR.