Fix: different behavior when using app and device back button in selection mode

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/45896
PROPOSAL: https://github.com/Expensify/App/issues/45896#issuecomment-2262103584
Tests

Submit an expense to any user
Go to Search
Long press on the expense
Tap Select
Tap Back button on the top left
Note that only the selection mode is dismissed and app remains on the same page
Tap Select
Go back using device navigation
Verify that: App will dimiss the selection mode and remains on the same page

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

Offline tests

QA Steps

Submit an expense to any user
Go to Search
Long press on the expense
Tap Select
Tap Back button on the top left
Note that only the selection mode is dismissed and app remains on the same page
Tap Select
Go back using device navigation
Verify that: App will dimiss the selection mode and remains on the same page

[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
https://github.com/user-attachments/assets/05f5f8e0-7362-46f9-9a45-a757d568ef01

Android: mWeb Chrome

https://github.com/user-attachments/assets/c396dced-b538-41b3-be34-0e03c6d3f770

iOS: Native

https://github.com/user-attachments/assets/89eca820-8f89-45bc-88b6-879e1992f2aa

iOS: mWeb Safari

https://github.com/user-attachments/assets/95ddcbc2-6b90-4940-8e70-20b80f24e51a

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/e5e5cccc-4112-4906-a07f-196b8da7d99b

MacOS: Desktop

https://github.com/user-attachments/assets/74d455f4-224e-40ca-8ea3-154b3792eaa4

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

I'll update soon

@eVoloshchak I tried with beforeRemove but this event doesn't trigger any time we click on the back button of the browser. Ref here. I also tried with beforeunload but this didn't work.

@eVoloshchak What do you think about my comment above?

I tried with beforeRemove but this event doesn't trigger any time we click on the back button of the browser

@nkdengineer, it does according to my testing, but it isn't called when shouldUseNarrowLayout=true (which poses a problem on web and mWeb)
https://github.com/user-attachments/assets/c789ce4f-e5c5-4b0b-be90-ae4a82767d6d

@nkdengineer, it does according to my testing, but it isn't called when shouldUseNarrowLayout=true (which poses a problem on web and mWeb)

@eVoloshchak Yes this is the problem.

@nkdengineer, that means that, at the very least, we're able to make this work on desktop web (since there beforeRemove works as expected)
But ideally, we need to get to the bottom of "why does it not fire correctly if shouldUseNarrowLayout is true)

Still investigating.

Still find the RCA of the bug above.

Same as above.

@eVoloshchak I checked again and beforeRemove also doesn't trigger when we open the search page from the chat on large screen. It's only triggered when we refresh the search page.
https://github.com/user-attachments/assets/cdab643e-40d3-46ea-811f-f272c1ad92ad

@eVoloshchak I tried with the listener on Search page and it's the same behavior with you. I am investigating the RCA again.

@eVoloshchak I fixed this bug now. Please help to check again.

@eVoloshchak Friendly bump.

Still investigate.

@eVoloshchak The problem is we prevented navigating to the previous page but you can see the URL was still changed to the previous page then on the second time it's going to the chrome page.

It's the default behavior of the back button browser.

@eVoloshchak any update here

It's the default behavior of the back button browser.

Yeah, you're right, it can observed on many other pages too
In that case, could you resolve the conflicts please?

@eVoloshchak So we're good to remove the implementation for web, right?

So we're good to remove the implementation for web

@nkdengineer, that is correct

@nkdengineer, that is correct

@eVoloshchak I updated, please help to check again.

Testing this one more time on mWeb and native Android and it's not ideal how the behavior of back button is different

@nkdengineer, please roll back to the implementation for web, apologies for the confusion on this one. The bug with it back button not working correctly the second time is out of scope of this PR

make sure that we're unsubscribing from beforeRemove event

@eVoloshchak Friendly bump.

@eVoloshchak Friendly bump.

@eVoloshchak But at the first time we do that, the URL is changed to the previous page but the screen is still the search page, it is also a bug. I think the best way is do nothing in web/mweb.

@Julesssss Currently web/mweb cannot prevent the default behavior when clicking on the back button browser. Do you agree that we can only fix this bug on Native?

@Julesssss Currently web/mweb cannot prevent the default behavior when clicking on the back button browser. Do you agree that we can only fix this bug on Native?

Yeah I agree with native only. No need to worry about web matching our desired mobile behaviour here.

@eVoloshchak We're good to process now.


Xarray lazy access to CDS

I'm wondering if we could collaborate on something that would have a lot of value for both our project and many others using the CDS: an xarray backend to the CDS which uses lazy access provide a "virtual" xarray dataset, with actual downloads happening only when a compute is triggered. This would be a great foundation for a streaming data transfer service, since we could just use dask and the rest of the pangeo stack to manage the ETL.
https://confluence.ecmwf.int/display/CKB/How+to+download+ERA5
Here's how the CDS API downloads a variable:
#!/usr/bin/env python
import cdsapi

c = cdsapi.Client()
c.retrieve('reanalysis-era5-pressure-levels', {
        'variable'      : 'temperature',
        'pressure_level': '1000',
        'product_type'  : 'reanalysis',
        'year'          : '2008',
        'month'         : '01',
        'day'           : '01',
        'time'          : '12:00',
        'format'        : 'netcdf' # Supported format: grib and netcdf. Default: grib
    }, 'test.nc')

We could imagine wrapping this in a dask-delayed call, which would save the netcdf file to a memory buffer and then extract and returnthe raw array.
We did something similar with the NASA ECCO Data Portal and it works really well: https://medium.com/pangeo/petabytes-of-ocean-data-part-1-nasa-ecco-data-portal-81e3c5e077be
The main challenge would be:

[x] Since we would only be extracting the data variable from the netcdf file, we would need a way to reconstruct the coordinates and metadata. These are presumably the same for all the files so could be hard coded or just loaded once.
[x] Does the CDS API allow us to save the data to a file-like-object (e.g. a memory buffer)? It looks like it only accepts a string (path) as the download location.

Thoughts?

I played around with the lazy loading concept and got quite far. I just pushed a notebook to this repo here:
https://github.com/pangeo-data/pangeo-era5/blob/master/lazy_loading_expts.ipynb
The main problem I am having is that, for all but the default parameters shown above, my request for data seems to just stay in the queue forever (waited over 10 minutes then gave up). So I have a proof of concept, but it doesn't actually do anything interesting because the CDS won't actually give me any data.
Is this a problem with my code? Or is the CDS really this slow to respond to requests? If so, we will have to find another approach.

This is an interesting idea. Regarding your first challenge, we have to keep in mind that when sending a request to the CDS API, it is added to a task queue and depending on the size of the data requested, it can take anywhere from seconds to more than an hour just to assemble the netcdf on Copernicus servers with the exception of common requests that are cached and are pretty much instantaneous. Also, I think there is a limit of simultaneous request per user which may be why your request is being queued. In my experience, my requests were almost never queued unless I had a bunch at the same time (more that 2 or 3).
Also, as additional info, the CDS API accepts an "area" argument for spatial subsetting.
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-pressure-levels',
{
'variable':variable,
'product_type':'reanalysis',
'area'    :  '63/-96/40/-52', # North, West, South, East. Default: global,
'year':year,
'month': month,
'day':day,
'time':time,
'format':'netcdf'
},
'test.nc')

In my experience, my requests were almost never queued unless I had a bunch at the same time (more that 2 or 3).

This is not what I found. In the example above, if I just change one day or time, my request gets queued, seemingly forever. (I could only ever get the example to work.) This is without any simultaneous requests in progress. Or perhaps the fact that I kept interrupting the queued requests (got bored) compounded the problem.

I think there is a limit of simultaneous request per user

It would be good to understand the details of this policy. It will obviously limit our ability to use distributed processing to pull data from the CDS in parallel.

I've just run a couple of requests and I'm experimenting the same issue. However, this is not what I have been experimenting for the previous months and is not normal behaviour. I remember seeing yesterday that they had maintenance planned either today or tomorrow, maybe this has something to do with it. I suggest we try again tomorrow.
I will try to dig some info on limits of simultaneous request per user or will just test it when the API is running correctly again

I tried it this morning and everything seemed to work fine. But I suppose that is because the queries I tried last night were finally cached.
Switching to a different date range put me back into the queue.

I tested your notebook this morning and arrived to the same conclusion. I reached out to Copernicus support to get a better understanding of their requests policy and am waiting for their response. Perhaps there is a way to get a "superuser" account that is less restricting on simultaneous requests?
The AGU meeting is a great opportunity to make contact with Copernicus and understand the inner workings of their API and possible solutions to our problem. I am not personally attending but it is my understanding that some people in this group are.

More information on general and per user limits of the CDS API :

