Update hold flow on the search page

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/46524
PROPOSAL: https://github.com/Expensify/App/issues/46524#issuecomment-2258901108
Tests

Go to Search page
Click on Outstanding tab
Click on any request
Click on the report header
Verify that the hold/unhold actions in the report header work well

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

Offline tests

QA Steps

Go to Search page
Click on Outstanding tab
Click on any request
Click on the report header
Verify that the hold/unhold actions in the report header work well

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

PR Author Checklist

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

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] 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)
[x] 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).

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

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

[x] 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)
[x] I followed proper code patterns (see Reviewing the code)

[x] 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)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] 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.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] 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:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] 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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] 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.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] 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)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] 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
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] 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

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

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

[x] 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.
[x] 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)
[x] 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.
[x] 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.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] 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.
[x] 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.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/473ac7f2-ab41-4042-9f2d-68351cc4f9a0

MacOS: Desktop

BUG: The original issue still happens, if you initially tick the expense and then open the transaction and hold it, coming back the bulk action still shows Hold. Unticking and ticking again then shows the correct value in the bulk action dropdown.
https://github.com/user-attachments/assets/28b93cf7-2865-4cde-accf-c0bd09462a47

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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] 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(theme.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 the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] 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

My solution is to reset the selected transaction whenever the user clicks the hold/unhold option.

@cretadn22 By reset, do you mean any selected transaction(s) would be deselected?

@cretadn22 This is maybe a bit of a derail but since this approach is getting quite convoluted, I'm wondering if a simpler approach is to update the snapshot_ Onyx data optimistically from the transaction modal (and obviously reset it on failure). This way we avoid all the issues that have come up from switching to use holdMoneyRequestOnSearch. I can't think of any obvious downsides, any thoughts?

@cretadn22 By reset, do you mean any selected transaction(s) would be deselected?

@jjcoffee Yess

I'm not sure if that would be expected, but I think we can argue that it's out of scope of this issue since it already happens on main even when just bulk selecting and holding an expense (the dropdown doesn't reflect the updated state). So it's a bit of a separate issue, I think.

@cretadn22 The RCA is that the search page header uses a different key (snapshot_{searchHash}) to gather the hold status (e.g. canHold) of the transaction. So I'm wondering why we can't just update that Onyx data in the optimisticData when calling IOU.(un/)holdRequest. We have the searchHash and the transactionID so I think it should be possible?

SearchPageHeader only use data from useSearchContext hook

This data originally comes from the snapshot_ key though right? There are two separate issues, I think:

SearchPageHeader uses a separate Onyx key (snapshot_) via useSearchContext to get data about the transactions. The API call we currently use from the transaction detail view does not update that data, only the actual transaction data (transaction_${transactionID}). This is what we want to focus on solving first, and I'm wondering if we can solve it by updating the snapshot Onyx data directly.
The data for the selected transactions in useSearchContext doesn't get updated when the snapshot_ data is updated (e.g. on main/live bulk when selecting and holding an expense the dropdown doesn't reflect the updated state). This seems out of scope for this issue unless there's an obvious and easy solution.

@cretadn22 I'm proposing an alternative approach, not reporting a bug. So taking a look at these steps:

Go to Search page
Click on Outstanding tab
Click on any (unheld) expense
Click on the report header to open the expense detail view
Tap on Hold
Go back to the Search page
Select the same request as in (3) and open the bulk action dropdown (1 selected)
Verify that Unhold is shown

In step 5 I'm proposing we switch back to using IOU.holdRequest, and to optimistically update the relevant snapshot data. This will mean that step 8 should work as the header will read from that snapshot data.


[Website] [Inline object not documented]

RichTextBlock shows information about the RichTextBlock, but doesn't say what properties an Inline can have and it doesn't seem like Inlines have a page here.

URL: https://adaptivecards.io/explorer/RichTextBlock.html

needs to update what types of AdaptiveElement inlines array takes.


Please add some example of producer transaction!

We really don't kown how to use it.

Why you no add transactional producers support sarama ? :smile:

See exactly_once and txn_producer in ./examples directory (thanks to #2295)


Add Travis CI configuration

Gah! It works fine on my box :-(
Aha! was missing an "-ordered" flag. So contents of a given directory isn't
deterministic.
Expect a PR very soon
Mark
On Wed, Mar 8, 2017 at 3:12 PM, Lei Zhang<EMAIL_ADDRESS>wrote:

@antiagainst commented on this pull request.
In .travis.yml
https://github.com/google/findutils/pull/2#discussion_r104938046:

@@ -0,0 +1,20 @@
+language: rust

+sudo: false
+os:

linux

osx

Oh, it also fails on Linux
https://travis-ci.org/google/findutils/builds/209000807...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/findutils/pull/2#discussion_r104938046, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ALbIF6tsKmeeMNRdculfaiuX96jn9uXJks5rjsVmgaJpZM4MW4uH
.

I somehow managed to pull in the wrong direction so the fix is now in,
without any approvals :-(
Can you update your local copy and check that the tests now pass on other
machines?
thanks
Mark
On Wed, Mar 8, 2017 at 3:20 PM, Mark Charsley<EMAIL_ADDRESS>wrote:

Gah! It works fine on my box :-(
Aha! was missing an "-ordered" flag. So contents of a given directory
isn't deterministic.
Expect a PR very soon
Mark
On Wed, Mar 8, 2017 at 3:12 PM, Lei Zhang<EMAIL_ADDRESS>wrote:

@antiagainst commented on this pull request.
In .travis.yml
https://github.com/google/findutils/pull/2#discussion_r104938046:

@@ -0,0 +1,20 @@
+language: rust

+sudo: false
+os:

linux

osx

Oh, it also fails on Linux
https://travis-ci.org/google/findutils/builds/209000807...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/findutils/pull/2#discussion_r104938046, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ALbIF6tsKmeeMNRdculfaiuX96jn9uXJks5rjsVmgaJpZM4MW4uH
.

Rebased and pushed. Should trigger a new build job now.
The test still fails on my mac.

Latest travis build is green:
https://travis-ci.org/google/findutils/builds/209483094, which includes
some runs on osx. Is find_main_depth_first still failing on your mac? Can
you check that it contains the sorted flag:
let rc = find_main(&["find", "./test_data/simple", "-sorted", "-depth"],
&deps);
thanks
Mark
On Thu, Mar 9, 2017 at 7:36 PM, Lei Zhang<EMAIL_ADDRESS>wrote:

Rebased and pushed. Should trigger a new build job now.
The test still fails on my mac.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/findutils/pull/2#issuecomment-285457449, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ALbIF8RWZrbk0QgwAt-NSPdRQye7mK-8ks5rkFTYgaJpZM4MW4uH
.

My fault. Somehow I failed to rebase this change against the current master.

Merged. ;-P


Vulnerability roundup 92: postgresql-12.3: 2 advisories [8.8]

search, files

[ ] CVE-2020-14349 CVSSv3=8.8 (nixos-unstable)
[ ] CVE-2020-14350 CVSSv3=7.3 (nixos-unstable)

Scanned versions: nixos-unstable: c59ea8b8a0e.
Cc @danbst
Cc @globin
Cc @ocharles
Cc @thoughtpolice

Both CVEs are up to and excluding 12.4.
20.09 is at 12.4
master is at 12.4
Therefore fixed and closing.


add the first verson custom dataset.md

Add a guide with custom dataset (using THUMOS14 as the example)

This is a good first step. I am inclined to include the internal code for feature extraction using PyTorchVideo and provide more details here. Will allocate some time during this weekend.


[CANNOLI-194] Add scaladoc to Maven javadoc artifacts

Fixes #194

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/cannoli-prb/188/Build result: FAILUREGitHub pull request #196 of commit 477f950f6f35a48019ea3cbd109183c09071bc98 automatically merged.Notifying endpoint 'HTTP:https://webhooks.gitter.im/e/ac8bb6e9f53357bc8aa8'[EnvInject] - Loading node environment variables.Building remotely on amp-jenkins-worker-03 (centos spark-test) in workspace /home/jenkins/workspace/cannoli-prbWiping out workspace first.Cloning the remote Git repositoryCloning repository https://github.com/bigdatagenomics/cannoli.git > git init /home/jenkins/workspace/cannoli-prb # timeout=10Fetching upstream changes from https://github.com/bigdatagenomics/cannoli.git > git --version # timeout=10 > git fetch --tags --progress https://github.com/bigdatagenomics/cannoli.git +refs/heads/:refs/remotes/origin/ # timeout=15 > git config remote.origin.url https://github.com/bigdatagenomics/cannoli.git # timeout=10 > git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10 > git config remote.origin.url https://github.com/bigdatagenomics/cannoli.git # timeout=10Fetching upstream changes from https://github.com/bigdatagenomics/cannoli.git > git fetch --tags --progress https://github.com/bigdatagenomics/cannoli.git +refs/pull/:refs/remotes/origin/pr/ # timeout=15 > git rev-parse origin/pr/196/merge^{commit} # timeout=10 > git branch -a -v --no-abbrev --contains 3d61bcbdd3e2da66f2ab2b33bf5935ba9593cf62 # timeout=10Checking out Revision 3d61bcbdd3e2da66f2ab2b33bf5935ba9593cf62 (origin/pr/196/merge) > git config core.sparsecheckout # timeout=10 > git checkout -f 3d61bcbdd3e2da66f2ab2b33bf5935ba9593cf62First time build. Skipping changelog.Triggering cannoli-prb ? 2.7.3,2.11,2.2.1,ubuntucannoli-prb ? 2.7.3,2.11,2.2.1,ubuntu completed with result FAILURENotifying endpoint 'HTTP:https://webhooks.gitter.im/e/ac8bb6e9f53357bc8aa8'
Test FAILed.

Jenkins, retest this please

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/cannoli-prb/189/Build result: FAILUREGitHub pull request #196 of commit 477f950f6f35a48019ea3cbd109183c09071bc98 automatically merged.Notifying endpoint 'HTTP:https://webhooks.gitter.im/e/ac8bb6e9f53357bc8aa8'[EnvInject] - Loading node environment variables.Building remotely on amp-jenkins-worker-03 (centos spark-test) in workspace /home/jenkins/workspace/cannoli-prbWiping out workspace first.Cloning the remote Git repositoryCloning repository https://github.com/bigdatagenomics/cannoli.git > git init /home/jenkins/workspace/cannoli-prb # timeout=10Fetching upstream changes from https://github.com/bigdatagenomics/cannoli.git > git --version # timeout=10 > git fetch --tags --progress https://github.com/bigdatagenomics/cannoli.git +refs/heads/:refs/remotes/origin/ # timeout=15 > git config remote.origin.url https://github.com/bigdatagenomics/cannoli.git # timeout=10 > git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10 > git config remote.origin.url https://github.com/bigdatagenomics/cannoli.git # timeout=10Fetching upstream changes from https://github.com/bigdatagenomics/cannoli.git > git fetch --tags --progress https://github.com/bigdatagenomics/cannoli.git +refs/pull/:refs/remotes/origin/pr/ # timeout=15 > git rev-parse origin/pr/196/merge^{commit} # timeout=10 > git branch -a -v --no-abbrev --contains 3d61bcbdd3e2da66f2ab2b33bf5935ba9593cf62 # timeout=10Checking out Revision 3d61bcbdd3e2da66f2ab2b33bf5935ba9593cf62 (origin/pr/196/merge) > git config core.sparsecheckout # timeout=10 > git checkout -f 3d61bcbdd3e2da66f2ab2b33bf5935ba9593cf62First time build. Skipping changelog.Triggering cannoli-prb ? 2.7.3,2.11,2.2.1,ubuntucannoli-prb ? 2.7.3,2.11,2.2.1,ubuntu completed with result FAILURENotifying endpoint 'HTTP:https://webhooks.gitter.im/e/ac8bb6e9f53357bc8aa8'
Test FAILed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/cannoli-prb/190/
Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/cannoli-prb/191/
Test PASSed.

Coverage remained the same at 13.751% when pulling 427a9e1153130e570d9c1c127324278fea3e8576 on heuermh:scaladocs into 72203dad6ea1a64252dd314c8ba98fd4249d22e4 on bigdatagenomics:master.


⚠ 2 Minutes de génie (gitlab page) has degraded performance

In 0369a82, 2 Minutes de génie (gitlab page) (https://2mdg.gitlab.io/) experienced degraded performance:

HTTP code: 200
Response time: 5751 ms

Resolved: 2 Minutes de génie (gitlab page) performance has improved in 950df96.


Gaps in paving GCP docs

The first set of shell commands includes
export network=<An existing GCP network for deploying kubo>

I have no idea what that means. Could there be a link to some GCP docs or something to tell me what to do?
Similarly

Make sure that the IP prefix below denotes a free CIDR range

How would I know if it was free?

Hi @dsyer, sorry if the documentation is unclear. network is the name of a GCP network you created. To create a network, go to the the GCP dashboard -> VPC network -> VPC networks, then click on 'Create VPC Network'. For example if you created network named kubo-net you would execute export network=kubo-net.
As for a subnet_ip_prefix, it's referencing the IP range of one of the subnets in your network. For example, if in the above kubo-net network you have a subnet called k-sub1 with IP range <IP_ADDRESS>/24 then you would execute export subnet_ip_prefix="10.0.1".

Excellent. That's exactly the sort of content that would have helped. Is it in the docs now?

@dsyer we have now added clearer documentation in this commit. Let me know what you think.
We're trying not to add GCP dashboard step-by-step workflow because we don't want to get into too deep a level of detail. But there were still room for improvement in our docs, even for operators already familiar with the GCP workflow.


Labels are leaked as confusing variable names (without underscores) in contexts without explicit fresh ->.

Not sure if this is intended or a bug.

It sounds like a bug, but it's hard to tell... Can you point out where this is happening?

https://github.com/RedPRL/sml-redprl/blob/1d90695f5ab9ebbff70f8263a722aac34be758c9/src/redprl/refiner_types.fun#L957-L958

@favonia Yes, it sounds like a bug. It will be a little tricky to fix it, but we can do it.
Ultimately I want to figure out a better approach for names... I'm just not sure of what it would be.


StatefulSet deployment failure

Cluster deployment fails due to absence of metadata in the statefulSet value passed in to the createStatefulSet function in src/k8s/statefulSet.js. The object received doesn't appear to be what we should expect.
Looking into the export of this function as create, it appears that the statefulSet parameter is being shadowed in the bind operation by deletes. This is preventing the actual statefulSet context from being passed to the create function unless the value of deletes happened to be undefined at the time of binding.
create: createStatefulSet.bind(null, client, deletes), fails for some cases
create: createStatefulSet.bind(null, client), works for all cases
The error:
2017-11-27T16:13:57.502Z - info     creating statefulSet 'postgres'
2017-11-27T16:13:57.502Z - info     creating statefulSet 'redis'
2017-11-27T16:14:28.694Z - error Failed to setup cluster resources with error:
	Cannot read property 'namespace' of undefined
	TypeError: Cannot read property 'namespace' of undefined
    at createStatefulSet (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/src/k8s/statefulSet.js:74:42)
    at getContainer (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/src/cluster.js:272:16)
    at create (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/src/cluster.js:37:12)
    at createContainer (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/src/cluster.js:47:12)
    at onRoleBindingCreated (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/src/cluster.js:512:10)
    at tryCatcher (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromiseCtx (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/node_modules/bluebird/js/release/promise.js:606:10)
    at Async._drainQueue (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/node_modules/bluebird/js/release/async.js:138:12)
    at Async._drainQueues (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/node_modules/bluebird/js/release/async.js:143:10)
    at Immediate.Async.drainQueues (/home/jed/.npm-global/lib/node_modules/@npm-wharf/hikaru/node_modules/bluebird/js/release/async.js:17:14)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)

After reviewing other deployment 'kinds', it appears that the binding is correct, and it is actually the deletes parameter which is missing from the createStatefulSet function. The parameter is never used, but this is also the case in other create functions (e.g., createCronJob) as well.

Found an example of deletes being used in src/k8s/deployment.js. All other locations include the parameter, but do not reference it within the create* function.

Addressed in PR https://github.com/npm-wharf/hikaru/pull/3


container image on ARM Platform

Describe the feature:
Hi! Recently I have been investigating running milvus on arm machine.
It works well so far, but I have trouble with setting up attu.
attu does not provide an official arm docker container image.
I am very glad to make contribution to update the existing github action workflow to build arm container image with userspace qemu.
Describe a specific use case for the feature:
using milvus on arm machine

Please make a pull request, I'm happy to merge.  :)

HI Team,
Have you released the attu  arm docker container image.?
Thanks

We have released arm image on the dev channel, you can have a try.

HI Team,
I have deployed Attu pod with dev version. But still its not supporting and giving below error.
$ kubectl logs milvus-attu-5cc84674b7-zpjmm -n isds-milvus
exec /usr/local/bin/docker-entrypoint.sh: exec format error
Thanks

new attu is released.


Restarting game pauses the game

Small bug can be fixed with a quick commit. Simply pressing enter when the game is over makes the game paused

This was a small bug, and fixed before our alpha via 584d7b2c2601ea47d9bc5ec88403dccc44c65337


Notes.Client should show when API-requests fail

Currently, Notes.Client just glosses API-request failures. This makes Sticky Notes unnecessarily hard to use, and is sometimes confusing to the point of hindering the workshop. A simple solution would be to add some alerts when something fails, or something similar.

This is now "fixed" by strategically adding some JavaScript alerts :sweat_smile:


Added flow-kit as dependency

For faster rendering the flow-kit core was implemented.
For more informations about the flow-kit visit the repository.
Contributing
has more information and tips for a great pull request.

@zeobot set lc to pass


New UX to switch recognizer type

https://www.figma.com/file/MDwHWFVT2Cth9yFzazJxCB/Orchestrator-%26-Skills-R13-and-beyond?node-id=463%3A16035

Design is ready

@luhan2017 @boydc2014 Why are we putting the recognizer selection in a modal instead of just having it inline in the form? Adding the 'Change' button is a whole new concept in the form that user's are not accustom to, and there is plenty of space in the form for the UI.

@vivekkshankar , could you comment on this?

ping @vivekkshankar


Add bot message login/logout

When the bot logs in or logs out, a message should be displayed in the console and in the default channel.
The issue #14 is related to this one.

To execute something when a the bot goes offline needs the use of SIGINT. There are several NPM packages for that.
Issue #58 has been opened.


Arrival format change and airport JSON cleanup

The major change here is to separate the aircraft heading from the direction in which it spawns for arrivals.  In order to do so the 'heading' key has been re-purposed to apply to the aircraft heading.  The 'radial' key has been added to refer to the direction in which the aircraft is spawned.  If the 'heading' key is not specified it is automatically configured as the opposite direction of the radial giving the current behaviour.  The 'angle' key was removed.
This change is intended to allow a natural format where the spawn location is specified by fix/position instead of direction and the aircraft heading is specified.
There are additional changes which should keep aircraft from spawning on conflicting courses by adjusting altitudes.
Finally there are formatting cleanups which remove DOS line-endings, tab characters, white space at the end of lines and indention variation.

In addition to these formatting changes - I am wondering about the spawn frequency settings.
I don't understand how the frequency number in the .json corresponds to the simulation behavior, (it looks like the json numbers get multiplied by 60, and there is also some kind of game frequency setting) but some questions are:

How have the frequency settings been tuned? When "frequency": [10, 15]
appears in the json, what does that mean in reality?

What is the maximum total arrival load in an hour for KSFO for example?

Is there an "end" point for a session, or do planes keep appearing until the user quits?

Frequency is the number of airplanes per minute; if frequency is [3, 3], 3 airplanes will appear per minute (in theory). The game frequency setting is (IIRC) just a speed multiplier.
Planes keep appearing forever.

Got it, thanks.


Upgrade to Spring Boot 2.4.3

Done:

Switch ReactiveAdapterRegistry to build time initialization (see related commit on Spring Framework).

TODO:

Try to see if that's possible to enable Kotlin reflection in DefaultParameterNameDiscoverer or not.
Introduce a NativeDetector utility class with -H:+InlineBeforeAnalysis enabled by default

Native image creation with Boot 2.4.2 has been broken due to https://github.com/spring-projects/spring-boot/issues/24192, we need a buildpack update that only prepends BOOT-INF/lib if the entry doesn't already start with that, as pointed out by @wilkinsona.

Native image creation with Boot 2.4.2 has been broken due to https://github.com/spring-projects/spring-boot/issues/24192, we need a buildpack update that only prepends BOOT-INF/lib if the entry doesn't already start with that, as pointed out by @wilkinsona.

Asap released we should upgrade to Spring Framework 5.3.4 and leverage the new NativeDetector, see this related commit. NativeDetector should be configured init at build time and the build time init config for DefaultAopProxyFactory, AbstractAutowireCapableBeanFactory, ConfigurationClassPostProcessor, AbstractApplicationContext, DefaultParameterNameDiscoverer and SerializableTypeWrapper should probably be removed.


yii2 tests postgres tests fail for bigint and smallint types

What steps will reproduce the problem?
in @vendor/yiisoft/yii2-dev run phpunit --log-junit pgtests.xml  --group=pgsql
What is the expected result?
pass of tests
What do you get instead?
see test results in xml and raw output format here
https://gist.github.com/gvasilopulos/502288deda6f9e364abb03e5394cdd82
Additional info
using php 5.6.25 with
"PostgreSQL 9.5.3 on i486-slackware-linux-gnu, compiled by gcc (GCC) 5.3.0, 32-bit"
on Slackware linux 14.2  32 bit
Linux daidalos 4.4.38-smp

Q
A

Yii version
2.0.11

PHP version
5.6.25

Operating system
Slackware linux 14.2  32 bit Linux daidalos 4.4.38-smp

Reproduced with ./vendor/bin/phpunit tests/framework/db/pgsql/SchemaTest.php. 2.0.10 and 2.0.9 are behaving the same way.

what is different from travis here? postgres version?=

pg version is 9.5.3 it is a 32bit machine
some more info which could be significant
the number 9.2233720368548E+18 returns
ERROR:  bigint out of range
********** Error **********
ERROR: bigint out of range
SQL state: 22003
(32bit limit?) on a query with pgadmin
while the number
9.2233720368548E+17 gets inserted without a problem in a query with pgadmin, strange thing is that both numbers appear in single quotes in the produced query of the test and that is exactly the reason not to pass the test , see the test query:
INSERT INTO "type" ("bigint_col", "int_col", "char_col", "float_col", "bool_col") VALUES ('9.2233720368548E+17', 1, 'a', 0.1, TRUE) <--not working with syntax error
while it should be
INSERT INTO "type" ("bigint_col", "int_col", "char_col", "float_col", "bool_col") VALUES (9.2233720368548E+17, 1, 'a', 0.1, TRUE) <-- tested, works in pg,
is it possible when number are large enough to be expressed as an E+XX value something in pdo or yii supposes string value ?

Yes, that's 32 bit limitation.

yes but this isn't 9.2233720368548E+17 . The error with 9.2233720368548E+18 is normal and in my case unavoidable but for 9.2233720368548E+17  shouldn't happen..


Any suggestions to speed up?

In the scenario of #schemaless# JSON generation, the average time calling the function prefix_allowed_fn is 0.03 seconds as I tested, which significantly slows down the whole generation process. I wonder which part is most time-consuming? Do you have any suggestions to speed up the prefix_allowed_fn function to at least 10x times faster, except for re-implementing it using C++?

I just merged this PR: https://github.com/noamgat/lm-format-enforcer/pull/45
which causes the full token enforcer flow to run in all unit tests. This makes the tests much slower, and allows profiling performance in a real world scenario (llama2 tokenizer + tree traversal) in order to improve performance.
I hope that there are things that can be done outside of re-implementing in C, I will have a look at the unit tests' performance soon.

Quite surprisingly, for long responses, the usage of the decoder is the most expensive operation.  I will investigate how this can be mitigated.
If you want to have a stab at it, test_long_json_object() in the unit tests.

I pushed a change (currently still in feature branch, needs some cleanup).
Can you try to use it using:
pip install git+https://github.com/noamgat/lm-format-enforcer.git@feature/decoding_optimization
And tell me if you see an improvement?

For the same unit test, this is the current result in the branch. Almost 10x faster (24s -> 2.8s)

v0.8.0 was just released with several performance improvements, see the changelog. Can you check if updating (and using the TokenEnforcerTokenizerData concept) improves performance for your use case?

@noamgat Thank you for all the efforts! I am trying to test the latest performance. Will give you feedback soon😄

@noamgat Hi, as I tested, the latest version is only a little bit faster, about 23 ms per calling. The first function call and sometimes in the middle of generation process, it will cost more than 100 ms, which significantly enlarges the average function calling time.
It is noteworthy that my vocabulary size is more than 200,000.

@noamgat yes it is schemaless. Besides my multilingual vocabulary contains lots of Chinese and English tokens. I will try to give a sample code to reproduce.

Closing the issue due to inactivity. If you attach a reproduction please reopen.


poteto-cli released

Change

poteto-cli

How to use

install

go install<EMAIL_ADDRESS>

create new poteto project

poteto-cli new
poteto-cli new -fast

Version
It will be included >=v0.25.0

https://github.com/poteto0/poteto/issues/88


refactor(utils/body): minor cleanup

Some minor changes I suggested @fzn0x in this #2675. He might have forgotten to include these
The author should do the following, if applicable

[x] Add tests
[x] Run tests
[ ] bun denoify to generate files for Deno
[x] bun run format:fix && bun run lint:fix to format the code

Here is the comment for reference - https://github.com/honojs/hono/pull/2675#discussion_r1603802350

@MathurAditya724
Thanks! Merging now.


feat: format check

Adds a --check flag to sqlmesh format

 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.

@izeigerman I noticed that the format method is also being referenced here, but I'm not familiar with what that's for exactly. Should a change be made there as well?

Hey 👋

@izeigerman I noticed that the format method is also being referenced here, but I'm not familiar with what that's for exactly. Should a change be made there as well?

Yeah, that's the notebook interface. We generally try to keep the CLI and notebook APIs in sync, so it makes sense to reflect your changes in there as well.

Let's update the documentation as well while we're at it (note that format is currently missing from notebook docs, but we should add that):

https://sqlmesh.readthedocs.io/en/stable/reference/cli/
https://sqlmesh.readthedocs.io/en/stable/reference/notebook/

The way I usually update these pages is I copy-paste the --help version of the command of interest in the corresponding markdown file.

@georgesittas I updated the CLI docs, but when I go to view the docs for %format in a Jupyter notebook by pressing Shift+Tab, I get the docs for Python's builtin format function, i.e. the following:
Signature: format(value, format_spec='', /)
Docstring:
Return value.__format__(format_spec)

format_spec defaults to the empty string.
See the Format Specification Mini-Language section of help('FORMATTING') for
details.
Type:      builtin_function_or_method

I'm guessing that's why it's not currently documented. I'm not an expert with Jupyter notebooks (I never use them). Does it make sense to override this behavior? Is that even possible?

Interesting. In any case, we can also just fill in the docs by hand, mimicking the other magic command descriptions. Can also take this to the finish line myself later, so no worries.
@izeigerman do you want to take another look?

@georgesittas @izeigerman I think I've addressed everything so far. PTAL when you get the chance. Thanks!


Can arrow js be used along with a react component / function?

I see great possibilities with arrow-js. Just curious if anyone has tested using arrow-js existing js frameworks like react.

Yes, no reason you couldn’t do this, but also no reason I would recommend doing this. If you are already using react, perhaps continuing that pattern in your code base would be advisable. That said, the goal here is to be a relatively guilt free drop in wherever it makes sense, so…have at it!


Link modal not closing after changing seleciton or focus.

In my opinion link modal should be closed after editor looses focus or after changing selection on editor.
To reproduce: just select some text, click "link" then just select another part of text or click outside of editor and back. Every time u open toolbar there would be link modal.
Could be fixed by subscribing on "onEditorChange" and close modal window each time editor changed. This event would be raised by any kind of selection, focus loosing or editing.
P.S. same behaviour comes with any other pickers and kinda frustrating based on UX.

PR
This version didn`t work for now, event not rising. After fixing this one it would work for any focus/editing draftjs editor and close link modal window.


login method requires captcha now

I can't reproduce this issue with my setup. What requests are you sending exactly?

it was working steadily until ~August 15. After that it was responding with status 200, but the codes stopped coming to the mail. also in the game and on the page appeared the text: “protected by Captcha”

I have also experienced issues with codes not being sent, although this is not an issue with this client since the response is code 200 OK as you said. I still don't see where captchas would be a problem here.

I also tried to do it on different hosts, but the result is the same. Code 200, but no code in the mail. 0 codes sent from ~50 attempts since ~August 15th. I checked questions about this on different forums, and yes, other people had this problem too, this endpoint can't send codes anymore. BUT, maybe it's because all my hosts are in Russia. I will try some hosting in EU and let you know the result. The fact that it works for you encourages you to make a decision, thank you!

well, its not IP problem. (tried Helsinki, Amsterdam, NewYork)
are you sure your client version where you successfully received code mail today have equal response data and headers?


Don't submit files that have a coverage file generated, but its all NULL?

e.g. https://coveralls.io/jobs/4081886 's SimJulia.jl
So the file is exectued, so a coverage file is generated, but there are no coverable lines, so its going to weigh down the coverage (maybe? not sure how the overall figure is generated)

It hasn't seemed like it weighs down coverage when I've looked. In this case, for example, it doesn't:
https://coveralls.io/builds/1767792
julia> (0+35+23+49)/(0+38+24+50)
0.9553571428571429
I'd be for leaving the files in, so source files aren't missing, so there's less left to trust in the toolchain for the curious user.

Ah in that case, thats fine


Atom QuickLook plugin on OS X

Some apps bundle a QuickLook plugin (.qlgenerator) inside a .app/Contents/Library/QuickLook folder which OS X will load automatically.
It would be really cool if Atom came with a QL plugin to render previews/thumbnails using the same syntax highlighting/theme as the editor.
I'd be happy to help out with this, but not quite sure how to go about it…

+1.
TextMate has this feature and I really miss it after switching to Atom.

Just to add to that useful info; see also…

Apple’s Introduction to Quick Look Programming Guide

Creating a Quick Look plugin

Even worse, when connecting Atom to be the default Python file editor, it breaks the existing source code quicklook plugin and all I see is the atom icon during quicklook. :-1:

this needs to happen yesterday

@Godisemo I'd be happy to review a PR adding it!

keep textmate in your applications folder and open it once for that native feel. :dancing_men:

Just switched from Sublime Text, lack of this is killing me. What good is an OSX text editor if it kills the Quick Look feature?

Has anyone made any progress/solutions on implementing this? If not, I would love to take a shot at submitting a pull request for porting TextMate's functionality to Atom.

I say go for it if you want to give it a shot.  I'd be happy to contribute/test if you get it started.

I'd be happy to contribute/test if you get it started.

@luminousrubyist Same!

@luminousrubyist me too

Alright! To warn you all I don't know a lot about programming applications for Mac and I'm quite a novice at Objective C, though I have experience with C++/Java, so so expectations should be modest and any feedback on my development would be welcome. I'm planning to use textmate's quicklook plugin and the somewhat arcane official Apple guide as reference, does anyone have any other resources that might come in handy?

@luminousrubyist I posted a couple of links above that might be helpful ☝
Xcode has a 'QuickLook plugin' option when you start a new project, but building on the existing Textmate plugin might be the better option…
I also wondered if Swift might be worth looking at for it?

Thanks for the resources! Swift does appear much more approachable. After looking over some quick documentation/examples I feel pretty confident in my ability to use it. I've forked Atom and am beginning development. If anyone on this thread wants to contribute source code to the project (as opposed to just reviewing or testing it), reply to this comment. I'll add you as a contributor to the repo.

If anyone on this thread wants to contribute source code to the project (as opposed to just reviewing or testing it), reply to this comment. I'll add you as a contributor to the repo.

Count me in 👍

@luminousrubyist Add me

any updates on this?

Love Atom, but this drives me crazy.

Sorry, @szechyjs I've been really busy for the last couple months, and I haven't worked on this. If you'd like, I can add you to my fork, or you could start your own. My apologies

Switched to vscode, loving it. Not a productive comment I know...

@jpike88 Does VScode have a QL plugin?

Nope

A great workaround for the time being (which others have mentioned) is to install TextMate 2.0 and configure it with the typeface and theme that you prefer. I believe keeping it in your Applications folder will automatically set it as the QuickLook for various code files.

A great workaround for the time being (which others have mentioned) is to install TextMate 2.0 and configure it with the typeface and theme that you prefer

That's a great workaround, thanks @austin-guevara!
As an  added bonus it must have a Spotlight Importer too, so also returns Spotlight search results for text/code within the files 👍🏼

Why / how is this still not done?

This is the best workaround for this that I have found:
https://github.com/anthonygelibert/QLColorCode

A great workaround for the time being (which others have mentioned) is to install TextMate 2.0 and configure it with the typeface and theme that you prefer. I believe keeping it in your Applications folder will automatically set it as the QuickLook for various code files.

Maybe the feature could be roughly based on the TextMate plugin? Need to do some digging…

Wut? Still no QuickLook functionality for Atom?


Viewer.removeHotSpot

The documentation is quite unclear what the id in the parameter of removeHotSpot exactly is. I used an example to create a config file where hotSpots do not had an id and the id seems to be an interally unused attribute.
To get the hotspots, they can be queried from getConfig and accessing the scenes. This is okay but by doing so, you are aware that hotSpots is an iteratable / array. If hotSpots do not have an Attribte "id" they can not be removed and addHotSpot is not generating an id. The API-user has to take care of unique ids.
I see two solutions.  An alternative would be to generate an GUID in addHotSpot, but this gets difficult if users create config files with external applications or by hand.
My favorit suggestion

removeHotSpot with index of hotSpot in the scene, or
hint in removeHotSpot documentation that this requires, that hotSpots have an unique id (or that the first occurance of that id will be deleted, or
addHotSpot provides GUID and will be used during json loading as well

the id seems to be an interally unused attribute.

The API-user has to take care of unique ids.

Exactly. It's not used internally, which is why it's left to the API user to manage.
Following your second suggestion, I added additional clarification; let me know if you have additional suggests for improving the description. For the reason above, I'd prefer to not manage IDs, and your other two suggestions are API-breaking changes.

I agree, but if it is totally suffiecient to document this. Another thought: You could add an optional Argument to addHotSpot for the id which is undefined as default. It would not break API, but API user will see there, that they should think about the issue.
Bye the way: I have developed a first version of an Unity player for VR and non-VR that reads the pannellum config and assets. Is that maybe later of interest?

If someone  else runs into this:
I ran into this problem today, I solved it by modifying the loaded .json for a panorama or tour before initializing it into the viewer.
 // Loop through each scene and assign an 'id' to each hotspot based on its index     for (let sceneKey in data.scenes) {       if (data.scenes.hasOwnProperty(sceneKey)) {         let scene = data.scenes[sceneKey];         if (scene.hotSpots && Array.isArray(scene.hotSpots)) {           scene.hotSpots.forEach((hotspot, index) => {             hotspot.id = index; // Assign 'id' property as the array index           });         }       }     }


[DropdownMenu] Add submenu int tests

This PR adds initial interaction tests for submenus on DropdownMenu. I will raise a separate improvement to cover ContextMenu.
I've gone with the .spec standard on filenames purely because this matches the Cypress docs and differentiates from our jest tests, I also like that these types of tests document what our expected behaviour should be i.e the "spec". Happy for this to be whatever though.
Still feeling out the correct level for some of the tests and these are not meticulously extensive for all scenarios, however, they should replace the bulk of manual testing we'd been doing while building the feature. I was intentional to only cover the submenu work as we can progressively add additional tests for other DropdownMenu functionality as / when we see the need.
Let me know if i've missed anything obvious.

@jjenzz I've restructured the tests following our discussion and added a couple of cases to cover collision changes on the pointer grace.
Stopped short on the self documenting variables for every text selection, ended up feeling more difficult to follow with the dev runner as it shows all of the real labels in context, happy to revisit though if we still find it hard to follow.

Merging to test Modality, current runtime on CI seems fine but I suspect we’ll want to use a dedicated action before long to run these in parallel.


gpu_operator_run_gpu-burn: adjust hostname label on OCP >= 4.9

With OCP 4.9, the hostname label changed from
"kubernetes.io/hostname": "ip-10-0-144-116",

to
"kubernetes.io/hostname": "ip-10-0-144-116.us-west-2.compute.internal",

GPU Burn relies on node label to be forcefully scheduled on all the
nodes with GPUs (to ensure that all the GPUs of all the nodes are
able to run CUDA workload).

/test gpu-operator-e2e
/test /test 4.9-gpu-operator-e2e

/test gpu-operator-e2e
/test /test 4.9-gpu-operator-e2e

/test gpu-operator-e2e
/test 4.9-gpu-operator-e2e

/override ci/prow/gpu-operator-e2e
OperatorHub test passed this is what matters here,
but I'm a bit afraid of the master branch failure :# :# :#

/override ci/prow/4.9-gpu-operator-e2e
operatorhub passed, master failed, there is definitely something wrong with master ...

rebased on top of master with https://github.com/openshift-psap/ci-artifacts/pull/233 merged, no need to retest

I added a commit https://github.com/openshift-psap/ci-artifacts/pull/236/commits/41f7acce1e9bac02652be430e43a3faae686ff41 to give more time for the nodes to get labelled, as this is crashing the master branch tests today.
and I merge the PR, I want to see this weekend how master behave, next release cut day is on Monday :#
feel free to comment if you spot anything that should be changed, I'll replace the sed -> template on Monday anyway


Allow future direct debits

In the bunq App you can allow future direct debits within a monthly limit. I couldn't find this option in bunqDesktop.

Alright, I've added it to an existing thread about the API


Error message during cleanupVolumes:

The message does not necessarily indicated error (or does it?) but is confusing and distracting as it is a false positive from log errors point of view.
If plugin is not running, we should say so and skip the 'docker volume rm'
=> cleanupVolumes: Asking docker<EMAIL_ADDRESS>to remove volumes (vol-build730)

list vmdk: Post http://%2Frun%2Fdocker%2Fplugins%2Fvmdk.sock/VolumeDriver.List: dial unix /run/docker/plugins/vmdk.sock: connect: no such file or directory
``

example: https://ci.vmware.run/vmware/docker-volume-vsphere/730

Umbrella issue #489

I do not see this log message any more. https://ci.vmware.run/vmware/docker-volume-vsphere/370


Stories Format filter to be corrected to "Formats"

What
The Format filter on /stories should be "Formats" to match /works
Where
/search/stories

see https://github.com/wellcomecollection/wellcomecollection.org/pull/10042


[foxy] Rviz Crashing with 0x00007ffff210daa9 in ?? () from /lib/x86_64-linux-gnu/libGLdispatch.so.0

Bug
OS: Ubuntu 20.04
Foxy binaries with RViz installed from apt (8.2.0-1focal.20200708.072202)
DDS: Fast-RTPS and Cyclone
Replication
Running the Rviz file linked below and a seemingly handful of variations of it I get poor reliability when running it with my robot using the navigation2 stack. Sometimes it crashes as often as once every 30 seconds, other times it lasts for several minutes but it always has the same crash error.
You can download my Rviz file from here https://drive.google.com/file/d/1xV7vV0getF1jkD56sIXHFuQKsFF0VC8V/view
Error
Start navigation
[INFO] [1594684476.566996148] [rviz2]: Setting estimate pose: Frame:map, Position(-22.0146, 2.69005, 0), Orientation(0, 0, 0.0939719, 0.995575) = Angle: 0.188222
Start navigation
--Type <RET> for more, q to quit, c to continue without paging--RET
Thread 45 "rviz2" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff937fe700 (LWP 237591)]
0x00007ffff210daa9 in ?? () from /lib/x86_64-linux-gnu/libGLdispatch.so.0

Update: I have tested this further on both Cyclone DDS and eProsima Fast-RTPS which now both show crashing with the same segfault trace back. This hints to me that it is an issue with Rviz and likely due to how much data is being sent for RViz to display. When I include more widgets such as my robots depth sensors the crashing seems to be more frequent.

I would need the backtrace from gdb to know where the crash is happening, the error above just says it happens in OpenGL, but does not say where it originated from.

I got very similar crashes these days.
Here is the backtrace. I'm using 8.2.0 source build.
https://gist.github.com/daisukes/217ba1905af6097fd2e16a6e860eb633

The error is coming from the processing of a polygon message, which passes through tf2 and message filters before being consumed with Ogre and eventually calling OpenGL. It's possible it is a bug in the polygon display class or something. I don't know off hand. I personally don't have time to investigate it and reproduce it, but maybe this will help someone else investigate it. Help wanted.

It crashes when it calls clear() of Ogre ManualObject.
I suspect a thread issue with the messaging thread and others.
What if while the other thread is calling clear(), the PolygonDisplay calls clear()?

I got very similar crashes these days.
Here is the backtrace. I'm using 8.2.0 source build.
https://gist.github.com/daisukes/217ba1905af6097fd2e16a6e860eb633

@daisukes Could you tell me how to print this backtrace if I run the binary installed rviz in a launch file? Thank you.

@Phymin
Basic commands are here
$ ulimit -c unlimited              # enable coredump

# run your program and get core.### file

# if you have multiple core files, you can check which is your target file by using
$ file core.###                       # see the executable path which generated the core

$ gdb <program path> core.###
(gdb) tb                                 # print backtrace

You can find a more detailed example here
http://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html

@daisukes Got it, thanks again!

@daisukes Hi, sorry for bothering you again, after I set ulimit -c unlimited and run the rviz, after the rviz crashed, I didnot find any core.* file under the path of /opt/ros/foxy/lib/rviz2, does this mean the binary installed rviz cann't generate coredump file or this crash is not a coredump crash? Here is the error message:
[ERROR] [rviz2-1]: process has died [pid 170859, exit code -11, cmd '/opt/ros/foxy/lib/rviz2/rviz2 -d /home/phymin/elfin_ros2_ws/install/elfin_navigation/share/elfin_navigation/rviz/elfin_navigation2_view.rviz --ros-args -r __node:=rviz2 --params-file /tmp/launch_params_eg5lu478'].

@Phymin I usually find them in the home directory. My /proc/sys/kernel/core_pattern file looks like
/home/user/core

@daisukes Hi, finally I got my rviz2 crash backtrace file just as follows, thank you very much.
(gdb) bt
#0  0x00007f78fea4caa9 in  ()
    at /lib/x86_64-linux-gnu/libGLdispatch.so.0
#1  0x00007f78ce03b693 in Ogre::GLStateCacheManager::deleteGLBuffer(unsigned int, unsigned int) ()
    at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/OGRE/RenderSystem_GL.so.1.12.1
#2  0x00007f78ce0209f9 in Ogre::GLHardwareVertexBuffer::~GLHardwareVertexBuffer() ()
    at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/OGRE/RenderSystem_GL.so.1.12.1
#3  0x00007f78ce020a24 in Ogre::GLHardwareVertexBuffer::~GLHardwareVertexBuffer() ()
    at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/OGRE/RenderSystem_GL.so.1.12.1
#4  0x00007f78ce019dd4 in std::_Sp_counted_ptr<Ogre::GLHardwareVertexBuffer*, (__gnu_cxx::_Lock_policy)2>::_M_dispose() ()
    at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/OGRE/RenderSystem_GL.---Typ----------Type <RET> for more, q to quit, c to continue without paging--c
so.1.12.1
#5  0x0000563c390eb848 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
#6  0x00007f7902ea3abd in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#7  0x00007f7902ed28a8 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#8  0x00007f7902ed28c8 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#9  0x00007f7902ed28e8 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#10 0x00007f7902fc7a68 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#11 0x00007f7902fc7a8c in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#12 0x00007f7902fc764b in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#13 0x00007f7902fc6ab1 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#14 0x00007f7902fc5583 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#15 0x00007f7902fc4366 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#16 0x00007f7902fc470e in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#17 0x00007f7902fc39a4 in  () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#18 0x00007f7902fc2670 in Ogre::VertexBufferBinding::unsetAllBindings() () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#19 0x00007f7902fc241c in Ogre::VertexBufferBinding::~VertexBufferBinding() () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#20 0x00007f7902fb4804 in Ogre::HardwareBufferManagerBase::destroyVertexBufferBindingImpl(Ogre::VertexBufferBinding*) () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#21 0x00007f7902fb470a in Ogre::HardwareBufferManagerBase::destroyVertexBufferBinding(Ogre::VertexBufferBinding*) () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#22 0x00007f79032bfbc8 in Ogre::VertexData::~VertexData() () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#23 0x00007f79030135db in Ogre::ManualObject::ManualObjectSection::~ManualObjectSection() () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#24 0x00007f7903013666 in Ogre::ManualObject::ManualObjectSection::~ManualObjectSection() () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#25 0x00007f790300e21f in Ogre::ManualObject::clear() () at /opt/ros/foxy/opt/rviz_ogre_vendor/lib/libOgreMain.so.1.12.1
#26 0x00007f78cdbca634 in rviz_default_plugins::displays::PathDisplay::processMessage(std::shared_ptr<nav_msgs::msg::Path_<std::allocator<void> > const>) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#27 0x00007f78cda3b745 in rviz_common::MessageFilterDisplay<nav_msgs::msg::Path_<std::allocator<void> > >::incomingMessage(std::shared_ptr<nav_msgs::msg::Path_<std::allocator<void> > const>) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#28 0x00007f78cda3b9be in std::_Function_handler<void (std::shared_ptr<nav_msgs::msg::Path_<std::allocator<void> > const> const&), std::_Bind<void (rviz_common::MessageFilterDisplay<nav_msgs::msg::Path_<std::allocator<void> > >::*(rviz_common::MessageFilterDisplay<nav_msgs::msg::Path_<std::allocator<void> > >*, std::_Placeholder<1>))(std::shared_ptr<nav_msgs::msg::Path_<std::allocator<void> > const>)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<nav_msgs::msg::Path_<std::allocator<void> > const> const&) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#29 0x00007f78cda4bd94 in message_filters::CallbackHelper1T<std::shared_ptr<nav_msgs::msg::Path_<std::allocator<void> > const> const&, nav_msgs::msg::Path_<std::allocator<void> > >::call(message_filters::MessageEvent<nav_msgs::msg::Path_<std::allocator<void> > const> const&, bool) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#30 0x00007f78cda470eb in tf2_ros::MessageFilter<nav_msgs::msg::Path_<std::allocator<void> >, rviz_common::transformation::FrameTransformer>::transformReadyCallback(std::shared_future<geometry_msgs::msg::TransformStamped_<std::allocator<void> > > const&, unsigned long) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#31 0x00007f78cd449430 in  () at /opt/ros/foxy/lib/libtf2_ros.so
#32 0x00007f78e802b4b1 in tf2::BufferCore::testTransformableRequests() () at /opt/ros/foxy/lib/libtf2.so
#33 0x00007f78e802cd34 in tf2::BufferCore::setTransformImpl(tf2::Transform const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l,<PHONE_NUMBER>l> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) () at /opt/ros/foxy/lib/libtf2.so
#34 0x00007f78e802e76d in tf2::BufferCore::setTransform(geometry_msgs::msg::TransformStamped_<std::allocator<void> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) () at /opt/ros/foxy/lib/libtf2.so
#35 0x00007f78cd44f826 in tf2_ros::TransformListener::subscription_callback(std::shared_ptr<tf2_msgs::msg::TFMessage_<std::allocator<void> > >, bool) () at /opt/ros/foxy/lib/libtf2_ros.so
#36 0x00007f78cdc8f43d in std::_Function_handler<void (std::shared_ptr<tf2_msgs::msg::TFMessage_<std::allocator<void> > >), std::_Bind<void (tf2_ros::TransformListener::*(tf2_ros::TransformListener*, std::_Placeholder<1>, bool))(std::shared_ptr<tf2_msgs::msg::TFMessage_<std::allocator<void> > >, bool)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<tf2_msgs::msg::TFMessage_<std::allocator<void> > >&&) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#37 0x00007f78cdc94c81 in rclcpp::AnySubscriptionCallback<tf2_msgs::msg::TFMessage_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<tf2_msgs::msg::TFMessage_<std::allocator<void> > >, rclcpp::MessageInfo const&) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#38 0x00007f78cdc954ef in rclcpp::Subscription<tf2_msgs::msg::TFMessage_<std::allocator<void> >, std::allocator<void>, rclcpp::message_memory_strategy::MessageMemoryStrategy<tf2_msgs::msg::TFMessage_<std::allocator<void> >, std::allocator<void> > >::handle_message(std::shared_ptr<void>&, rclcpp::MessageInfo const&) () at /opt/ros/foxy/lib/librviz_default_plugins.so
#39 0x00007f79039eb35c in  () at /opt/ros/foxy/lib/librclcpp.so
#40 0x00007f79039ebc1b in rclcpp::Executor::execute_subscription(std::shared_ptr<rclcpp::SubscriptionBase>) () at /opt/ros/foxy/lib/librclcpp.so
#41 0x00007f79039ec3da in rclcpp::Executor::execute_any_executable(rclcpp::AnyExecutable&) () at /opt/ros/foxy/lib/librclcpp.so
#42 0x00007f79039f0bdc in rclcpp::executors::SingleThreadedExecutor::spin() () at /opt/ros/foxy/lib/librclcpp.so
#43 0x00007f78cd44fa72 in  () at /opt/ros/foxy/lib/libtf2_ros.so
#44 0x00007f79037efd84 in  () at /lib/x86_64-linux-gnu/libstdc++.so.6
#45 0x00007f790228e609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#46 0x00007f790362e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

this issue has made rviz2 unusable for the past month or so 😢

https://github.com/ros2/rviz/pull/620 fixed a race condition with message displays. I'd be interested to know if it resolves this issue. If someone is able to try out the latest ros2 branch from source that would be great.

I am interested in this issue, but I have a question about it.
I think that https://github.com/ros2/rviz/pull/620 can fix this issue because the operation manual_object_->clear(); in PolygonDisplay::reset and PolygonDisplay::processMessage will be called in one QT event thread, but https://github.com/ros2/rviz/pull/620 not taking advantage of the dedicated thread to process message will slow down the performance of Ogre, especially if there is a concrete Display need to process a complicated message.
Does anyone think we should seperate the two operations rviz_common::MessageFilterDisplay::processMessage and VisualizationManager::onUpdate into two thread?
BTW: If a update about replacing SingleThreadedExecutor with MultipleThreadedExecutor in TransformListener::initThread in the future, there will be a bottle neck for rviz_common::MessageFilterDisplay::processMessage in QT event thread to process all concrete Displays.

#620 fixed a race condition with message displays. I'd be interested to know if it resolves this issue. If someone is able to try out the latest ros2 branch from source that would be great.

@jacobperron Hi, if I want build rviz2 ros2 branch should  I also build ROS2 from source? Because I cannot pass the build process with the ros2 binary installation.

@Phymin You should be able to build against the Rolling distribution. See Rolling Ridley install instructions.

After about one and half hour of build and 30 minutes test, the crash problem doesnot happen again, I will keep testing.

#620 fixed a race condition with message displays. I'd be interested to know if it resolves this issue. If someone is able to try out the latest ros2 branch from source that would be great.

When we can expect to see effect of #620 in foxy deb release ?

When we can expect to see effect of #620 in foxy deb release ?

It's tricky, since #620 is not ABI compatible with Foxy. I don't have time to look at making an ABI compatible fix at the moment, so if somebody would like to try I'm happy to review it.

Hi. I have noticed that the Navigation2 Default Rviz file causes Rviz2 to crash because of a one Polygon display. This is a workaround instead of a fix. This worked for me but I haven't tested it with a different setup. I am using the Cyclone DDS, with Foxy and Navigation2 installed from binaries.
If you remove/disable the Polygon under Controller Group, with the topic name /local_costmap/published_footprint, it does not crash. Although same polygon plugin works fine with the /global_costmap/published_footprint, local costmap polygon does not.
You can find the modified navigation2 rviz view version down in the gist link.
https://gist.github.com/mehmetkillioglu/0db5b62520b40803779725fa8160ce3d
While using the Navigation2 Bringup, you can pass argument parameter rviz_config_file:=/path/to/file after launch command to use custom rviz view for it.

Hi. I have noticed that the Navigation2 Default Rviz file causes Rviz2 to crash because of a one Polygon display. This is a workaround instead of a fix. This worked for me but I haven't tested it with a different setup. I am using the Cyclone DDS, with Foxy and Navigation2 installed from binaries.
If you remove/disable the Polygon under Controller Group, with the topic name /local_costmap/published_footprint, it does not crash. Although same polygon plugin works fine with the /global_costmap/published_footprint, local costmap polygon does not.
You can find the modified navigation2 rviz view version down in the gist link.
https://gist.github.com/mehmetkillioglu/0db5b62520b40803779725fa8160ce3d
While using the Navigation2 Bringup, you can pass argument parameter rviz_config_file:=/path/to/file after launch command to use custom rviz view for it.

Still having same annoying issue :disappointed: I think this should be fixed in the supposedly stable Foxy release.

Given that Foxy is now End-of-Life, I'm going to close this out.  If you are still seeing this issue on newer versions, please feel free to open a new ticket with your information.


Default background color for multi-file diff editor is out of place

It's too dark in both Light and Dark theme.

💡 Why not simply reusing the sidebar background color?

/duplicate #202137


VXRA (Velocity v<IP_ADDRESS>) Classloaders leaked when renderer initialization fails.

When VXRA fails to instantiate a render pipeline, the classloader used for loading the files remains open and running. This leaks a handle to the renderer JARfile and additionally will cause loading issues with the fallback chain.
See VXRA.java for details.

Fixed v0.6


Fixes #71 - Diverts generated theme devDependencies for 7.0 and 7.1 versions

Merging with test failures. NPM registry search seems to be down globally 😢


Suggestions: no-page-cache route middleware and PAGE_CACHE_ENABLED env variable

Thanks for this package. Three suggestions:

Add a PAGE_CACHE_ENABLED environment variable with supporting config file that checks for this. This allows the cache to be turned on and off instead of having to comment out the reference in Kernel.php

You have a page-cache route middleware, but how about doing the inverse: a no-page-cache middleware? This'll allow an individual route(s) to be excluded easily while caching everything else by default.

Regex cache clearing. Right now, an individual slug can be cleared:

php artisan page-cache:clear {slug}

But what about extending it to clear a directory, like so:
php artisan page-cache:clear country/canada/*

Or just clearing anything that matches:
php artisan page-cache:clear country/canad*

If full-blown regex is too much work to do, at least supporting the asterisk seems to be a reasonable middle ground.
Thanks.

There is already a PR that was submitted nearly a month ago that will recursively delete a directory, just waiting for it to be merged. https://github.com/JosephSilber/page-cache/pull/58

You can use Laravel's withoutMiddleware on your route, to exclude it from caching:
Route::get('/', 'HomeController@index')->withoutMiddleware('page-cache');

To clear a full resource, use the new --recursive flag.


2nd implementation of the Config Trait

closes #160
closes #156
closes #164
Basic gist of it is that you can write the following
use bincode::{serialize, config};

serialize(&vec![1,2,3]);
// or
config().with_big_endian().with_limit(12).serialize(&vec![1,2,3]);

depending on if you want to configure bincode.
Adding new configuration options should be backwards compatible.  All of this should be 0 cost (assuming that the inliner does its work correctly)

@dtolnay: this is a rewrite of my older PR with some suggestions from you taken into account

@dtolnay: any more feedback on the design?
If not, I'm going to fill out the doc comments and merge.

Oh, one issue is that I'm no longer exporting BincodeRead, so people that relied on that (servo) will break.
I wonder if I could incorperate their custom BincodeRead into bincode and provide an unsafe fn for using it.

Pretty much done with this PR.  I added the deserialize_from_custom method, and updated the docs pretty substantially.
I'm going to talk with servo to see if this meets their needs and then I'll hit merge.

I talked to @Gankro from servo and I'm pretty sure that with the with_deserializer method, we'll be able to hit all their requirements.


Assets uri's that begin with ph:// cause error

Description
When giving the Image component a uri beginning with ph:// like so:
<Image source={{ uri: "ph://*" }} />

the image fails to render:

In my scenario, I used expo-media-library to retrieve the uri's. I built my app with the old architecture, and this error did not persist.
Version
0.71.1
Output of npx react-native info
System:
OS: macOS 13.2
CPU: (8) arm64 Apple M1
Memory: 75.11 MB / 16.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 18.13.0 - ~/.nvm/versions/node/v18.13.0/bin/node
Yarn: 1.22.19 - ~/.nvm/versions/node/v18.13.0/bin/yarn
npm: 8.19.3 - ~/.nvm/versions/node/v18.13.0/bin/npm
Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
Android SDK: Not Found
IDEs:
Android Studio: Not Found
Xcode: 14.2/14C18 - /usr/bin/xcodebuild
Languages:
Java: Not Found
npmPackages:
@react-native-community/cli: Not Found
react: 18.2.0 => 18.2.0
react-native: 0.71.1 => 0.71.1
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce

get a uri starting with ph:// by any means
render an image with that uri

Snack, code example, screenshot, or link to a repository
Not sure how to switch a snack into the new architecture, but this code in the new architecture will fail:
https://snack.expo.dev/gv6bMd2MY?platform=ios
UPDATE: Providing a simpler example to convey that this is a react native issue and not due to any dependency. The following code fails on the new archatecure with the error above:
import React from 'react';
import { Image } from 'react-native';

const App = () => {
  return <Image source={{ uri: 'ph://B84E8479-475C-4727-A4A4-B77AA9980897' }} style={{ width: 100, height: 100 }} />;
};

export default App;

but it runs exactly as expected in the old one. It looks like the new architecture can not handle iOS's ph:// routes.

In my scenario, I used expo-media-library to retrieve the uri's. I built my app with the old architecture, and this error did not persist.

As this is related to expo-media-library (which lives here https://github.com/expo/expo/tree/main/packages/expo-media-library) and their support for New Architecture, you should open this issue against Expo's repo.

please save me!!!!!

for any one who needs a temperary workaround, I found that expo's image component works with ph:// routes.
cc @mingyeom1

any update or ideas around what might cause this bug? I've been using expo-image in the meantime, but now I've run into the issue that expo-image does not render ph:// images when the user grants limited permissions (in both new and old architecture) 😞.

What does the ph:// prefix mean? What kind of permissions does the user need to grant?

What does the ph:// prefix mean? What kind of permissions does the user need to grant?

Just mean that the URI starts with ph://. These URI's route to PHAssets in iOS (basically just photo library assets).
That issue with permissions was just an expo-image thing.
The problem here is that React Native's core Image component errors when it tries to render any image with a ph:// on the new architecture. I confirmed this was a regression from the old architecture.

linking to where the error is being triggered: code

@react-native-camera-roll/camera-roll appears to be doing some handling of ph:// routes: code
maybe we can override getModuleInstanceFromClass in AppDelegate to add RNCAssetsLibraryRequestHandler to the list?

Sharing some findings and a solution that worked for me:
Findings
According to this issue React Native no longer support's ph:// routes after @react-native-camera-roll/camera-roll was separated, and installing @react-native-camera-roll/camera-roll should integrate the proper handler. However, according to this issue the new architecture hard codes RCTURLRequestHandler, which means simply installing @react-native-camera-roll/camera-roll won't be enough to solve the problem.
Solution
Ultimetly, I was able to work around this by:

install @react-native-camera-roll/camera-roll
Override getModuleInstanceFromClass in your AppDelegate.mm to use @react-native-camera-roll/camera-roll's RNCAssetsLibraryRequestHandler handler:

...

#import "RNCAssetsLibraryRequestHandler.h"
#import <React/RCTImageLoader.h>
#import <React/RCTDataRequestHandler.h>
#import <React/RCTFileRequestHandler.h>
#import <React/RCTGIFImageDecoder.h>
#import <React/RCTHTTPRequestHandler.h>
#import <React/RCTLocalAssetImageLoader.h>
#import <React/RCTNetworking.h>

...

- (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass
{
  // Set up the default RCTImageLoader and RCTNetworking modules.
  if (moduleClass == RCTImageLoader.class) {
    return [[moduleClass alloc] initWithRedirectDelegate:nil
        loadersProvider:^NSArray<id<RCTImageURLLoader>> *(RCTModuleRegistry *) {
          return @[ [RCTLocalAssetImageLoader new] ];
        }
        decodersProvider:^NSArray<id<RCTImageDataDecoder>> *(RCTModuleRegistry *) {
          return @[ [RCTGIFImageDecoder new] ];
        }];
  } else if (moduleClass == RCTNetworking.class) {
    return [[moduleClass alloc] initWithHandlersProvider:^NSArray<id<RCTURLRequestHandler>> *(RCTModuleRegistry *) {
      return @[
        [RCTHTTPRequestHandler new],
        [RCTDataRequestHandler new],
        [RCTFileRequestHandler new],
        [RNCAssetsLibraryRequestHandler new],
      ];
    }];
  }
  // No custom initializer here.
  return [moduleClass new];
}

...

Extra Info
After these finding's I realized the reason ph:// routes were working on the old architecture was likely because expo provides a EXImageLoader. And since the new architecture hardcodes RCTURLRequestHandler, it did now work there.

up, we don't want for this issue to be reaped. We will work on this next half.

I'm looking into this. I was not around when the old architecture was the only architecture...
What's the expected behavior? Was the old architecture able to open urls in the form of ph://<UUID>? Or was it just dying silently and now it is raising the redbox?
As far as I can see, we always relied on 3rd party libraries to load ph://. As @norbusonam mentioned, it's possible to use react-native-camera-roll. Thanks to https://github.com/facebook/react-native/pull/43046, libraries can now (from 0.74) self-register as handlers for ph://.
I'm trying to understand what's the expectation for a react native project with no libraries.
Perhaps @tsapeta, @WoLewicki  or @mrousavy knows something about this? How was React Native behaving in the Old Architecture? Has it ever worked with ph:// urls out of the box?

I remember <Image> works with ph:// in old arch. It should be supported by UIImage loading out of the box afaik.

I think it did work previously. We were using it in our examples for expo-media-library before we switched to expo-image.
After a quick look, I'm not actually sure why 😅 Rendering them would require using the Photos framework to load them, specifically its PHImageManager and PHAsset classes. It needs special handling since there are some more configuration options, e.g. whether to allow downloading the asset from iCloud and the requested quality (lower quality previews might be stored on device without the need to download them). Here is how we're doing that in expo-image: https://github.com/expo/expo/blob/main/packages/expo-image/ios/Loaders/PhotoLibraryAssetLoader.swift
The required permission is another thing.
Maybe the URL loader somehow supported it and treated as a network request?

After these finding's I realized the reason ph:// routes were working on the old architecture was likely because expo provides a EXImageLoader.

It's definitely not the case. This loader doesn't do anything beyond what RN's loaders support and we can actually remove it as it's no longer used.

@norbusonam @mrousavy @tsapeta
I spin up an app with 0.71.1, and the Old Architecture fails in the same way as the new one.
Repro:
npx<EMAIL_ADDRESS>init TestImage71_1 --version 0.71.1 #this installs pods for the old arch by default.
cd TestImage71_1/ios
open TestImage71_1.xcworkspace
cd ..
yarn start

I retrieved the ID by:

Adding the NSPhotoLibraryUsageDescription in the capabilities in Xcode
Adding the Photos framework in the Frameworks, Libraries and Embedded Contents in the General tab of the project in Xcode
Adding this code to the app delegate to read the id:

#import <Photos/PHAsset.h>
//...
PHFetchResult<PHAsset *> * res = [PHAsset fetchAssetsWithOptions:nil];
PHAsset * first = res.firstObject;
NSLog(@"Id: %@", first.localIdentifier);

Then, replace the App.tsx content with the following:
import React from 'react';
import {
  SafeAreaView,
  ScrollView,
  StatusBar,
  useColorScheme,
  Image,
  View,
} from 'react-native';

import {Colors} from 'react-native/Libraries/NewAppScreen';

function App(): JSX.Element {
  const isDarkMode = useColorScheme() === 'dark';

  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar
        barStyle={isDarkMode ? 'light-content' : 'dark-content'}
        backgroundColor={backgroundStyle.backgroundColor}
      />
      <ScrollView
        contentInsetAdjustmentBehavior="automatic"
        style={backgroundStyle}>
        <View
          style={{
            backgroundColor: isDarkMode ? Colors.black : Colors.white,
          }}>
          <Image
            source={{uri: 'ph://106E99A1-4F6A-45A2-B320-B0AD4A8E8473'}}
            style={{width: 100, height: 100}}
          />
        </View>
      </ScrollView>
    </SafeAreaView>
  );
}

export default App;

For my simulator, 106E99A1-4F6A-45A2-B320-B0AD4A8E8473 is a valid id for an asset in the camera roll.
When I run the app in the Old Architecture, I get the same error message:

Could it be that, in the Old Architecture, the libraries were able to self register their image handler in the list of handlers?
So, what I think was happening:

yarn add react-native-cameraroll #and example of library that can handle ph:// url schemas
Add NSPhotoLibraryUsageDescription
Use `<Image source:{{ uri: "ph://*" }} />

And it looked like React Native is able to manage the ph:// directly, but it was actually a library handling that?
That fits with my understanding and as a difference between New/Old Arch. In fact, libraries couldn't, before 0.74, register themselves as URL Handlers/Image Loaders in the New Architecture.

Closing this as it is an intended React Native behaviour.
The Old Architecture is relying on some library to pick up the ph:// protocol. Libraries on the Old Architecture can register automatically to respond to custom URL protocols, that's why it looked like React Native was able to load images using the ph:// protocol.
In the New Architecture, before 0.74, libraries could not register themselves as URL handler, hence, this issue has been opened. In 0.74, thanks to this PR, libraries can now register themselves as URL handler, filling the gap between the Old and the New architecture.

Hey @cipolleschi - this makes perfect sense, thanks for the explanation.
I'm not sure if I understand how to properly register custom image loaders (or URL handlers) now on the new architecture though? Is there a method I can use to register a custom handler in my AppDelegate?
RN CameraRoll still has that custom PH asset handler, but it doesn't work anymore. see https://github.com/react-native-cameraroll/react-native-cameraroll/issues/631

@mrousavy I found this conversation: https://github.com/facebook/react-native/pull/36071#issuecomment-1914950992. Seems like for some reason the links to commits are broken and lead to some weird, non-connected ones. I can quickly try to find the exact commit that introduces the changes @cipolleschi mentioned.

Looks like it is this one: https://github.com/facebook/react-native/pull/42923

Got it!
For everyone else stumbling upon this issue, here's what I did:

Create a file that implements the RCTImageURLLoader protocol, I'll call it RNCAssetsLibraryRequestHandler.h:#pragma once
#import <Foundation/Foundation.h>
#import <React/RCTImageURLLoader.h>

@class PHPhotoLibrary;

@interface RNCAssetsLibraryRequestHandler : NSObject <RCTImageURLLoader>

@end

Implement the two methods, and also treat it as an RCTBridgeModule (it has (NSString*)moduleName):#import "RNCAssetsLibraryRequestHandler.h"

@implementation RNCAssetsLibraryRequestHandler

- (BOOL)canLoadImageURL:(NSURL *)requestURL {
  return [requestURL.scheme isEqualToString:@"ph"];
}

- (RCTImageLoaderCancellationBlock)loadImageForURL:(NSURL *)imageURL
                                              size:(CGSize)size
                                             scale:(CGFloat)scale
                                        resizeMode:(RCTResizeMode)resizeMode
                                   progressHandler:(RCTImageLoaderProgressBlock)progressHandler
                                partialLoadHandler:(RCTImageLoaderPartialLoadBlock)partialLoadHandler
                                 completionHandler:(RCTImageLoaderCompletionBlock)completionHandler {
  // TODO: Load ph:// asset here
}

+ (NSString *)moduleName {
  return @"RNCAssetsLibraryRequestHandler";
}

@end

Add RNCAssetsLibraryRequestHandler  to your lib's (or app's) codegen, there's a modulesConformingToProtocol option:"codegenConfig": {
  ...
  "ios": {
    "modulesConformingToProtocol": {
      "RCTImageURLLoader": "RNCAssetsLibraryRequestHandler"
    }
  },

Install pods & rebuild, and now the ph:// handler is registered 🎉
@WoLewicki I'll create a PR to CameraRoll :)

@cortinico two things I wanna note here;

Is what I'm doing fine? It seems like it's treating RNCAssetsLibraryRequestHandler as a RCTBridgeModule (at least that's the protocol that it's implementing through CodeGen) - is that still new arch stuff? For me it runs fine in bridgeless, so I was confused about this.
Is there a documentation somewhere about all options you can pass to codegenConfig? I feel like this would've been easier to solve if there was a section in the docs about what you can actually do with codegenConfig, ideally something that automatically generates an API documentation based off of Flow/TS types of the codegen plugin.

I just created a PR in react-native-cameraroll to add custom Image URL loaders for ph:// and asset-library:// assets. https://github.com/react-native-cameraroll/react-native-cameraroll/pull/632
So if you install react-native-cameraroll, ph:// assets can be loaded again in <Image> components on new arch/Fabric 🎉🥳

What is the fix for expo-media-library, though, since I am facing this issue on version ~16.0.3 and with expo 51.0.11?

What is the fix for expo-media-library, though, since this issue seems to be relevant on version ~16.0.3 and with expo 51.0.11?
Just as a context, I am using the default Image component of React Native and I am on old architecture

+1

It turned out we had a regression causing the expo-media-library to not include the image loader for ph:// urls so the standard RN Image couldn't handle them. It's been fixed in version 16.0.4.

I am using 16.0.4 for expo-media-library but still ph:// was not accepted by <Image>
This is the repo. Also I found workaround as well.
I left the workaround in my repo as well. Hopefully it helps someone
https://github.com/nagisaando/image-bug

Hey folks, if anyone comes here on the new architecture, I just opened up https://github.com/expo/expo/pull/33097, which I think might fix your issues once merged and shipped.


update(registry): update rules package names

Signed-off-by: Luca Guerra<EMAIL_ADDRESS>Use falco-rules and application-rules names.

LGTM label has been added.  Git tree hash: b8622e8461e7bc81b734adbb02b5107ab311a853


Implement ICMP Ping functionality in the Go tunnel, and add it to WireGuardAdapter…

… including a ICMPPingProvider protocol.
This is a squashed version of the changes in a much more convoluted branch.

This change is

Sources/WireGuardKitGo/api-apple.go line 548 at r2 (raw file):
Previously, pinkisemils (Emīls Piņķis) wrote…
Does invoking wgTurnOff close all the ICMP sockets too?

Good catch; it will soon

Sources/WireGuardKitGo/api-apple.go line 548 at r2 (raw file):
Previously, acb-mv wrote…
Good catch; it will soon

Done


merge request on Readme

i have created some patches to make the readme more user friendly. please check and if it feels okay. please merge

pull request accepted


Add packages for testing in requirements.txt file

As a developer
I need have necessary testing packages installed on the virtual machine
So that I can easily run tests on the virtual machine without extra efforts
Assumptions:

Put necessary packages in the requirement.txt file, such as nosetests, coverage.
Found in the professor's lab test code, the following package could be included

# Testing
pylint
mock==2.0.0
httpie==0.9.9
nose==1.3.7
rednose==1.2.1
pinocchio==0.4.2
# Rspec DSL
noseOfYeti==1.6
expects==0.8.0
# Code coverage
coverage==4.2
codecov==2.0.5

Acceptance Criteria:
When I run nosetests command in the virtual machine under /vagrant folder
Then I would successfully get tests result and a coverage report

The coverage files are added to the requirements folder


NAS2D::split() throws unhandled exception when passed an empty string

I suspect that most use cases here would not pass empty strings through split() but there is a case in OutpostHD that could pass an empty string when loading a RobotCommandCenter that's been saved before any robots can be assigned to it.
I'm not sure if this should be considered an error and throw our own std::runtime_error or if it should be silently ignored and just pass back an empty vector<string>.
In the mean time I'll use a work around in the OutpostHD code that doesn't attempt to load an empty robot list string.
As a note, adding:
if (str.empty()) { return std::vector<std::string>(); }

to the top of the function eliminates the throw. It's the silent swallowing of potentially incorrect use that has me unsure of the best way to approach this.

It's using split() and I'm pretty sure it is. I I use a guard that doesn't call split() unless the passed string is not empty, it doesn't break. If I modify the function to use the line I mentioned above, it doesn't break.
In hindsight this is actually a debug assertion failure so perhaps this isn't something that needs to be addressed?

Still, I don't think we need to have debuggers exploding on 'errors' that aren't really errors. Hence the request for opinion. :D

Hmm, that is very useful additional info. The Linux builds probably don't run the same sort of debug assertions, such as checking for a non-empty std::string before calling back(). Technically, there is no requirement to fail or report when undefined behaviour has been invoked. This may actually be a bug in the library code.


Error with wsHeartbeat: "close sent"

I'm seeing this error constantly since yesterday.
voice.go:496:wsHeartbeat() error sending heartbeat to voice endpoint us-east247.discord.media:80, websocket: close sent
Does anyone know if this is a Discord issue?

@Vindexus Same issue, it's due to the lockup in #701

I fixed the issue here I hope it will get merged soon.


Mythos Transfers between Asset Hub and Hydration

Hello, we have been contacted with a request for MYTH asset transfers from Asset Hub Polkadot directly to Hydration within one XCM. Currently, we haven't found a successful case for this scenario anywhere (The scenario is not present in the Hydration app either). Are these transfers possible? If yes, could you please point us to the correct extrinsic that can achieve such transfer? Also, if they are not is the support planned? Currently the only way we know of is to transfer the assets from Asset Hub directly into Mythos and then redirect them to Hydration from Mythos.
Thank you for your time.
With kind regards,
Team ParaSpell

Currently this is problematic hence we don't allow in in our UI. It should become viable once XCMv5 is deployed.


Handles custom build types when adding Flutter jar dependencies to a Flutter Gradle Plugin

Flutter Gradle Plugin
Description
A project with a custom build type would fail to build if it used plugins.
The custom build types propagate down to the plugin projects, but the plugin projects were only adding the Flutter jar to a fixed set of build types.
The Flutter jar is now added to all build types.
Related Issues
Tests
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read Handling breaking changes). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

@dnfield Wondering if you are the right person to review this PR?

We can't accept any PRs to the tool or gradle scripts without a way to test it and prevent regressions. In this case, it will likely require a project configured accordingly under dev/integration_tests and a corresponding test case is dev/devicelab

Thanks @jonahwilliams I'll work on adding some tests.

Here is an example of one of these devicelab tests: https://github.com/flutter/flutter/blob/master/dev/devicelab/bin/tasks/build_mode_test.dart
This runs a particular app from the integration_tests directory

/cc @mklim


Mark Storage and plugins as provisional API

Overview
Not ready to be stable part of v1.

MERGED #80