Michela Giusti commented:
Dear Sebastien,
Thank you for your enquiry to the Copernicus User Support Service at ECMWF.
Please have a look at the following link:
https://cds.climate.copernicus.eu/live/limits
Moreover, you can have a look at the list  showing the requests that are currently being run and the request that are queued, as well as the reason why requests may be queued:
https://cds.climate.copernicus.eu/live/queue
Hope this helps.
Kind Regards,
Michela
C3S/CAMS User Support
<EMAIL_ADDRESS>User Forum| Knowledge Base | Follow us @CopernicusECMWF


[Doc]: Update BE_configuration.md

alter starlet_use_star_cache default value : false in 3.1
Why I'm doing:
What I'm doing:
Fixes #issue
What type of PR is this:

[x] Doc

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[x] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[x] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

@UncertaintyDeterminesYou4ndMe Hi, thank you for your contribution. But you are probably checking out the wrong doc branch. The default value in 3.1 is false but you are modifying the main branch.


added license_template to repo struct

Is this new field referring to the license_template field mentioned in the Input section of repositories create endpoint here?
https://developer.github.com/v3/repos/#input

@shurcooL Yes, thats right!
While creating a new repo, we need to provide a license_template. If we don't do that, the repo still gets created but whenever you try to use the Github API to query anything, it says "the Git repository is empty". With the addition of this field in the repository struct, we don't get that message anymore and it is possible to use the Github API to query different methods.

LGTM.
Awaiting secondary LGTM before merging.

@anshumanbh - if you take a look at this:
https://patch-diff.githubusercontent.com/raw/google/go-github/pull/443.patch
you can see different email addresses in the patch.
If you could please squash all your commits, that would be great.
Thanks.

@gmlewis Apologies for that. I switched laptops hence the error. I think it should be okay now

No problem at all, @anshumanbh - it just makes googlebot happier.  😄
Awaiting LGTM from @shurcooL.

I can remove the blank line on merge.

Thank you, @anshumanbh and @shurcooL!
Integrated in https://github.com/google/go-github/commit/1bc362c7737e51014af7299e016444b654095ad9


HADOOP-18714. Wrong StringUtils.join() called in AbstractContractRootDirectoryTest

What changes were proposed in this pull request?
Backport #5578 to branch-3.3.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
1m 51s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 1 new or modified test files.

_ branch-3.3 Compile Tests _

+1 :green_heart:
mvninstall
38m 38s

branch-3.3 passed

+1 :green_heart:
compile
18m 28s

branch-3.3 passed

+1 :green_heart:
checkstyle
0m 51s

branch-3.3 passed

+1 :green_heart:
mvnsite
1m 32s

branch-3.3 passed

+1 :green_heart:
javadoc
0m 53s

branch-3.3 passed

+1 :green_heart:
spotbugs
2m 38s

branch-3.3 passed

+1 :green_heart:
shadedclient
25m 49s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 58s

the patch passed

+1 :green_heart:
compile
17m 17s

the patch passed

+1 :green_heart:
javac
17m 17s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 54s

the patch passed

+1 :green_heart:
mvnsite
1m 37s

the patch passed

+1 :green_heart:
javadoc
0m 47s

the patch passed

+1 :green_heart:
spotbugs
2m 33s

the patch passed

+1 :green_heart:
shadedclient
25m 52s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
17m 36s

hadoop-common in the patch passed.

+1 :green_heart:
asflicense
1m  1s

The patch does not generate ASF License warnings.

159m 17s

Subsystem
Report/Notes

Docker
ClientAPI=1.42 ServerAPI=1.42 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5588/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/5588

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux 3a9f2c05901d 4.15.0-206-generic #217-Ubuntu SMP Fri Feb 3 19:10:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
branch-3.3 / 3e81aeb1ad1623e87d68b50a962897e1b214c8c3

Default Java
Private Build-1.8.0_362-8u362-ga-0ubuntu1~18.04.1-b09

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5588/1/testReport/

Max. process+thread count
1302 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5588/1/console

versions
git=2.17.1 maven=3.6.0 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

happy with this. as its a backport you don't need extra approval, but +1 anyway


Wrap helper_method calls in respond_to?(:helper_method)

#helper_method is not essential to the functionality of the methods inside Leather::ActionControllerExtension, so this PR wraps all Leather #helper_method calls with respond_to?(:helper_method) checks.

Thanks for the contribution!

@dvanderbeek could you publish this to the gem? It would help a lot not have to hunt the problem down :)

@danmaz74 Yes, thanks for pointing that out. I'll try to release a new version in the next couple days


Update PelePhysics and add path to new utility

Pulling in the most recent PelePhysics commit and updating the paths in Make.PeleLMeX.

Can you replace some of the unit conversions (e.g., here) with this capability as demonstration and to ensure it gets caught in some of our tests?


Gmail API Oauth2

PR changes

Created a new class GmailAPI that includes all the Gmail API interactions (taken from old GmailAPIServiceAccount directly)
For GmailAPIServiceAccount and new GmailAPIOauth, the only customisation is the load_credentials, because in the first case it's taken directly from the credentials_file, and  for the second, there is a OAuth2.0 workflow.
The OAuth workflow has been implemented with two new urls/views, google_authorize (to initiate the workflow after raising a custom exception RedirectAuthorize that contians the proper redirect URL and source name) and google_oauth2callback  to receive the redirect from Google after successful authentication.
The way to keep track of the token received is by using a new DB binary field hidden in the Notification Sources, and using always the consent and access_type="offline" to enable renewal of the password after a first successful authorization.
Adapted and extended test for the new classes.
Removed unused file development/.docker-compose.yml

TODO

[x] Document Readme setup in Google
[x] Move dynamic secrets into DB
[x] Fix tests
[x] Organize Exceptions
[x] Add new tests
[x] test app for several days

as a not, I tried to "validate" authentication 7 days later and it worked without prompting for credentials!

@glennmatthews hopefully I've addressed your comments. Please, raise your hand if not.


[core] design schedulingtimer logic in MCAD

Describe the Bug
Schedulingtimer holds the place of AW in the queue. we need to design a better policy to not delay and slow down MCAD dispatch
Codeflare Stack Component Versions
Please specify the component versions in which you have encountered this bug.
MCAD: main branch post-release 1.33
Steps to Reproduce the Bug
NA
What Have You Already Tried to Debug the Issue?
NA
Expected Behavior
NA
Screenshots, Console Output, Logs, etc.
NA
Affected Releases
all releases up to release 1.33
Additional Context

This logic has degenerated now to a no-op, there are snippets of the code that need to be cleaned up inside the MCAD code base.

new backoff implementation opens the possibility for plugging custom schedulingtimer logic


[🐞] fresh qwikcity throw error

Which component is affected?
Starters / CLI
Describe the bug
I'm new to qwik and trying to learn, so just following the qwick document and faced difficutly creating the base app to run. here is commands that I run
two issues : pnpm install is failing and pnpm start is failing
Reproduction

Steps to reproduce

PS E:\hustling\toDelete\qwik-learn> pnpm create qwik@latest

      ............
    .::: :--------:.
   .::::  .:-------:.
  .:::::.   .:-------.
  ::::::.     .:------.
 ::::::.        :-----:
 ::::::.       .:-----.
  :::::::.     .-----.
   ::::::::..   ---:.
    .:::::::::. :-:.
     ..::::::::::::
             ...::::

T  Let's create a  Qwik App  ✨ (v1.4.3)
|
o  Where would you like to create your new project? (Use '.' or './' for current directory)
|  ./qwik-learn
|
•  Creating new project in  E:\hustling\toDelete\qwik-learn  ... 🐇
|
o  Select a starter
|  Basic App (Qwik City + Qwik)
|
o  Would you like to install pnpm dependencies?
|  Yes
|
o  Initialize a new git repository?
|  Yes
|
o  Finishing the install. Wanna hear a joke?
|  Yes
|
o  🙈 ---------------------------------------------------------------------+
|                                                                          |
|  I've got a great joke about construction, but I'm still working on it.  |
|                                                                          |
|                                                                          |
+--------------------------------------------------------------------------+
|
o  App Created 🐰
|
o  Git initialized 🎲
|
|
x  EXDEV: cross-device link not permitted, rename 'C:\Users\me\AppData\Local\Temp\create-qwik-2b1enkyxiib\node_modules' -> 'E:\hustling\toDelete\qwik-learn\node_modules'
|
|
|
x   pnpm install failed
|   You might need to run "pnpm install" manually inside the root of the project.
|
|
o  Failed to install pnpm dependencies 📋
|
o  Result ------------------------------------------------+
|                                                         |
|  🦄  Success!  Project created in qwik-learn directory  |
|                                                         |
|  🤍 Integrations? Add Netlify, Cloudflare, Tailwind...  |
|     pnpm qwik add                                       |
|                                                         |
|  📄 Relevant docs:                                      |
|     https://qwik.builder.io/docs/getting-started/       |
|                                                         |
|  💬 Questions? Start the conversation at:               |
|     https://qwik.builder.io/chat                        |
|     https://twitter.com/QwikDev                         |
|                                                         |
|  👀 Presentations, Podcasts and Videos:                 |
|     https://qwik.builder.io/media/                      |
|                                                         |
|  🐰 Next steps:                                         |
|     cd qwik-learn                                       |
|     pnpm install                                        |
|     pnpm start                                          |
|                                                         |
|                                                         |
+---------------------------------------------------------+
|
—  Happy coding! 🎉

PS E:\hustling\toDelete> cd .\qwik-learn\
PS E:\hustling\toDelete\qwik-learn> pnpm i
Packages: +352
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 408, reused 354, downloaded 0, added 352, done

devDependencies:
+ @builder.io/qwik 1.4.3
+ @builder.io/qwik-city 1.4.3
+ @types/eslint 8.56.2
+ @types/node 20.11.13
+ @typescript-eslint/eslint-plugin 6.20.0
+ @typescript-eslint/parser 6.20.0
+ eslint 8.56.0
+ eslint-plugin-qwik 1.4.3
+ prettier 3.2.4
+ typescript 5.3.3
+ undici 6.5.0
+ vite 5.0.12
+ vite-tsconfig-paths 4.3.1

Done in 9.3s
PS E:\hustling\toDelete\qwik-learn> pnpm start

> my-qwik-basic-starter@ start E:\hustling\toDelete\qwik-learn
> vite --open --mode ssr

failed to load config from E:\hustling\toDelete\qwik-learn\vite.config.ts
error when starting dev server:
ReferenceError: ReadableStream is not defined
    at Object.<anonymous> (E:\hustling\toDelete\qwik-learn\node_modules\.pnpm\undici@6.5.0\node_modules\undici\lib\fetch\response.js:516:3)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at Module.require (node:internal/modules/cjs/loader:1100:19)
    at require (node:internal/modules/cjs/helpers:119:18)
    at Object.<anonymous> (E:\hustling\toDelete\qwik-learn\node_modules\.pnpm\undici@6.5.0\node_modules\undici\lib\fetch\index.js:11:5)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)

System Info
System:
    OS: Windows 11 10.0.22621
    CPU: (16) x64 AMD Ryzen 9 7940HS w/ Radeon 780M Graphics
    Memory: 1.40 GB / 15.21 GB
  Binaries:
    Node: 16.20.2 - C:\Program Files\nodejs\node.EXE
    npm: 8.19.4 - C:\Program Files\nodejs\npm.CMD
    pnpm: 8.15.1 - ~\AppData\Local\pnpm\pnpm.EXE
  Browsers:
    Edge: Chromium (121.0.2277.83)
    Internet Explorer: 11.0.22621.1
  npmPackages:
    @builder.io/qwik: ^1.4.3 => 1.4.3
    @builder.io/qwik-city: ^1.4.3 => 1.4.3
    undici: * => 6.5.0
    vite: ^5.0.12 => 5.0.12

Additional Information
No response

you need to run dev.  when you run start it's assuming the build.client is built already. @wmertens where is the place to create a better error for this in the cli?

No, the node version needs to be 18 but better 20.
Pnpm start should work

update to node 20 solved the issue.
btw these need an update. additionally need adding instruction to add sharp in pnpm( pnpm add sharp ). node 20 isn't solely enough.

should be fixed with https://github.com/BuilderIO/qwik/pull/6038


How to use Cert files

I noticed djwt now wants a CryptoKey and not cert strings anymore. Since I'm pretty new to crypto I would love to have an example of how to use eg RSA key files.

Hi, to generate a CryptoKey  or CryptoKeyPair you can also use the importKey method from the Web Crypto API. You should be able to use your .pem files with this method.
Please take a look at this documentation and let me know if it helped: https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey
Thanks!

Looks like pkcs8 is not available in deno 🤔

@TS
Easiest way is to declare a Global var for your key and use it to create and verify your JWT.
Just put this code in your Starting Application

declare global {
var yourkey: any;
interface Window {
yourkey: any;
}
}
window.yourkey = await crypto.subtle.generateKey(
{ name: "HMAC", hash: "SHA-512" },
true,
["sign", "verify"],
)

I think this is not a good practice but it works, hope it will help.

For my application I need to use RSA and I need the tokens to be valid even after a restart.

Hi @itohatweb , pkcs8 has been implemented by the deno authors now.
I added an example for generating, exporting and importing a key in pkcs8 format  here.  Does it help?

Yes thank you.


Shouldn't the user be notified that he/she should specify an absolute path when deciding to use a custom OUTPUT?
Not specifying an OUTPUT, works and installs fine in output.
The issue only shows when OUTPUT is a relative directory (e.g. OUTPUT=testme).

That's a good question. The original intent was that you could use relative paths, but I don't think it works right now. I guess I should either find a way to fix it, automatically replace with absolute, or error out on relative paths until it's fixed.

Keeping this issue open then until this is fixed.
Thank you for your hard work.


Automate build and release process for Oasis Core

Closes #2456.

What will we be able to remove once #2473 is done?

We should be able to remove all generate target dependencies in Makefiles and remove some prerequisites that need to be installed in the prepare release job of the Release manager GitHub Actions workflow which should make it faster :slightly_smiling_face:.


[Highstocks] - X-Axis value is outside the scale when zooming via navigator.

Current Behavior:
Steps:

Plot lot of data on highstocks.
Apply navigator zoom from left to right (or) vice versa. (width between the navigator buttons should be very less as shown in the screenshot).
Zoom the chart very slowly and we can observe that in the whole series there will be atleast one point which goes out of the scale.

Expected Behavior:
None of xaxis values should be plotted outside the scale of xaxis.

jsfiddle please. Is this a problem with highstocks without using highcharts-ng?


Exception in SEALNetExamples

Hello SEAL team,
I'm new to SEAL and learning from the great examples in SEALNetExamples project.
While running the Examples and choosing 3 (Levels),
I'm getting Invalid operation exception on line 167 - KeyGenerator keygen = new KeyGenerator(context);
Its seems like the constructor of KeyGenerator  can't make new GaloisKeys(galoisKeysPtr);

I'm not getting this error. Please make sure you have the newest commits to master or 3.4.5 branches. We fixed some issues very recently in the .NET examples, and this may have been fixed at that time.

Thanks, I've pulled from master and its ok.


 Then your thread crashed, and exceptions aren't reported until you join it: any IO call and sleep related calls are currently broken inside threads since the libevent integration.

@barachy Please, always provide snippets that we can copy, paste, run and verify that they work incorrectly. We can't just guess how you are using that process_stop method. I also guess it has something to do with threads.

Sorry ,
It was inside a Thread , I will try to always supply a working code to test .
Will this issue happens also when Fibers are used ?
Sent with AquaMail for Android
http://www.aqua-mail.com
On June 1, 2015 6:53:01 PM Ary Borenszweig<EMAIL_ADDRESS>wrote:
@barachy Please, always provide snippets that we can copy, paste, run and verify that they work incorrectly. We can't just guess how you are using that process_stop method. I also guess it has something to do with threads.

Reply to this email directly or view it on GitHubhttps://github.com/manastech/crystal/issues/722#issuecomment-107602432.

TL;DR don't use threads or even fibers until further notice, and only spawn { ... } coroutines. They will run on a single thread for now, but will eventually be dispatched over any threads (I hope it will come fast).
I understand it's a bit saddening to lose threads for CPU-bound apps, but the libevent loop is faster than threads when it comes to IO and timers, and you can spawn a lot of coroutines.

@ysbaddaden  Thanks for the explanation.
I'll work on changing my Thread.new to spawn do :)


feat(commonTests): add options and expected className

Current coverage is 98.86% (diff: 100%)

Merging #548 into master will not change coverage

@@             master       #548   diff @@
==========================================
  Files           108        108
  Lines          1762       1762
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1742       1742
  Misses           20         20
  Partials          0          0

Powered by Codecov. Last update 277d266...e5a0b84


Add schema registry

Need to push protobuf schemas to schema registry.
Create local dir schemas/protobuf
Create flags for

schema_registry_enable
schema_registry_schema_type
schema_registry_schema_names

Please clarify:

Need to push protobuf schemas to schema registry

Are the JSON Schema schemas and protobuf schemas mutually exclusive? How are they being supplied? Do you have some examples for testing?

Create local dir schemas/protobuf

Is this being created by ETL or are we just expecting it in the file system in the container?

Create flags for:
schema_registry_enable

This is already implicit when you specify a server for schema registry. I'm guessing we want it to be an explicit boolean?

schema_registry_schema_type

What options are needed? Just JSON/pbuf?

schema_registry_schema_names

How are these being associated to topics? Generally they just follow the standard naming convention of -value. Would this need to be some sort of map, or are we going to have n-many vars?


End users lose data when upgrading to a browser with IndexedDB

AFAIK, there is no storage abstraction library that gracefully deals with IndexedDB suddenly being available when it wasn't before; thus, end users of an app that use such a library find all their data "lost" when they update to a browser version that has IndexedDB. Fixing this in localForage would not only be great for end users, it would help set this library apart from the competition.

Most browsers in question have moved to IndexedDB and this seems to be something developers will need to handle themselves. Closing for now, but a PR to fix this would still be welcome.


Make plugin compatible with other plugins

The plugin was not compatible with other plugins using Eventbus. As soon as you add another plugin that uses Eventbus (like background-geolocation) the app crashes. Fixed.

Thanks, will check it out!

Merged, thanks for help! Can you also send a link to the plugin, that was crashing it?

It was crashing the app when we used it together with:
https://github.com/transistorsoft/cordova-background-geolocation-lt
We use the premium version of that plugin.

Thanks.


How can I unref an instance launched with puppeteer.launch?

I'm trying to do something similar to this:
const puppeteer = require('puppeteer')
const browser = await puppeteer.launch()
browser.process().unref()

But that doesn't close the node process after it is finished.
This actually works:
const { spawn } = require('child_process')
const subprocess = spawn('top', {
  stdio: 'ignore'
})
subprocess.unref()

So I'm guessing setting the stdio to ignore is important. How can I do this? Preferably without having to use connect.
This also works:
const subprocess = spawn('top')
subprocess.stdin.unref()
subprocess.stdout.unref()
subprocess.stderr.unref()
subprocess.unref()

But this doesn't:
const browser = await puppeteer.launch()
browser.process().unref()
browser.process().stdin.unref()
browser.process().stdout.unref()
browser.process().stderr.unref()

Any news on this that would be awesome

I wanted to see how to properly unref a chrome instance and it seems doable but puppeteer would have to expose an internal called gracefullyCloseChrome.
https://github.com/puppeteer/puppeteer/blob/d17708ba1fc8411941bfd07f633aaf2fb5cb671e/lib/Launcher.js#L194
If it was exposed, let's say under a browser method called unref we could do something like
const puppeteer = require("puppeteer")

const browser = await puppeteer.launch()
browser.unref()

I am not a contributor to puppeteer but to me it means adding
browser.unref = gracefullyCloseChrome

Before
https://github.com/puppeteer/puppeteer/blob/d17708ba1fc8411941bfd07f633aaf2fb5cb671e/lib/Launcher.js#L185
Would be what we want.
I contact them on slack to know what they think about it.

That being said unref concept and gracefullyCloseChrome are not the same.
Calling unref means the ressource, here the chromium browser, must remain usable but does not keep node process alive.
gracefullyCloseChrome does not match this expectation.


fix: fix webpack 4 by not using loader options

Fixes https://github.com/unjs/unplugin/pull/144#issuecomment-1204316085

Amazing work @Demivan! 👍

Thanks 🙂


Client Allocation Request for: Konvergence Inc.

Client Allocation Questions
Core Information

Name: Konvergence Inc.
Website / Social Media: https://raincloud.earth
Region: North America
DataCap Requested: 300GiB
Addresses to be Notarized: f1debmp4kudblzzh2fev52rty2zyrkhf3yqt4psmq
Notary Requested: jamerduhgamer

@DantewithZYX Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

Closing due to duplicate ticket.


Not Responsive-Fixing

The website does not look responsive..
Please Assign me this task..
Also label it under GSSoC..
Best regards

I want work on this project to make website responsive. Please assign me this task.

I am thrilled to be participating in GirlScript Summer of Code 2k24 as a passionate computer science student with a keen interest in web development. I am eager to contribute to your project and leverage my skills to make meaningful contributions. I look forward to collaborating with you and the team to create impactful solutions.
@SuhainaFathimaM Mam, Please give me this problem to work on; I want to do it.

Hey there! I'm Pratyaksh Agrawal, a full-stack MERN web developer. With experience in numerous successful MERN stack projects, I excel in HTML, CSS,JavaScript,C, C++,jQuery, Node.js, React.js, Bootstrap, Tailwind, Express, MongoDB, API,GraphQL,WebRTC.
You can find me on LinkedIn : https://www.linkedin.com/in/pratyaksh-agrawal-2aa032220/
Looking forward to contributing to GSSOC 2024!

@SuhainaFathimaM Are you up for this issue?

@sunny0625 I will work on this issue within the time period


feature_importances doesn't work in iterated model

Thanks for reporting. Yes, it looks to me that feature_importance method is not forwarded to the wrapper IteratedModel.


fix homepage carousel images

Right now the carousel images at home gets cut due to the height (resolution and size), but we have to show them fully which could either mean that we keep whitespaces on left/right if height is an issue or keep whitespaces on top/bottom if the width is an issue.
There are a couple of ways we cn do this through css.

Issue has been completed


A key cannot be 'null' or 'undefined'

  it('can lookup a key that is literally "null"', () => {
    const obj = {
      null: 'some value for null'
    }
    expect(get(obj, 'foo')).to.equal(obj.null)
  })

  it('can lookup a key that is literally "undefined"', () => {
    const obj = {
      undefined: 'some value for undefined'
    }
    expect(get(obj, 'foo')).to.equal(obj.undefined)
  })

nvm, there was an error in the path


New version: Starpine.Screenbox version 0.14.1

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Manually validated to be working on my machine

Automatic Validation ended with:

Installation failed with exit code -1978334972
2024-11-02 13:53:41.162 [CORE] Deployment operation #4: Windows cannot install package 18496Starpine.Screenbox_<IP_ADDRESS>_x64__rm8wvch11q4my because this package depends on a framework that could not be found. Provide the framework "Microsoft.VCLibs.140.00" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x64 processor architecture and minimum version 14.0.33519.0, along with this package to install. The frameworks with name "Microsoft.VCLibs.140.00" currently installed are: {Microsoft.VCLibs.140.00_14.0.27323.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.27810.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.29231.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x64__8wekyb3d8bbwe Microsoft.VCLibs.140.00_14.0.30035.0_x86__8wekyb3d8bbwe}
2024-11-02 13:53:41.162 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(161)\WindowsPackageManager.dll!00007FF864E73F75: (caller: 00007FF864DCA720) Exception(2) tid(1014) 80073CF3 Package failed updates, dependency or conflict validation.
2024-11-02 13:53:42.600 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!00007FF864E72D2F: (caller: 00007FF864E7432C) Exception(3) tid(1014) 80073CF1 Package was not found.
2024-11-02 13:53:42.600 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(126)\WindowsPackageManager.dll!00007FF864FE8931: (caller: 00007FF864E75853) LogHr(2) tid(1014) 80073CF1 Package was not found.
Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!00007FF864E72D2F: (caller: 00007FF864E7432C) Exception(3) tid(1014) 80073CF1 Package was not found.
2024-11-02 13:53:42.606 [CLI ] MSIX installer failed:<PHONE_NUMBER>
2024-11-02 13:54:48.619 [CORE] Deployment operation #4: Windows cannot install package 18496Starpine.Screenbox_<IP_ADDRESS>_x86__rm8wvch11q4my because this package depends on a framework that could not be found. Provide the framework "Microsoft.NET.Native.Framework.2.2" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x86 processor architecture and minimum version 2.2.29512.0, along with this package to install. The frameworks with name "Microsoft.NET.Native.Framework.2.2" currently installed are: {Microsoft.NET.Native.Framework.2.2_2.2.27405.0_x86__8wekyb3d8bbwe}
2024-11-02 13:54:48.619 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(161)\WindowsPackageManager.dll!5473E94A: (caller: 546A97A7) Exception(2) tid(a38) 80073CF3 Package failed updates, dependency or conflict validation.
2024-11-02 13:54:49.538 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!5473D7AF: (caller: 5473ED72) Exception(3) tid(a38) 80073CF1 Package was not found.
2024-11-02 13:54:49.538 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(126)\WindowsPackageManager.dll!5473EA29: (caller: 5473FBF8) LogHr(2) tid(a38) 80073CF1 Package was not found.
Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!5473D7AF: (caller: 5473ED72) Exception(3) tid(a38) 80073CF1 Package was not found.
2024-11-02 13:54:49.544 [CLI ] MSIX installer failed:<PHONE_NUMBER>

Automated error analysis suggests -1978334972 may mean This package has a dependency missing from your system.
Automated error analysis suggests<PHONE_NUMBER> may mean Error Installing Dependency - Windows cannot install this package because it depends on a framework (version) that could not be found.
(Automated response - build 897.)

@stephengillie Thank you for approving and sorry for the trouble 😅


Increasing memory limits for etcdadm controller in raw config file

Issue #, if available:
Description of changes:
The change was already made in infrastructure-components.yaml, but if users re-build the manifests, it will be overwritten. This change modifies the original files so they can be generated into manifests correctly
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Modal closes on any click within it

I have a page with several modals on it each containing a form.  One of them closes as soon as I click anywhere within it (note, not on the backdrop but inside the modal itself).  The other all work correctly and only close when I click the close button.
The page can be viewed at www.celticsociety.org/Newwebsite.  Click the green "Submit your event" button to display the modal.
This is using Chrome 68.0.3440.106 on OSX 10.13.6.  The page was generated using Bootstrap Studio using the Materia theme from Bootswatch.

Remove data-toggle="modal" and data-target="#submitEvent" from the modal.

Whoops, my bad, sorry!


Get rid of the WAL and write buffer except under failure scenarios

We can close this, right? It's no longer relevant.

yeah, no longer relevant.


Server-aware editing in VSCode and static app script generation

Big PR that adds server-aware logic to the VSCode extension (go to output definitions and input references) along with the ability to see a full app script when running in static (or embedded mode).
Under the hood these changes are driven by a large rewrite of the data structures used to represent an app. Now the client is given full information about the underlying app (both script text and AST) and parses that to render and update the UI. This means a large percentage of the R code has been removed.

/update-snapshots

/update-snapshots


Subclassed attributes are not serializable

In a subclass of pandas objects, pickling an object doesn't serialize properties of an instance of that subclass, even if the attribute has been added to _metadata. It would be hard to override this behavior entirely in the subclass, because it will require updates to __getstate__ and __setstate__, and probably also an addition or subclass of BlockManager. It would be nice if the _metadata serialization was handled in the base pandas class.
Example:
class SubDataFrame(DataFrame):

    _metadata = ['my_data']

    @property
    def _constructor(self):
        return SubDataFrame

sdf = SubDataFrame()
sdf.my_data = 'foo'
sdf.to_pickle('tmp.pkl')
new_sdf = read_pickle('tmp.pkl')
new_sdf.foo

raises AttributeError: 'SubDataFrame' object has no attribute 'foo'

I think if this were replaces core/generic.py (and no need to have the Series.__getstate__ either)
then this would work (and be back-compat). The reconstruction accepts a dict of these things
 def __getstate__(self):
        meta = dict([ (k, getattr(self, k, None)) for k in self._metadata ])
        return dict(_data=self._data, **meta)

Want to do a pull-request (already lots of tests on prior version pickle recovery in pandas/io/tests/test_pickle.py so that will test the back-compat)

@jreback Thanks, that's simpler than I thought. I had to add a couple more attributes (_metadata and _typ) to make sure it gets deserialized. #10557 submitted.


Fix bug where valid mixed case headers fails parse

Server parse fails when explicitly provided headers include upper case
characters. Update lib/parser.js to look for the lower case version of
the header. Add a new test case in test/parser.test.js to check for
valid mixed case headers. Verified new test failure without change, all
tests passing with change.

Merged as aaf66f5. Thanks!


Profile Page UI Designing

Solves in https://github.com/hashirshoaeb/star_book/commit/03414b7d3c25dfc2d5959c3974eb908c5a2e9bd4

Solves in https://github.com/hashirshoaeb/star_book/commit/03414b7d3c25dfc2d5959c3974eb908c5a2e9bd4


typescript: handle possible symbol lookup fail [phab:D1592]

Created by evmar at 2017-04-28 23:13:46:
The TypeScript API can return 'undefined' from getSymbolAtLocation,
but the types don't capture that because they haven't yet migrated
to being null-safe.  Instead, wrap that function with one with the
proper return type, then make the compiler happy again by
null-checking the return value each time it's used.
This fixes indexing of lib.es6 (the TS standard library covering
ES6).  Before it was crashing when we attempted to get a symbol
name from a class property that was a computed variable.

zarko accepted this revision at 2017-04-28 23:16:40

zarko closed via commit 6c58f270453223fe59060229cb39363c6a094a92 at 2017-04-28 23:36:34


Change name dataset

Datasets originating from NBN do get the NBN - prefix

Given that:

NBN can be interpreted as "Coming from https://nbn.org.uk/"
There is less an need to communicate NBN as a source system (in contrast with other INBO data systems VIS, Watervogels, ...) as it is a hotchpotch of surveys without a common theme.
Adding NBN can complicate names to NBN - Other code - Dataset title

We decided not to implement this name change.


empty box in image

Hello!
I try to run experiments on my custom dataset, but the following error has occurred in here
IndexError: index 0 is out of bounds for dimension 0 with size 0
In my dataset there are images without bbox annotation, which cause the above error.
i.e., y_loc_img[0] = tensor([], device='cuda:0', size=(0, 4)) for images without bbox annotation.
What does the condition mean y_loc_img[0][0][0] < 0?

Hello!
MI-AOD needs to add any bounding box to each image in the unlabeled set (the positioning is not required to be accurate). For details, please refer to Question 3 in the Custom Modifications part of FAQ and the corresponding Issue.
The condition y_loc_img[0][0][0] < 0 means that the current data batch is an unlabeled data batch, because we have set all coordinates of the bounding boxes to -1 for the unlabeled data in Lines 70-74 in epoch_based_runner.py (as described in Question 7 in the Training and Test part of FAQ and the corresponding Issues).

The answer to question 3 in the Custom Modifications part of FAQ is a bit uncomfortable.
The answer is only related to  the condition y_loc_img[0][0][0] < 0?
If then, What if we do it this way??

Add below method to epoch_based_runner.py:

def _add_dataset_flag(self, X, is_unlabeled):
    or _img_meta in X['img_metas'].data[0]:
     _img_meta.update({'is_unlabeled': is_unlabeled})

and add these codes
self._add_dataset_flag(X_L, is_unlabeled=False) to line 31 in epoch_based_runner.py
self._add_dataset_flag(X_L, is_unlabeled=False) to line 60 in epoch_based_runner.py
self._add_dataset_flag(X_U, is_unlabeled=True) to line 79 in epoch_based_runner.py

Replace y_loc_img[0][0][0] < 0 with img_metas[0]['is_unlabeled'] in MIAOD_head.py (e.g., 479 and 565 line)

The code you provided is a good alternative.
It has the same effect as the original code, both for marking and judging unlabeled data.


Print panel improvements

In particular, this PR:

introduces print state making customParams and customMapParams confurable using redux
updates mapfish-print-manager to v9
some code cleanup

Plz review @terrestris/devs

:tada: This PR is included in version 6.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


The Kubernetes service automatically generated to point to the deployed DB instance does not allow specifying the port

When an NDB operator deploys a database solution, a Kubernetes service is automatically deployed, configuring the deployed database as the endpoint.
However, it is not currently possible to specify the port on which the service will listen, and port 80 is set by default.
It should be feasible, when setting up the resources of type 'Database', to specify the port on which the Kubernetes service would listen. The Custom Resource Definition (CRD) should provide the option to define something similar:
The actual result is
apiVersion: v1
kind: Service
metadata:
  name: demoappdb02-svc
spec:
  clusterIP: <IP_ADDRESS>
  clusterIPs:
  - <IP_ADDRESS>
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - port: 80
    protocol: TCP
    targetPort: 5432

We should be able to create resources like this
apiVersion: ndb.nutanix.com/v1alpha1
kind: Database
metadata:
  # This name that will be used within the kubernetes cluster
  name: demoappdb02
spec:
  # Name of the NDBServer resource created earlier
  ndbRef: gdb
  isClone: false
  servicePort : 5432
  exposedPort : 5432

Then we should get similar result:
apiVersion: v1
kind: Service
metadata:
  name: demoappdb02-svc
spec:
  clusterIP: <IP_ADDRESS>
  clusterIPs:
  - <IP_ADDRESS>
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - port: 5432
    protocol: TCP
    targetPort: 5432

Hey @fabricekrebs!
As I understand, you're looking for the functionality to be able to specify the port for the K8s service that the clients would consume (exposed port). We will be tracking this issue internally.
I wanted to know what would be the use of specifying the service port explicitly? Wouldn't it be easier for the user to just specify the port that they want to connect to on the K8s service (exposed port), and the NDB Operator determines the service port based on the interactions with NDB ?
Can you please let us know if there's any use case of specifying the service port that we might have missed?

Hello @manavrajvanshi,
Allowing customers to specify the exposed port provides greater flexibility in designing their Kubernetes application architecture. It is not logical for an application owner to access PostgreSQL on a port like 80, which is commonly associated with HTTP.
By default, the same port defined at the endpoint should be used. For instance, PostgreSQL should use 5432:5432 instead of 80:5432.


crash in vtkPNGWriter::WriteSlice at large image size

When saving a large (> 2K) image in PNG format, the viewer crashes. A backtrace shows the crash is happening in vtkPNGWriter::WriteSlice. The issue appears to be unique to PNG, as other formats can be saved at high resolution (4K tested) without issue.
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 273
Status: Developer Review
Project: VisIt
Tracker: Bug
Priority: Normal
Subject: crash in vtkPNGWriter::WriteSlice at large image size
Assigned to: -
Category: -
Target version: -
Author: Paul Navratil
Start: 07/08/2010
Due date:
% Done: 0%
Estimated time:
Created: 07/08/2010 01:58 pm
Updated: 07/21/2010 01:30 pm
Likelihood: 5 - Always
Severity: 4 - Crash / Wrong Results
Found in version: 2.0.1
Impact:
Expected Use:
OS: Linux
Support Group: Any
Description:
When saving a large (> 2K) image in PNG format, the viewer crashes. A backtrace shows the crash is happening in vtkPNGWriter::WriteSlice. The issue appears to be unique to PNG, as other formats can be saved at high resolution (4K tested) without issue.
Comments:
Paul: 'The VTK flag VTK_USE_SYSTEM_PNG might also help.'

i think this has been resolved, i have been able to save large pngs (8Kx8K)


Add messages describing the source of type conversion errors

When a type conversion error occurs, now the query that produced the value with the wrong type is printed, instead of the value itself.
This mainly serves to fix the issue associated with removing names from SeriesLists- now when you accidentally use a serieslist as a (say) duration, the invalid argument will be identified by name in the error.
@drcapulet

:+1:


TryJoin on tuple trying to free a null pointer

I've been using futures_concurrency crate as much as I can at Spacedrive, I prefer its functions and traits approach better than the macros approach of futures crate. But I was having a weird crash problem with a TryJoin. I was able to reproduce a minimal example as follows.
use futures_concurrency::future::{Join, TryJoin};
use std::future::ready;
use tokio::time::{sleep, Duration};

async fn process(iter: impl IntoIterator<Item = &i32>, fail: bool) -> Result<Vec<i32>, Vec<()>> {
    if fail {
        return Err(vec![]);
    } else {
        sleep(Duration::from_secs(5)).await;
    }

    Ok(iter
        .into_iter()
        .map(|i| ready(*i))
        .collect::<Vec<_>>()
        .join()
        .await)
}

#[tokio::main]
async fn main() -> Result<(), Vec<()>> {
    let v = (0..10).collect::<Vec<_>>();

    (
        process(v.iter().take(5), true),
        process(v.iter().take(0), false),
    )
        .try_join()
        .await?;

    Ok(())
}

miri is detecting UB in the drop_initialized_values, here:
https://github.com/yoshuawuyts/futures-concurrency/blob/a2a7f6a17ada682e01a0096e0b2a223c886eba39/src/future/try_join/tuple.rs#L72

miri output
error: Undefined Behavior: using uninitialized data, but this operation requires initialized memory
   --> /home/consoli/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:223:9
    |
223 |         self.ptr.as_ptr()
    |         ^^^^^^^^ using uninitialized data, but this operation requires initialized memory
    |
    = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
    = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
    = note: BACKTRACE:
    = note: inside `alloc::raw_vec::RawVec::<LoudDrop<i32>>::ptr` at /home/consoli/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec.rs:223:9: 223:17
    = note: inside `std::vec::Vec::<LoudDrop<i32>>::as_mut_ptr` at /home/consoli/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:1324:9: 1324:23
    = note: inside `<std::vec::Vec<LoudDrop<i32>> as std::ops::Drop>::drop` at /home/consoli/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3064:62: 3064:79
    = note: inside `std::ptr::drop_in_place::<std::vec::Vec<LoudDrop<i32>>> - shim(Some(std::vec::Vec<LoudDrop<i32>>))` at /home/consoli/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:497:1: 497:56
    = note: inside `std::mem::MaybeUninit::<std::vec::Vec<LoudDrop<i32>>>::assume_init_drop` at /home/consoli/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/maybe_uninit.rs:728:18: 728:55
    = note: inside `<futures_concurrency::future::try_join::tuple::TryJoin2<A, ResA, B, ResB, Err> as pin_project::__private::PinnedDrop>::drop::__drop_inner::<[async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, [async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, std::vec::Vec<()>>` at /home/consoli/projects/rust/contrib/futures-concurrency/src/future/try_join/tuple.rs:72:22: 72:48
    = note: inside `<futures_concurrency::future::try_join::tuple::TryJoin2<[async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, [async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, std::vec::Vec<()>> as pin_project::__private::PinnedDrop>::drop` at /home/consoli/projects/rust/contrib/futures-concurrency/src/future/try_join/tuple.rs:263:9: 263:23
    = note: inside `futures_concurrency::future::try_join::tuple::_::<impl std::ops::Drop for futures_concurrency::future::try_join::tuple::TryJoin2<[async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, [async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, std::vec::Vec<()>>>::drop` at /home/consoli/projects/rust/contrib/futures-concurrency/src/future/try_join/tuple.rs:174:23: 174:33
    = note: inside `std::ptr::drop_in_place::<futures_concurrency::future::try_join::tuple::TryJoin2<[async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, [async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, std::vec::Vec<()>>> - shim(Some(futures_concurrency::future::try_join::tuple::TryJoin2<[async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, [async fn body@src/main.rs:8:42: 21:2], std::vec::Vec<LoudDrop<i32>>, std::vec::Vec<()>>))` at /home/consoli/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:497:1: 497:56
note: inside closure
   --> src/main.rs:42:14
    |
42  |         .await?;
    |              ^
    = note: inside closure at /home/consoli/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/park.rs:282:63: 282:87
    = note: inside `tokio::runtime::coop::with_budget::<std::task::Poll<std::result::Result<(), std::vec::Vec<()>>>, [closure@tokio::runtime::park::CachedParkThread::block_on<[async block@src/main.rs:31:1: 31:15]>::{closure#0}]>` at /home/consoli/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/coop.rs:107:5: 107:8
    = note: inside `tokio::runtime::coop::budget::<std::task::Poll<std::result::Result<(), std::vec::Vec<()>>>, [closure@tokio::runtime::park::CachedParkThread::block_on<[async block@src/main.rs:31:1: 31:15]>::{closure#0}]>` at /home/consoli/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/coop.rs:73:5: 73:38
    = note: inside `tokio::runtime::park::CachedParkThread::block_on::<[async block@src/main.rs:31:1: 31:15]>` at /home/consoli/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/park.rs:282:31: 282:88
    = note: inside `tokio::runtime::context::blocking::BlockingRegionGuard::block_on::<[async block@src/main.rs:31:1: 31:15]>` at /home/consoli/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/context/blocking.rs:66:9: 66:25
    = note: inside closure at /home/consoli/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/mod.rs:87:13: 87:38
    = note: inside `tokio::runtime::scheduler::multi_thread::MultiThread::block_on::<[async block@src/main.rs:31:1: 31:15]>` at /home/consoli/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/mod.rs:86:9: 88:11
note: inside `main`
   --> src/main.rs:44:5
    |
44  |     Ok(())
    |     ^^^^^^

note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

error: aborting due to previous error```
</details>

Also, worth to note that these errors are only happening with Tokio for some reason, just tested my example with async_std and worked just fine.

Hey, thanks for reporting this!
Im not behind a computer right now, but from reading the code it seems we may be setting the wrong state on line 36 of try_join.rs. We're tagging the entry as "ready" rather than "completed", and then dropping the data. This leads to a double-drop, which is what Miri is complaining about.
We do want to drop in-line, so I think what we should do is to instead mark it as "completed" and the drop it inline. If anyone wants to try that out and see if it still fails that would be helpful. Otherwise I can give this a try when I'm back at work next week.

Tested here, calling $this.state[$fut_idx].set_none(); just after the ManuallyDrop::drop line solved this issue. Setting the PollState to none was the closest thing I could find to mark it as "completed" instead of "ready". Introduced this like on both join and try_join for tuples.
I can help it further, just need some guidance on how to proceed. I'm putting here the tests output. Most of them were just expecting a "ready" state and should be simple to fix for a "none" state or for a new "completed" state, the ones that worried me more are the ones for leaking stuff, namely the assertion at https://github.com/yoshuawuyts/futures-concurrency/blob/a2a7f6a17ada682e01a0096e0b2a223c886eba39/src/future/try_join/tuple.rs#L395-L397
Unit tests

running 59 tests
test future::join::array::test::debug ... ok
test future::join::array::test::empty ... ok
test future::join::vec::test::debug ... ok
test future::join::array::test::smoke ... ok
test future::join::tuple::test::join_0 ... ok
test future::future_group::test::smoke ... ok
test future::join::vec::test::empty ... ok
test future::join::vec::test::smoke ... ok
test future::race::array::test::no_fairness ... ok
test future::join::tuple::test::does_not_leak_memory ... FAILED
test future::race::tuple::test::race_1 ... ok
test future::join::tuple::test::join_3 ... FAILED
test future::join::tuple::test::join_1 ... FAILED
test future::join::tuple::test::join_2 ... FAILED
test future::race::tuple::test::race_2 ... ok
test future::race::tuple::test::race_3 ... ok
test future::race::vec::test::no_fairness ... ok
test future::race_ok::array::test::all_err ... ok
test future::race_ok::array::test::all_ok ... ok
test future::race_ok::array::test::one_err ... ok
test future::race_ok::tuple::test::race_ok_1 ... ok
test future::race_ok::tuple::test::race_ok_2 ... ok
test future::race_ok::tuple::test::race_ok_3 ... ok
test future::race_ok::tuple::test::race_ok_err ... ok
test future::race_ok::vec::test::all_err ... ok
test future::race_ok::vec::test::all_ok ... ok
test future::race_ok::vec::test::one_err ... ok
test future::try_join::array::test::all_ok ... ok
test future::try_join::array::test::empty ... ok
test future::try_join::array::test::one_err ... ok
test future::try_join::tuple::test::all_ok ... FAILED
test future::try_join::tuple::test::does_not_leak_memory ... FAILED
test future::try_join::tuple::test::issue_135_resume_after_completion ... FAILED
test future::try_join::tuple::test::one_err ... ok
test future::try_join::vec::test::all_ok ... ok
test future::try_join::vec::test::empty ... ok
test future::try_join::vec::test::one_err ... ok
test stream::chain::array::tests::chain_3 ... ok
test stream::chain::tuple::tests::chain_3 ... ok
test stream::chain::vec::tests::chain_3 ... ok
test stream::merge::array::tests::merge_array_2x2 ... ok
test stream::merge::array::tests::merge_array_4 ... ok
test stream::merge::tuple::tests::merge_tuple_0 ... ok
test stream::merge::array::tests::merge_channels ... FAILED
test stream::merge::tuple::tests::merge_channels ... FAILED
test stream::merge::tuple::tests::merge_tuple_1 ... ok
test stream::merge::tuple::tests::merge_tuple_2 ... ok
test stream::merge::tuple::tests::merge_tuple_3 ... ok
test stream::merge::tuple::tests::merge_tuple_4 ... ok
test stream::merge::vec::tests::merge_vec_2x2 ... ok
test stream::merge::vec::tests::merge_vec_4 ... ok
test stream::stream_group::test::smoke ... ok
test stream::merge::vec::tests::merge_channels ... FAILED
test stream::zip::array::tests::zip_array_3 ... ok
test stream::zip::tuple::tests::zip_tuple_3 ... ok
test utils::poll_state::vec::tests::boxed_does_not_allocate_twice ... ok
test stream::zip::vec::tests::zip_array_3 ... ok
test utils::poll_state::vec::tests::type_size ... ok
test utils::wakers::vec::readiness_vec::test::resize ... ok

failures:

---- future::join::tuple::test::does_not_leak_memory stdout ----
thread 'future::join::tuple::test::does_not_leak_memory' panicked at 'assertion failed: *flag.borrow()', src/future/join/tuple.rs:367:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- future::join::tuple::test::join_3 stdout ----
thread 'future::join::tuple::test::join_3' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

---- future::join::tuple::test::join_1 stdout ----
thread 'future::join::tuple::test::join_1' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

---- future::join::tuple::test::join_2 stdout ----
thread 'future::join::tuple::test::join_2' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

---- future::try_join::tuple::test::all_ok stdout ----
thread 'future::try_join::tuple::test::all_ok' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

---- future::try_join::tuple::test::does_not_leak_memory stdout ----
thread 'future::try_join::tuple::test::does_not_leak_memory' panicked at 'assertion failed: *flag.borrow()', src/future/try_join/tuple.rs:398:13

---- future::try_join::tuple::test::issue_135_resume_after_completion stdout ----
thread 'future::try_join::tuple::test::issue_135_resume_after_completion' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

---- stream::merge::array::tests::merge_channels stdout ----
thread 'stream::merge::array::tests::merge_channels' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

---- stream::merge::tuple::tests::merge_channels stdout ----
thread 'stream::merge::tuple::tests::merge_channels' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

---- stream::merge::vec::tests::merge_channels stdout ----
thread 'stream::merge::vec::tests::merge_channels' panicked at 'Future should have reached a `Ready` state', src/utils/poll_state/array.rs:29:13

failures:
    future::join::tuple::test::does_not_leak_memory
    future::join::tuple::test::join_1
    future::join::tuple::test::join_2
    future::join::tuple::test::join_3
    future::try_join::tuple::test::all_ok
    future::try_join::tuple::test::does_not_leak_memory
    future::try_join::tuple::test::issue_135_resume_after_completion
    stream::merge::array::tests::merge_channels
    stream::merge::tuple::tests::merge_channels
    stream::merge::vec::tests::merge_channels

test result: FAILED. 49 passed; 10 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `--lib`

If we replace the try join of the tuple with a try join of an array, we trigger the same error:
use futures_concurrency::future::{Join, TryJoin};
use futures_core::Future;
use std::{future::ready, pin::Pin};
use tokio::time::{sleep, Duration};

pub type BoxFuture<'a, T> = Pin<Box<dyn Future<Output = T> + Send + 'a>>;

async fn process_not_fail() -> Result<Vec<i32>, ()> {
    sleep(Duration::from_millis(100)).await;
    Ok(vec![ready(1), ready(2)].join().await)
}

async fn process_fail() -> Result<Vec<i32>, ()> {
    Err(())
}

#[tokio::test]
async fn test() {
    let a: BoxFuture<'static, _> = Box::pin(process_fail());
    let b: BoxFuture<'static, _> = Box::pin(process_not_fail());
    let res = [a, b].try_join().await;
    assert!(res.is_err());
}

Ha, I found the bug. It turns out the error was in all of the implementations of TryJoin, not just the tuple one. Fixing it up for all impls and filing a patch now!


Ionic app-scripts build fails, source-map

Note: for support questions, please use one of these channels:
https://forum.ionicframework.com/
http://ionicworldwide.herokuapp.com/
Short description of the problem:
Build fails.
What behavior are you expecting?
It should work as expected. Had no problems yesterday.
Steps to reproduce:

Use Ionic 2.2.3
Ionic --serve

EDIT: Deleted node_modules and $npm install as suggested in #929 but still not working
insert any relevant code between the above and below backticks

**Which @ionic/app-scripts version are you using?**
<EMAIL_ADDRESS>
**Other information:** (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)

C:\project\node_modules\source-map\lib\source-node.js:115
        node.add(nextLine.substr(0, mapping.generatedColumn));
                         ^

TypeError: Cannot read property 'substr' of undefined
    at Function.<anonymous> (C:\project\node_modules\source-map\lib\source-node.js:115:26)
    at Array.forEach (native)
    at SourceMapConsumer_eachMapping [as eachMapping] (C:\project\node_modules\source-map\lib\source-map-consumer.js:155:14)
    at Function.SourceNode_fromStringWithSourceMap [as fromStringWithSourceMap] (C:\project\node_modules\source-map\lib\source-node.js:80:24)
    at SourceMapSource.node (C:\project\node_modules\webpack-sources\lib\SourceMapSource.js:42:20)
    at ReplaceSource.node (C:\project\node_modules\webpack-sources\lib\ReplaceSource.js:69:29)
    at CachedSource.node (C:\project\node_modules\webpack-sources\lib\CachedSource.js:12:23)
    at C:\Users\Tord\dev\industribyen\node_modules\webpack-sources\lib\ConcatSource.js:40:49
    at Array.map (native)
    at ConcatSource.node (C:\project\node_modules\webpack-sources\lib\ConcatSource.js:39:60)
npm ERR! code ELIFECYCLE

Hmmm, that seems strange. How can I recreate?
Thanks,
Dan

I had this issue!
Simple solution => only one component per file and it is solve
Keep me posted!

@tordnilsen did you have two components in one file when getting this error?


kubectl proxy appears to break WebSockets

There is a a little unclear https://github.com/kubernetes/kubernetes/issues/24482, but we seem to be affected by that.
We need to confirm whether it’s the kube proxy that’s broken and we cannot do anything, or there is something we can do on our end to make it work.

To reproduce, do this follow K8s Anywhere setup and deploy scope like this:
kubectl create -f https://gist.github.com/errordeveloper/9d9a995df05064ea3f600a0378de3aaf/raw/scope.json --validate=false

xref kubernetes#25126

@2opremio and I discussed this offline, and it looks like it’s not something we can fix soon, but I’d like to keep it open unless we would like to explicitly document the fact that Scope doesn't work with kubectl proxy.

I think there's little point on keeping this issue open when there's an upstream ticket already tracking it.

That's true, I created this in the process of figuring it out. However, if
we close it now, we should consider that it's referenced in Kubernetes
repo, closing it would indicate as if it's no longer a problem for us,
while still really is a problem.
On Wed, 4 May 2016, 15:53 Alfonso Acosta<EMAIL_ADDRESS>wrote:

I think there's little point on keeping this issue open when there's an
upstream ticket already tracking it.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/weaveworks/scope/issues/1427#issuecomment-216889977

Hi all, I am getting the same problem. I am not able to access the weave-scope live mode (communicates using web sockets). However, I am able to access pause mode (Plain http).
I am trying to access weave-scope using /api/v1/namespaces/weave/services/weave-scope-app/proxy/
Is this issue resolved yet? If not, then please provide me some pointers so that I can try to work on it.

@satyamz the issue has been fixed in Kubernetes 1.8 (see https://github.com/kubernetes/kubernetes/pull/49534). If you are using an older version of Kubernetes, please use kubectl port-foward (as describe in the docs).


Interested in merging back changed from my fork?

i made a fork because i could not get the flex server running on windows. mainly i injected the logger in some services and added log messages.
with the log outputs i fixed flex server to be able to run on windows.
https://gitlab.com/c33s-group/forks/flex-server

Thanks for your work. I'll look into it as soon as I can.


Update deprecated asserThat with MatcherAssert

This is a PR for issue 445, and the PR contains the following:

Updated the test dependencies in the androidlibrary_lib/build.gradle
Replaced the deprecated InstrumentationRegistry.getContext() with androidx.test.platform.app.InstrumentationRegistry.getInstrumentation().getTargetContext(); in PropertiesNonPrivilegedTest class
Updated the deprecated assertThat() with MatcherAssert() method call in AlertNProgressMsgFragmentMgerTest class
Handled possible NullPointerExceptions that might be thrown using Objects.requireNonNull() in both testAlertDialogIsCreated() and testProgressDialogIsCreated() methods in the AlertNProgressMsgFragmentMgerTest class

Screenshots of the test results

Unit test of testAlertDialogIsCreated method

Unit test of testProgressDialogIsCreated method

Integrated Test of the AlertNProgressMsgFragmentMgerTest

AndroidTest of AndroidLibrary

please remove the "colors.xml" and "theme.xml". These likely are from the UI update branches as they are part of the revised UI. We are not ready to move the changes in the revised UI into the other branches yet.

I have done that @wbrunette
Thank you

@Chinex-Boroja sorry for not being more clear. What I meant was remove the changes to the files "colors.xml" and "theme.xml" as the files still need to exist in their unchanged stated. Your current PR will remove them and they are needed for the code to work.

@Chinex-Boroja sorry for not being more clear. What I meant was remove the changes to the files "colors.xml" and "theme.xml" as the files still need to exist in their unchanged stated. Your current PR will remove them and they are needed for the code to work.

I have reverted the files and removed the changes. Kindly review again @wbrunette. Thank you

You can just put a link to the PR as your contribution.

You can just put a link to the PR as your contribution.

Thank you


New macro processing code for the Python client

This adds a new macro processor to the Python client

Supports customizing the macro expansion and un-expansion process
Emits additional warnings for common mistakes like having multiple macros mapped to the same expansion
Adds unit tests for macro expansion

Is AJ's last comment a techdebt which we can push forwards?

Yes.


Ethan: Watch fishingexposure.com

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

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

Approved by Makyen in Charcoal HQ


ip_configuration - enable_private_path_for_google_cloud_services

TL;DR
The parameter  "enable_private_path_for_google_cloud_services" under " ip_configuration" is not enabled in google module. Hence we are unable to enable it from terraform. When we enable it from console, terraform is overwriting the value to null. This parameter is available in terraform resource, but not available in the google module. When we try to add this parameter in lifecycle ignore changes, it is not accepting.  Error is "The block type name "lifecycle" is reserved for use by Terraform in a future version". Please advise.
Terraform Resources
resource "google_sql_database_instance" "instance" {
  provider = google-beta

  name             = "private-instance-${random_id.db_name_suffix.hex}"
  region           = "us-central1"
  database_version = "MYSQL_5_7"

  depends_on = [google_service_networking_connection.private_vpc_connection]

  settings {
    tier = "db-f1-micro"
    ip_configuration {
      ipv4_enabled                                  = false
      private_network                               = google_compute_network.private_network.id
      enable_private_path_for_google_cloud_services = true
    }
  }
}

Detailed design
Terraform plan when private path enabled from console

 ~ resource "google_sql_database_instance" "default" {
        id                             = "prsql-for-testing"
        name                           = "prsql-for-testing"
        # (14 unchanged attributes hidden)

      ~ settings {
            # (12 unchanged attributes hidden)

          ~ ip_configuration {
              - enable_private_path_for_google_cloud_services = true -> null
                # (3 unchanged attributes hidden)
            }

            # (15 unchanged blocks hidden)
        }

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Additional information
No response

Same issue here, this flag is not being recognized by terraform.

@ravisiddhu : Thanks for enabling the private path. It looks there is constrain that from CFT version 14.0.0 onwards minimum terraform provider version >= 1.3.0. But we are using terraform 0.13.5 and 1.2.0 version in our environment. Could you please advise how can we enable private path for terraform 0.13.5 and 1.2.0.

@ravisiddhu : Thanks for enabling the private path. It looks there is constrain that from CFT version 14.0.0 onwards minimum terraform provider version >= 1.3.0. But we are using terraform 0.13.5 and 1.2.0 version in our environment. Could you please advise how can we enable private path for terraform 0.13.5 and 1.2.0.

Can you please provide an update.


Missing hidden argument causes panic instead of error

As the title says:
use bpaf::Bpaf;

fn main() {
    let args = args().run();
    println!("{:#?}", args);
}

#[derive(Bpaf, Clone, Debug)]
#[bpaf(options)]
pub struct Args {
    #[bpaf(long)]
    foo: String,
}

Executing cargo run results in:
Error: expected `--foo=ARG`, pass `--help` for usage information
error: process didn't exit successfully: `target\debug\issue.exe` (exit code: 1)

However, changing #[bpaf(long)] to #[bpaf(hide, long)] and then executing cargo run results in:
thread 'main' panicked at C:\Users\vallentin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bpaf-0.9.9\src\error.rs:601:10:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `target\debug\issue.exe` (exit code: 101)

I still expected an error, but not a panic.
I think a hidden argument, should be hidden from the help text, but included in error messages. Maybe rephrasing a bit, and saying expected hidden `--foo=ARG` ... or something similar.

Ouch. Fixed locally, new error message is going to say "parser requires an extra flag, argument or parameter, but its name is hidden by the author". I might add an error into invariant check - required but hidden argument seems very bad UX.

I agree, I actually ran into it because of a "typo" in relation to the previous issue #344 I posted. I was doing something along the lines of #[bpaf(hide, env)], but then accidentally used field: T instead of field: Option<T>

Fixed in #349


introspectTextView doesn't working

Hi all,
I m trying to changed keyboardType or add toolbar button above keyboard but but closure never works... package version 0.3.1 Does anyone have an idea?

Implement a specific selector to resolve the issue.
import SwiftUI
import Introspect

#if canImport(AppKit)
import AppKit
#elseif canImport(UIKit)
import UIKit
#endif

extension View {
   #if canImport(AppKit)
    public func introspectTextView2(customize: @escaping (NSTextView) -> ()) -> some View {
        return inject(AppKitIntrospectionView(
            selector: { introspectionView in
                guard let viewHost = Introspect.findViewHost(from: introspectionView) else {
                    return nil
                }
                if let textView = Introspect.previousSibling(containing: NSTextView.self, from: viewHost) {
                    return textView
                }else if let superView = viewHost.superview {
                    //When there is a filter such as saturation() applied on the ancestors, it changes the hierarchy a bit, and we may find the scrollview like this instead
                    return Introspect.previousSibling(containing: NSTextView.self, from: superView)
                }
                return nil
            },
            customize: customize
        ))
    }
    #endif

    #if canImport(UIKit)
    public func introspectTextView2(customize: @escaping (UITextView) -> ()) -> some View {
        return inject(UIKitIntrospectionView(
            selector: { introspectionView in
                guard let viewHost = Introspect.findViewHost(from: introspectionView) else {
                    return nil
                }
                if let textView = Introspect.previousSibling(containing: UITextView.self, from: viewHost) {
                    return textView
                }else if let superView = viewHost.superview {
                    When there is a filter such as saturation() applied on the ancestors, it changes the hierarchy a bit, and we may find the scrollview like this instead
                    return Introspect.previousSibling(containing: UITextView.self, from: superView)
                }
                return nil
            },
            customize: customize
        ))
    }
  #endif
}

Hi @alperentoksoz,
If you're on Swift 5.7, the new module is a lot more reliable and you won't need to implement a custom selector for this.
import SwiftUIIntrospect

struct ContentView: View {
    @State var text = "Lorem ipsum"

    var body: some View {
        TextEditor(text: $text)
            #if os(iOS)
            .introspect(.textEditor, on: .iOS(.v14, .v15, .v16, .v17)) {
                print(type(of: $0)) // UITextView
            }
            #elseif os(macOS)
            .introspect(.textEditor, on: .macOS(.v11, .v12, .v13, .v14)) {
                print(type(of: $0)) // NSTextView
            }
            #endif
    }
}

Hi @davdroman, I tested your code and the following error occurred
Static property 'textEditor' requires the types 'PickerWithSegmentedStyleType' and 'TextEditorType' be equivalent

@Psli interesting. I have some questions if you don't mind, to help assess what's going on:

Which Xcode version are you running?
Which simulator are you running against?
Can you post a screenshot of the code and error message?

Thanks in advance.

@davdroman
MacBook Air M2
Xcode 14.3.1

@davdroman
It ran successfully. The issue earlier arose from my oversight in not removing a specific constraint.

@Psli good to know. I'll make sure to document better when a view type can't be introspected on a certain OS like in this case 👍

Improved docs as mentioned in #262.

Thanks! @davdroman, issue solved.