17548 Personal details push to page

Details

Updated dropdowns fields to be MenuItems which sends the user to another page to pick the option
Standarized the spaces between Inputs, created a new FormSpace component.
Fixed Issues

$ https://github.com/Expensify/App/issues/17548
PROPOSAL: https://github.com/Expensify/App/issues/17548#issuecomment-1521510794
Main PR where all started: https://github.com/Expensify/App/pull/18424
Tests

Errors on Empty State

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Save
All the Inputs even the Menu Items should show a required field error

Update the menu Country item (no USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select a new country (no USA)
The Country Item should show the selected Country
The State Input should be an input component
You can select new ones and the Menu Item should be updated

Update the menu Country item (USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select United State
Should send you back and the Country Item should show the selected Country
The State Input should be a Menu Item

Update the menu State item (USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select United State
The Country Item should show the selected Country
Clicking on the State menu should send you to a new Page
You can select any State
Should send you back to and show you the updated State

Autocomplete address

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Start filling the Address Line 1, a suggestion menu should shows up
Clicking on any address should autocomplete, menu items and inputs

[ ] Verify that no errors appear in the JS console

Offline tests

Errors on Empty State

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Save
All the Inputs even the Menu Items should show a required field error

Update the menu Country item (no USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select a new country (no USA)
The Country Item should show the selected Country
The State Input should be an input component
You can select new ones and the Menu Item should be updated

Update the menu Country item (USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select United State
Should send you back and the Country Item should show the selected Country
The State Input should be a Menu Item

Update the menu State item (USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select United State
The Country Item should show the selected Country
Clicking on the State menu should send you to a new Page
You can select any State
Should send you back to and show you the updated State

QA Steps

Errors on Empty State

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Save
All the Inputs even the Menu Items should show a required field error

Update the menu Country item (no USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select a new country (no USA)
The Country Item should show the selected Country
The State Input should be an input component
You can select new ones and the Menu Item should be updated

Update the menu Country item (USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select United State
Should send you back and the Country Item should show the selected Country
The State Input should be a Menu Item

Update the menu State item (USA)

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Click on Country item
Should send you to a new page, select United State
The Country Item should show the selected Country
Clicking on the State menu should send you to a new Page
You can select any State
Should send you back to and show you the updated State

Autocomplete address

Sign in using an User that doesn’t have address
Go to the Address Page (No inputs should be filled)
Start filling the Address Line 1, a suggestion menu should shows up
Clicking on any address should autocomplete, menu items and inputs

[ ] Verify you can update the Menu Items or you can go back to from the selection and the last selection should be in place
[ ] 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 / Chrome
[x] iOS / native
[x] iOS / 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 a new component is created I verified that:

[x] A similar component doesn’t exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] 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)
[x] 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)
[x] All JSX used for rendering exists in the render method
[x] 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

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

[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(themeColors.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 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.
[x] I have checked off every checkbox in the PR author checklist, including those that don’t apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/1676818/37d46501-c181-4785-9739-3db495eb1484
https://github.com/Expensify/App/assets/1676818/af685c64-b8c4-4f8d-b6d4-e83605949df1

Mobile Web - Chrome

https://github.com/Expensify/App/assets/1676818/d3b8bbcc-427f-4421-9cdf-0719eb107e5e

Mobile Web - Safari

https://github.com/Expensify/App/assets/1676818/c2865bfe-60c5-40ef-99f4-3219e9ffd77f

Desktop

https://github.com/Expensify/App/assets/1676818/5ddd44fc-95df-40e3-84ef-1c7dbe586511

iOS

https://github.com/Expensify/App/assets/1676818/c2cf2bbb-9fea-4998-b82b-6ef672f68d28

Android

https://github.com/Expensify/App/assets/1676818/312523aa-ebd2-44cb-9705-86432793763c

@0xmiroslav Sorry for the new PR creation, don't know why a signed commit was missing and trying to fix it the PR got closed with no commits

@0xmiroslav last comment from the other PR:
https://github.com/Expensify/App/pull/18424#issuecomment-1596907613

@0xmiroslav can I help with something else?
cc: @mountiny

@gedu Can you please include recordings on all the platforms?

@mountiny Uploaded the videos, is missing the iOS ones, I'm having some issues running it.
Variable binding in a condition requires an initializer in AirshipChannelProxy & AirshipContactProxy swift files

So I'm updating my xCode version

@mountiny I will need to upgrade my OS at least to Monterey 12.5 to use xcode 14.2, because downgrading to 13.2 didn't work,

@mountiny @0xmiroslav all videos are up

@cristipaval will be abel to handle this pr as a reviewer 🙇

I found a bug checking the bank flow, seems that after the navigation refactor something is broken, the state picker isn't getting rerender (adding bank manually) so I'm checking it

@0xmiroslav @mountiny updated
https://github.com/Expensify/App/assets/1676818/aabbf9e9-0a1a-4d24-82e6-a41188a00e7c

@0xmiroslav any updates?

@0xmiroslav can I help with something? so we can merge this PR?
cc: @mountiny

Lets really try to have this done tomorrow.

@0xmiroslav any updates?
cc: @mountiny

@0xmiroslav Updated
If we can review it as soon as possible, making it a priority
cc: @mountiny

At the end of video, country isn't updated to selected one and page (i.e. LHN) refreshes. I don't have constant reproducible step but this happens very often.
Screen.Recording.2023-07-07.at.11.48.32.AM.mov

seems like the whole app get refreshed, I'm not sure that the issue is from my implementation, seems more like a Navigation problem

There are some new merge conflicts @gedu

@gedu let us know when this is ready for a review again

Yes I will, @mountiny , it takes time, because the logic changed, components changed, I hope to have something today

@s77rt I think all the comments fixed
cc: @mountiny @0xmiroslav PR update ready for review

@s77rt @0xmiroslav Could you please do a new round of reviews?

I asked @gedu to bring the navigation storage proposal to Slack before we move on, its quite a big change to go ahead without broader exposure. I am not saying I dont like it, but we should be highlighting changes like this in Slack

@gedu Once Slack thread is created, tag us all please

Would it be okay to continue review here or is it better to hold for the slack discussion?

Passing parameters via urls does not seem as a good option. I just found this PR https://github.com/Expensify/App/pull/21792 that simplified the year picker logic a lot. Maybe we should follow the same approach? It may require some extra work but I think we will get better results and get rid of that useNavigationStorage hook.
Basically the idea is that the state picker and the country picker will become regular modals and not screens. They won't have their dedicated pages, they will be rendered on the same page. However this is not a true push to page approach. I don't think we need the real push to page after all. Using <Modal /> with type RIGHT_DOCKED seems just good enough from UX.

Basically the idea is that the state picker and the country picker will become regular modals and not screens. They won't have their dedicated pages, they will be rendered on the same page. However this is not a true push to page approach. I don't think we need the real push to page after all. Using  with type RIGHT_DOCKED seems just good enough from UX.

Yep I think we could take the same approach and let those components to be "fake pages" with no route

Slack thread created

@mountiny @s77rt PR updated
https://github.com/Expensify/App/assets/1676818/6ba607b6-07d8-4d72-9e72-9ac6b2e0537f
https://github.com/Expensify/App/assets/1676818/c38a2ca3-abe7-465c-a3b1-b81c6652d452

@gedu On the videos you shared, it seems like there are no animations when you close the modal, could we try to implement the same animation as when you click up

@s77rt Fixed

@gedu On the videos you shared, it seems like there are no animations when you close the modal, could we try to implement the same animation as when you click up

It is using the same component as YearPickerModal, seems that the animation doesn't work well when an item is selected, will try to check but seems that there are some re-renders when the value updates the Form. Will try to investigate a bit, but hope that isn't a big blocker

@gedu I dont think we have to block on this, however, we should make a follow up for someone to handle definitely. This PR is quite big and I understand you want to get it merged. if you would find how to improve this though, definitely add the fix here.

Definitely, I believe Margelo and also Callstack has been tasked to look at various performance improvements. Created issue here https://github.com/Expensify/App/issues/22996

@0xmiroslav @s77rt I believe this is ready for another look

Okay, the PR doesn't directly help with the BaseModal, but here is an interesting number.
Web, render whole app with a user's profile open: 243 commits, 2.5 seconds till last commit
Same condition, but with PR in place: 176 commits, 1.5 seconds till last commit

Interesting, thanks for sharing!
@gedu could you please resolve the merge conflicts?

@mountiny Updated

@s77rt Updated

The space around the menu item does not feel even

The arrows are not aligned

Responded, almost there!
Linter is failing

The arrows are not aligned

That could be from the dropdown, the calendar is aligned with the StatePicker item

The space around the menu item does not feel even

Updated the spacing

@gedu Linter is still failing
@s77rt able to give it another look?

@mountiny I have added some comments on unresolved changes, pretty close in getting this done. All unresolved comments:

https://github.com/Expensify/App/pull/21049#discussion_r1269310662: simple change
https://github.com/Expensify/App/pull/21049#discussion_r1268428472: still not sure, should we move on?
https://github.com/Expensify/App/pull/21049#discussion_r1269645419: simple change
https://github.com/Expensify/App/pull/21049#discussion_r1268347420: still a bug, should we handle this later?
https://github.com/Expensify/App/pull/21049#discussion_r1269652305: simple change
https://github.com/Expensify/App/pull/21049#issuecomment-1642507918: arrow misalignememnt, I guess we can handle this later, does not seem like a regression

@s77rt @mountiny fixed the minor comments, the bug, and the alignment I don't think are related to this feature, should be handled in another issue + PR.
This PR will have 4 months and I'm taking the whole week off, so any conflicts or minor code changes will be solved next week

I will be leaving some instructions to my teammates just in case

@gedu Can you assign this to someone else? I think most of the work is already done, just need to fix the bug and test once again
cc @mountiny

@s77rt updated comments, I that bug comes from the Form, it doesn't update the errors object, so it keeps passing the old data instead of the updated one, so I think should be handled separately and not part of this feature.
@mountiny

@s77rt if you have confirmed this is a bug predating this PR, I thin kwe we can go ahead with a merge and resolve any pending issue separately
@gedu thanks for addressing the comments

Thanks I agree both are bugs and I will ask who can take over this one while Edu is ooo

Hello 🙂 I can take this over

@koko57 thank you! Let @s77rt know if you have any questions

@s77rt I couldn't recreate the bug with the wrong country the way you did, but there is some problem with it indeed - when changing the address country doesn't change (also in the URL). But I think fixing this problem should fix the issue you've encountered as well.
I've also noticed strange animation when navigating to the State or Country selector page. It doesn't happen on the other pages. Should it be fixed here?
https://github.com/Expensify/App/assets/28020445/df7ffdb2-7038-403a-a681-0a98881d86b5

@koko57 Please use the auto complete field i.e addressLine1 to select an address. The country value will change but going to the modal will show the previously selected country.
I'm not sure about the animation, I didn't notice that, need to check again, if it's something introduced by this PR we should probably fix it - also you can refer to the year selection modal (DOB page), they should have same animation

@s77rt thanks! I'll take a look at the DOB page.
Yes, I tried to reproduce the way you did, but for me, it behaves like this:
https://github.com/Expensify/App/assets/28020445/4a153dd1-0f2a-4bbd-a00f-ef5513196b14
https://github.com/Expensify/App/assets/28020445/de22a052-0ebb-4377-a784-8d496a0f8105

@koko57 I'm pretty sure you are not at the latest commit. Please double check that. For instance we are no longer using a custom year picker page (the url should not change and there should be no query parameters for the country or state)

@s77rt got it now. Thanks! I was on a similarly named branch

@s77rt Ok, I've just pushed the changes - the searchValue wasn't updated accordingly to the current country value. If there's anything more to take care of, just let me know 🙂

@koko57 Thanks for the quick fix. I added a comment for a simple change. We need to fix the second bug highlighted here https://github.com/Expensify/App/pull/21049#issuecomment-1648207479 (about the spacing)

@s77rt ofc I'll take a look at the comment.
About the space - still something's wrong with it? I've added an extra space between the Country and State picker in this commit https://github.com/Expensify/App/pull/21049/commits/d063f553ec0cdff83918c5a5b2b2805bbd28f8f5
Should be something like this now:

@koko57 Ah sorry I missed that commit. I guess we can move ahead with that.

@s77rt I've just applied and pushed the changes you requested - I guess it's now ready for the review 🙂

@koko57 Thanks for the quick updates. The code looks good. I will test shortly and hopefully get this merged today.

Bug: Errors on Empty State test is failing

All the Inputs even the Menu Items should show a required field error

The required field error is only set on addressLine1 and city Expected to see the error on 4 fields

On this one: I saw another problem with the validation - https://github.com/Expensify/App/pull/21049#discussion_r1268347420 - shouldn't we address all the validation problems in a follow-up issue (as also asked here? [the fourth issue link comment]). But ofc I can handle this now if you decide so.

Bug?: You can select a state even when no country is selected

Not a bug IMHO - maybe it's something to be discussed in terms of the design. I don't think we should disable the State Menu item - maybe we should hide this field before the country is selected? Or make the input a default field for the State?

Reviewer Checklist

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

[X] I verified the steps for local testing are in the Tests section
[X] I verified the steps for Staging and/or Production testing are in the QA steps section
[X] 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)
[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 checked that screenshots or videos are included for tests on all platforms
[X] I included screenshots or videos for tests on all platforms
[X] I verified tests pass on all platforms & I tested again on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] 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
[X] I verified proper code patterns were followed (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] 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 verified that this PR follows the guidelines as stated in the Review Guidelines
[X] 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)
[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] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] 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)
[X] 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)
[X] All JSX used for rendering exists in the render method
[X] 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

[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(themeColors.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 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.
[X] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/16493223/612d182e-63d0-4549-aaca-ba2051841646

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

thanks everyone, asked about it in Slack https://expensify.slack.com/archives/C01GTK53T8Q/p1690375860010059

given this already exists in the App, I think we can safely proceed with this

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

🚀 Deployed to staging by https://github.com/mountiny in version: 1.3.46-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

👋🏼 I have a deploy blocker that I think is related to this PR: https://github.com/Expensify/App/issues/23725

🚀 Deployed to staging by https://github.com/mountiny in version: 1.3.47-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 1.3.46-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

This caused a "regression?" https://github.com/Expensify/App/issues/23768 After opening the modal we should always set the search text to the current selected value. For App consistency I think we consider this as a bug.

@s77rt yeah, my bad I haven't checked that scenario. Should I handle it or you're going with the accepted https://github.com/Expensify/App/issues/23768#issuecomment-1655803335?

@koko57 I think we will be going with the contributor as he got assigned already.

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.47-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

We missed to make change in AddDebitCardPage which causes this regression and was fixed by this PR.


[CWS] do not resolve new fields in functional test field collector

What does this PR do?
When collecting fields values in the functional tests event collector, we might end up resolving fields that were not resolved during regular evaluation which is sub-optimal and could hide bugs (for example hashing files that were not hashed in the evaluation).
This PR tracks the fields that are resolved, and uses this to skip the resolution of fields that have not been evaluated.
This is a complete no-op outside of functional tests.
this reverts https://github.com/DataDog/datadog-agent/pull/31268
Motivation
Describe how to test/QA your changes
This is test debugging infrastructure.
Possible Drawbacks / Trade-offs
Additional Notes

Your PR should probably revert #31268 entirely

/merge

/gitlab resync-job-status

/gitlab resync-job-status


temp files for mport audit

Looks like mport audit is leaving temp files around in some cases in /tmp.  Fix the code to clean up after itself.  (probably error or early termination cases?)

There are now unlink on all obvious error paths with the exception of someone doing a control + c

added a feature to the mport clean command to remove them also.


document all color options

There is for some reason no documentation, of which color options are available.

Can you clarify what you mean by that? The color system is documented here: https://docs.rs/console/0.7.5/console/

When I create a progressbar I'd look in the documentation of this crate (obviously) for color options and not in a separate crate?!😐

That’s why I want to know what you mean with color options. Which colorization documentation are you after?

Oh, by color options, I mean what colors can be used to change the color of the progressbar (like "red", "green", "yellow" ....)


Add pip cache

This PR adds pip cache (see the official docs). This helps CI to reduce building time of bdist_wheel for theano, subprocess32, pyyaml, pytest-pep8 pytest-cache, termcolor, gast, absl-py.

Success on Travis but reopened to test the caching effect.

Heavy cache size but slight improvements of build times:

The install.10: 15.06s -> 8.73s,
The install.15: 4.40s -> 3.19s,
The install.16: 13.90s -> 11.14s,
The install.17: 7.55s -> 3.62s,
The cache size: 193.94MB -> 1978.99MB (10x).

This PR needs to be revised...

It also takes a bit of time to download the cache (at the start of the build) it's important to measure and report this speed decrease I think (decrease since the cache is going to be bigger).

@gabrieldemarmiesse, You are right. Now it looks about 11 seconds. I'll try another approach.

Moved to #11128.


[Bug] Fix onboarding check for UITests

Moved test for isOnboarded to func scene(_ scene: UIScene, willConnectTo _: UISceneSession, options _: UIScene.ConnectionOptions), setting the store.isOnboarded value to the UserDefaults value passed through from the UITest

Changes already in develop. GitHub seems to have internal issues at the moment


ODataQueryOptions and Swagger UI

Related to #599
If I use ODataQueryOptions as an action parameter, the swagger doc gets very verbose:

[EnableQuery]
[HttpGet]
public IQueryable<Model> Get(ODataQueryOptions<Model> options) {}

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers().RequireAuthorization();
    endpoints.EnableDependencyInjection();
    endpoints.Select().Filter().OrderBy().MaxTop(100).Count();
});

<PackageReference Include="Microsoft.AspNetCore.OData" Version="7.5.7" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.1.2" />

Same here. I've been trying to solve this for weeks.
Also, all OData properties appear in the "options" parameter, slowing the page rendering:

[HttpGet]
public async IQueryable<Page> Get(ODataQueryOptions<Page> options) {}

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers().RequireAuthorization();
    endpoints.EnableDependencyInjection();
    endpoints.Select().OrderBy().Filter();
});

<PackageReference Include="Microsoft.AspNetCore.OData" Version="7.5.7" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.0.7" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="6.0.7" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.0.7" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.0.7" />

I made a minimal repro of the problem: ODataIssue559.
Same problem as 559 currently closed.

@davidebriscese Thanks for the repro; it really helps.
It took less time that I thought; I missed something obvious. I noticed that both of you are trying to use part of OData. I see you're using ODataOptions without actually using an ODataController or - more specifically - ODataRouting. In the current state of the universe, I'll just come out and say - that's not supported. That might be something that could be supported in the future. I feel like at least one other person has asked for this in the past.
There's a bunch of assumptions and searching for things related to OData. I expect that most, if not all, of that will fall down if things are only partially wired up. The OData libraries offer virtually nothing in the API Explorer space so getting anything to work is a lot of work. You might, just might, get what you want though the query options conventions builder as is or, perhaps, with a few modifications. It's uncharted water.
There was a myriad of issues in the repo that prevented it from working (in no particular order):

No ODataController or [ODataRouting]
Entities did have a key (ex: Id)
Response didn't include entities
You need services.AddODataApiExplorer not just services.AddVersionedApiExplorer (which is where query option support comes from)
You need to configure one or more entity models
You need to map an OData route

I'm aware that it is possible (and sometimes arguably preferable) to use vanilla routing with parts of OData using only query options with query composition. That should even work with API Versioning. Making that particular combination work with the API Explorer too - not so much; at least, not yet.
For your convenience, here's the working example echoed back with the required changes:
559-739-Working.zip
I hope that helps.

@davidebriscese Thanks for the repro; it really helps.
It took less time that I thought; I missed something obvious. I noticed that both of you are trying to use part of OData. I see you're using ODataOptions without actually using an ODataController or - more specifically - ODataRouting. In the current state of the universe, I'll just come out and say - that's not supported. That might be something that could be supported in the future. I feel like at least one other person has asked for this in the past.
There's a bunch of assumptions and searching for things related to OData. I expect that most, if not all, of that will fall down if things are only partially wired up. The OData libraries offer virtually nothing in the API Explorer space so getting anything to work is a lot of work. You might, just might, get what you want though the query options conventions builder as is or, perhaps, with a few modifications. It's uncharted water.
There was a myriad of issues in the repo that prevented it from working (in no particular order):

No ODataController or [ODataRouting]
Entities did have a key (ex: Id)
Response didn't include entities
You need services.AddODataApiExplorer not just services.AddVersionedApiExplorer (which is where query option support comes from)
You need to configure one or more entity models
You need to map an OData route

I'm aware that it is possible (and sometimes arguably preferable) to use vanilla routing with parts of OData using only query options with query composition. That should even work with API Versioning. Making that particular combination work with the API Explorer too - not so much; at least, not yet.
For your convenience, here's the working example echoed back with the required changes:
559-739-Working.zip
I hope that helps.

Any ideas how to get this working with version 8.0.x of Microsoft.AspNetCore.OData? That "upgrade" has been impossible for me to reconcile.

@HuntJason it simply not possible - currently. OData 8.0+ is not yet supported. There's a much longer discussion about this in #677. Unfortunately, the OData team has pulled the rug out from under me again and it's effectively a pretty significant rewrite of a number of pieces - unfortunately. They have a team, but I'm just one guy. Despite my efforts to coordinate more smoothly with them, there seems to be no formal effort or desire to align. I am getting close to burning down the backlog of open issues. Once that is done, I'll be able to focus on lighting up support for 8.0. Thanks for your patience.

Its disappointing that the OData team does not take into consideration the Versioning and Swashbuckle (Swagger/OpenAPI) teams. It would seem they are linked technologies and deserve coordinated releases, samples, and documentation for us plebs to follow along. Versioning, OData, and OpenAPI spec would seem to me to be fairly standard things to be considered all together or, at the least, coordinated.
I'm not given much hope that this relationship will change either. The "The Future of OData" section at the bottom of Hassan Habib's article Up & Running w/ OData in ASP.NET 6 leads me to believe this is just a train on the tracks without consideration for these other, reliant technologies.

@HuntJason indeed, it's unfortunate. I know some of the contacts, but discussions and feedback seem to go in one ear and out the other. I guess some communication channel is better than none. As soon as there is something feasible for 8.0, there will be an announcement. Thanks again for your patience.

First off, thank you so much for the 559-739.zip sample.
I can only seem to get the Select, Filter, OrderBy, and Count to show up in Swagger in the sample. What I need, in addition, is the Top and Skip (for pagination). Any ideas how to get that showing?

First off, thank you so much for the 559-739.zip sample.
I can only seem to get the Select, Filter, OrderBy, and Count to show up in Swagger in the sample. What I need, in addition, is the Top and Skip (for pagination). Any ideas how to get that showing?

Figured this from OData Query Options documentation.

Has anyone been able to figure out a workaround? This generates a crazily large schema file that takes so long for me to import into tools like Insomina, etc. I tried manually removing a lot of schemas based on the class name containing "Odata", but I mean it pulls in HttpContext and everything else.

@sjd2021 as has now be flushed out (I think), I suspect you are using only part of OData. While it is possible for that to work from a pure API perspective, it doesn't [currently] work for the API Explorer, which is already not intrinsically supported by OData. This happens because OData adds many services (ex: model binders, etc) and other options that the API Explorer extensions use to explore your API. Much of that is highly dependent (as should be expected) on OData's routing, conventions, etc. While it is possible to create an API that deviates from that, the API Explorer extensions for API Versioning simply doesn't understand that. Unfortunately, the only feasible alternative is to use all of OData or build up the documentation yourself.
If you have a repo, I can probably help confirm the behavior if you're unsure.

public async Task<ActionResult<PagedResult<Things>>> GetThings(ODataQueryOptions<Things> options)
That's accurate. Above is the signature of my list-based endpoints for which odata works amazingly, and this is the only place I reference it aside from applying the filter. I only use the filter, order, skip, and top parameters so I'm able to add those as query string parameters in a single OperationFilter class so everything works seamlessly in all of the many tools we use which leverage the generated Open API doc. I keep experimenting with schema filters, etc. but can't get the right combination to rip out everything that this one class seems to be adding. It's not your problem to solve though. This makes sense to me.

Any update on this?

@Criperum which update are you looking for? If you're using part of the OData stack and trying combine it with the API Explorer, it will not work - today. I'm putting together a roadmap for the next major release and supporting OData query options in this manner will be added as an enhancement. Admittedly, this will be one of the lower priority items and I'm not even entirely sure how feasible it is to implement - yet. Several people have asked for this feature, so it's something I want to explore.
If you're using the full OData stack with the API Explorer and are still encountering this issue, then a repro will be helpful. I've been  unable to recreate the scenario under those conditions.

This thread has gone dark. Thank you for all the feedback and discussion. 6.0 has been officially released and contains support for using only some of OData. The some OData OpenAPI example demonstrates everything working together with Swashbuckle.
If something else has been missed, I'm more than willing to continue the discussion or reopen the issue.

Literally WHY isn't the OData team working to ensure that their product works with OpenAPI?
https://github.com/OData/AspNetCoreOData/issues/757

@HuntJason I wish I could give you an answer. I've asked the same question many times. There are several (unofficial) reasons I can speculate on:

It's not a priority (given team size, capacity, and workload)
EDMX and the $metadata endpoint has been the way of documenting and generating clients years before Swagger/OpenAPI
There is a built-in EDM-to-Swagger converter, but it only scratches at what could/should be there
There is a new, experimental OData library that attempts to more closely pair with OpenAPI
a. I haven't used it so I don't know all the gaps
b. I do know it expects and requires an EDM to produce anything (which is a dead stick for those using partial OData).

If there is a specific scenario related to OData + API Versioning + OpenAPI, I'm happy to help or provide some guidance. The whole reason I created this functionality is because it doesn't exist in OData. I've even publicly stated in their repo that I would consider taking on and driving an effort to extract the generic, non-versioned aspects of the support I have into something for all of OData. I won't even move an inch on that until there is a commitment from the team. So far it's been nothing but 🦗 🦗 🦗 on that topic.

@commonsensesoftware Thank you!
The thread I had before contains the example replicates the issue I am having:
public IActionResult Get(ODataQueryOptions<Account> queryOptions)
When you run their ODataRoutingSample and open the swagger page, you cannot execute the Account's get method from the SwaggerUI.

I can't speak to what the OData team's examples do or don't support. If you want to see it working with API Versioning and OData query options in OpenAPI, then you can follow one of the provided E2E examples:

OData OpenAPI - full OData stack with OpenAPI
Partial OData OpenAPI - vanilla API with partial OData query support and OpenAPI

If you want a solution without API Versioning, I don't have a good answer for you I'm afraid.

@Schinwinkwinsky [FromServices] helped, thanks.

Just use [FromServices]
[HttpGet]
public async Task<IActionResult> GetAllItems([FromServices] ODataQueryOptions options, CancellationToken cancellationToken)
{
   ...
}

this still seems to not remove the schemas from the swagger UI though !

@kuldeepGDI can you clarify what you mean by the schemas. Schemas are the very thing that OpenAPI shows.  Should this be the case, there's a 99% chance you have not followed the Partial OData OpenAPI example. In order for API Versioning to work its magic, it needs some hints that at least some of OData is involved. The example shows what you need to do and a working example.

@kuldeepGDI can you clarify what you mean by the schemas. Schemas are the very thing that OpenAPI shows.  Should this be the case, there's a 99% chance you have not followed the Partial OData OpenAPI example. In order for API Versioning to work its magic, it needs some hints that at least some of OData is involved. The example shows what you need to do and a working example.

Yes that is what i meant, Yes i cloned the repo today, and will have a look at it tomorrow. I thought that only [FromServices] is enough :) but i get it now. Thanks for quick reply :)

@kuldeepGDI can you clarify what you mean by the schemas. Schemas are the very thing that OpenAPI shows.  Should this be the case, there's a 99% chance you have not followed the Partial OData OpenAPI example. In order for API Versioning to work its magic, it needs some hints that at least some of OData is involved. The example shows what you need to do and a working example.

Yes that is what i meant, Yes i cloned the repo today, and will have a look at it tomorrow. I thought that only [FromServices] is enough :) but i get it now. Thanks for quick reply :)

So what worked for me is to use combination of AddApiVersioning() and [FromServices], However, the example that we have in partial OData repo, uses AddODataApiExplorer, where I can configure controllers in callbacks, however, we do not have ID fields in atleast some of the entities as they are DTOs, and swagger UI can not load as it complains of that. I suspect this is expected via OData standard. So in conclusion, I was managed to get rid of these errors, however, the whole wiring logic still requires some understanding, and I would need to dig into the code and get better understanding with OData specific functionalities !

@kuldeepGDI some level of understanding of OData's particulars are, unfortunately, required.  Yes, you need AddODataApiExplorer to do anything with OData and the API Explorer, even partial OData. Most of the information needed and derived for the API Explorer comes from an EDM. When you aren't using OData, there is no EDM to derive from, but an ephemeral EDM is generated just for the API Explorer. Similarly, there is no way to know or understand what partial OData features are you are supporting in your controller since all of that logic is imperative. There's not really a way to configure this other than via conventions. You can, however, create custom conventions if you have a standard convention to apply to all or some of your controllers. Even though you aren't using OData, IModelConfiguration is still supported for the purposes of generating an EDM and the models used by the API Explorer. If you have a model that does not have an identity (e.g. no Id property), this is called a Complex Object (vs an Entity) in OData parlance. If you configure things this way, it should bridge the gap. I wish I had better answers about how to marry these two things together. I'm always open to new ideas about how that might be achieved. Hopefully, that clarifies things a bit and puts you down the path of success.


Another LPG tank level option?

Hi Magnus
I am still looking for a way for your project to include gas tank level monitoring.
This sensor uses BLE
https://www.mopekaiot.com/product/mopeka-pro-sonar-tank-monitor
and they are well priced....
And there is python code available:
https://github.com/spbrogan/mopeka_pro_check
I know there is a separate HA integration for this device (requiring a ESPHome device), but perhaps you are interested in including it in your code so everything could run on one (RP2040) board?
For my own use case, I would like to add a gas level monitor (just a warning LED) to your micropython code I am using to control the Truma heater. Actually, I am not sure micropython includes the RPi BLE SDK yet?

Hi Magnus Thank you - I will let you know if I make any progress…..


Angular 6.0.1 its not working

Issue description
Steps to reproduce and a minimal demo of the problem
_Use https://plnkr.co or similar -- try this template as a starting point: http://plnkr.co/edit/YX7W20?p=preview
What steps should we try in your demo to see the problem?
Current behavior
Expected/desired behavior
angular2 & angular-google-maps version
Other information

Same as
https://github.com/SebastianM/angular-google-maps/issues/1384
Covered by
https://github.com/SebastianM/angular-google-maps/pulls

Duplicate


Bug | Language Filters are sometimes not visible

This is probably happening because the lang-filter api is called before the repo api.
The repo api sets up the store. But since lang-filter API tries fetching from store before that, it returns empty data.

I'll try to look into this

@vverma022 - Found the root cause of the issue ?

This is fixed as part of commit


Trouble running Hawck on openSUSE

I'm finalising the package and after a clean reinstallation I've noticed that hawck-user-setup hangs.
I don't understand why it checks not to be run as root only to try and run usermod which is usually in sbin.
Second and far less important question, why is the .desktop file not being installed into applications?

Ok, I believe this patch does the trick for me. Do you think it would be compatble with arch and everything else?
Also I plan on having Hawck included in the next openSUSE Leap release, which tests do you recommend I run before submitting a final package?

Ok, I believe this patch does the trick for me. Do you think it would be compatble with arch and everything else?
Also I plan on having Hawck included in the next openSUSE Leap release, which tests do you recommend I run before submitting a final package?

Sorry, the second part of the patch is incredibly silly:/

Sorry, the second part of the patch is incredibly silly:/

@lgbaldoni usermod isn't placed in sbin on all distros, we could do this:
USERMOD="$(command -v usermod)"
if ! command -v usermod; then
    ## For openSUSE
    USERMOD=/usr/sbin/usermod
fi

if ! [ -f "$USERMOD" ]; then
    echo "Unable to find usermod binary"
    exit 1
fi

if ! pkexec "$USERMOD" -aG hawck-input-share "$(whoami)"; then
     notify-send --icon=hawck \
             --app-name="Hawck" \
             "Unable to authenticate, is a polkit authentication agent running?"
     echo "Do you have a PolicyKit Authentication agent running?"
     ## TODO: Write document detailing how to run the polkit daemon, depending on distro
     echo "See: https://github.com/snyball/path/to/document"
fi

You could also override $PATH but I think it's OK to just special-case usermod in this case.
Also, it is currently using pkexec because of the original plan to have it executed non-interactively from hawck-macrod, (where sudo won't work because we don't have a terminal.) But I've procrastinated on that simple change because people sometimes neither have a working polkit nor notification daemon running and would then be in the blind about why it doesn't work.
The script should probably just be rewritten to use sudo + echo when run with no arguments, and pkexec + notify-send when executed with a non-interactive command-line argument (which will be given when hawck-macrod runs it.)
For now, I think it should look like this:
USERMOD="$(command -v usermod)"
if ! command -v usermod; then
    ## For openSUSE
    USERMOD=/usr/sbin/usermod
fi

if ! [ -f "$USERMOD" ]; then
    echo "Unable to find usermod binary"
    exit 1
fi

sudo "$USERMOD" -aG hawck-input-share "$(whoami)"

@lgbaldoni usermod isn't placed in sbin on all distros, we could do this:
USERMOD="$(command -v usermod)"
if ! command -v usermod; then
    ## For openSUSE
    USERMOD=/usr/sbin/usermod
fi

if ! [ -f "$USERMOD" ]; then
    echo "Unable to find usermod binary"
    exit 1
fi

if ! pkexec "$USERMOD" -aG hawck-input-share "$(whoami)"; then
     notify-send --icon=hawck \
             --app-name="Hawck" \
             "Unable to authenticate, is a polkit authentication agent running?"
     echo "Do you have a PolicyKit Authentication agent running?"
     ## TODO: Write document detailing how to run the polkit daemon, depending on distro
     echo "See: https://github.com/snyball/path/to/document"
fi

You could also override $PATH but I think it's OK to just special-case usermod in this case.
Also, it is currently using pkexec because of the original plan to have it executed non-interactively from hawck-macrod, (where sudo won't work because we don't have a terminal.) But I've procrastinated on that simple change because people sometimes neither have a working polkit nor notification daemon running and would then be in the blind about why it doesn't work.
The script should probably just be rewritten to use sudo + echo when run with no arguments, and pkexec + notify-send when executed with a non-interactive command-line argument (which will be given when hawck-macrod runs it.)
For now, I think it should look like this:
USERMOD="$(command -v usermod)"
if ! command -v usermod; then
    ## For openSUSE
    USERMOD=/usr/sbin/usermod
fi

if ! [ -f "$USERMOD" ]; then
    echo "Unable to find usermod binary"
    exit 1
fi

sudo "$USERMOD" -aG hawck-input-share "$(whoami)"

@lgbaldoni As far as tests go, Hawck unfortunately doesn't have a good full-system automated testing method. But you could try running the examples from the README to see if they work with the openSUSE package.

@lgbaldoni As far as tests go, Hawck unfortunately doesn't have a good full-system automated testing method. But you could try running the examples from the README to see if they work with the openSUSE package.

@lgbaldoni  Hold up, is usermod placed in sbin on all distros? I had assumed it wasn't but, it seems to be in both /usr/bin and /usr/sbin on Arch. So your original patch is fine actually.

@lgbaldoni  Hold up, is usermod placed in sbin on all distros? I had assumed it wasn't but, it seems to be in both /usr/bin and /usr/sbin on Arch. So your original patch is fine actually.

Debian, Fedora and Ubuntu all have usermod in /usr/sbin.
polkit daemons are a different story, I fear. On my system (openSUSE Leap 15.2) I see
/usr/lib64/libexec/polkit-kde-authentication-agent-1
/usr/lib/polkit-gnome-authentication-agent-1
/usr/lib/polkit-1/polkitd
/usr/lib/polkit-1/polkit-agent-helper-1

On openSUSE Tumbleweed I see
/usr/lib64/libexec/polkit-kde-authentication-agent-1:
/usr/libexec/polkit-1/polkit-agent-helper-1:
/usr/libexec/polkit-1/polkitd:

On Debian stable:
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/policykit-1/polkitd
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1

On Fedora stable:
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/lib/polkit-1/polkitd
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1

So, I don't think nudging the daemon directly is going to be a viable option :smirk:
I admit I know very little about the matter, but wouldn't sudo systemctl restart polkit be a universal option?

Debian, Fedora and Ubuntu all have usermod in /usr/sbin.
polkit daemons are a different story, I fear. On my system (openSUSE Leap 15.2) I see
/usr/lib64/libexec/polkit-kde-authentication-agent-1
/usr/lib/polkit-gnome-authentication-agent-1
/usr/lib/polkit-1/polkitd
/usr/lib/polkit-1/polkit-agent-helper-1

On openSUSE Tumbleweed I see
/usr/lib64/libexec/polkit-kde-authentication-agent-1:
/usr/libexec/polkit-1/polkit-agent-helper-1:
/usr/libexec/polkit-1/polkitd:

On Debian stable:
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/policykit-1/polkitd
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1

On Fedora stable:
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/lib/polkit-1/polkitd
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1

So, I don't think nudging the daemon directly is going to be a viable option :smirk:
I admit I know very little about the matter, but wouldn't sudo systemctl restart polkit be a universal option?

@lgbaldoni A hardcoded /usr/sbin path won't work for nix/guix though, and I'm planning on packaging Hawck for guix.
So it should try finding it in $PATH first and then falling back to the /usr/sbin/usermod path.
As for the polkit stuff, we can drop it for now and use sudo instead. Then I'll rewrite the script to also take a noninteractive option later to have it executed from hawck-macrod.  We can assume that sudo is in $PATH.

@lgbaldoni A hardcoded /usr/sbin path won't work for nix/guix though, and I'm planning on packaging Hawck for guix.
So it should try finding it in $PATH first and then falling back to the /usr/sbin/usermod path.
As for the polkit stuff, we can drop it for now and use sudo instead. Then I'll rewrite the script to also take a noninteractive option later to have it executed from hawck-macrod.  We can assume that sudo is in $PATH.

The trouble with command -v is that it also returns aliases.
How about USERMOD="$(which usermod 2>/dev/null)" instead ?

The trouble with command -v is that it also returns aliases.
How about USERMOD="$(which usermod 2>/dev/null)" instead ?

I don't think the file contains any bashisms, so we could also just make it run with #!/bin/sh (the which command is ubiquitus but not standardized.) Then we don't have to worry about any aliases.

I don't think the file contains any bashisms, so we could also just make it run with #!/bin/sh (the which command is ubiquitus but not standardized.) Then we don't have to worry about any aliases.

I think I'll just settle with this one to end the bikeshedding:
if ! groups | tr " " "\n" | grep "^hawck-input-share\$"; then
    SBIN_USERMOD=/usr/sbin/usermod
    USERMOD=usermod
    if ! command -v "$USERMOD" && [ -f "$SBIN_USERMOD" ]; then
        USERMOD="$SBIN_USERMOD"
    else
        echo "Unable to locate usermod."
        exit 1
    fi
    sudo "$USERMOD" -aG hawck-input-share "$(whoami)"
fi

I think I'll just settle with this one to end the bikeshedding:
if ! groups | tr " " "\n" | grep "^hawck-input-share\$"; then
    SBIN_USERMOD=/usr/sbin/usermod
    USERMOD=usermod
    if ! command -v "$USERMOD" && [ -f "$SBIN_USERMOD" ]; then
        USERMOD="$SBIN_USERMOD"
    else
        echo "Unable to locate usermod."
        exit 1
    fi
    sudo "$USERMOD" -aG hawck-input-share "$(whoami)"
fi

Resolved as of dce518ee4d92f9beca4b022730e0f2024d2cecb5

Resolved as of dce518ee4d92f9beca4b022730e0f2024d2cecb5

Still not done.
bin/hawck-git/hawck-git.install contains groupadd hawck-input-share, but hawck-*.service want to run the daemons with the hawck-input group. So, which one is it?

Still not done.
bin/hawck-git/hawck-git.install contains groupadd hawck-input-share, but hawck-*.service want to run the daemons with the hawck-input group. So, which one is it?

@lgbaldoni The daemon runs as the hawck-input user, both the desktop user and the hawck-input user is a member of the hawck-input-share group for UNIX socket communication.

@lgbaldoni The daemon runs as the hawck-input user, both the desktop user and the hawck-input user is a member of the hawck-input-share group for UNIX socket communication.

TLDR: It runs as the hawck-input user and group.

How can this work then?

TLDR: It runs as the hawck-input user and group.

How can this work then?

Let me see if I understand correctly:
the user hawck-input must belong to the hawck-input, hawck-input-share and uinput groups, whereas the desktop user only to hawck-input-share, correct?
If so, this is not reflected in hawck-git.install.

Let me see if I understand correctly:
the user hawck-input must belong to the hawck-input, hawck-input-share and uinput groups, whereas the desktop user only to hawck-input-share, correct?
If so, this is not reflected in hawck-git.install.

@lgbaldoni Pretty much but also input.
Can you post a diff showing what you expect post_install should do?

@lgbaldoni Pretty much but also input.
Can you post a diff showing what you expect post_install should do?

Can you post a diff showing what you expect post_install should do?

I believe this would suffice:
--- hawck-git.install.orig      2021-01-30 19:28:45.123413647 +0100
+++ hawck-git.install   2021-01-30 19:29:12.081030872 +0100
@@ -2,6 +2,8 @@ post_install() {
     useradd hawck-input
     usermod -aG input hawck-input
     usermod --home "/var/lib/hawck-input" hawck-input
+    groupadd hawck-input
+    usermod -aG hawck-input hawck-input
     groupadd hawck-input-share
     usermod -aG hawck-input-share hawck-input
     groupadd uinput

I also pass -K UID_MIN=501 -K UID_MAX=999 to useradd to avoid seeing the service user in the login list in sddm (also -K GID_MIN=501 -K GID_MAX=999 to groupadd, for further finesse).
I'm having two problems now:
~> hawck-add .local/share/hawck/scripts/example.hwk
lua5.3: ./LLib/Keymap.lua:312: No such key: h
stack traceback:
        [C]: in function 'error'
        ./LLib/Keymap.lua:312: in function 'Keymap.getKeysym'
        (...tail calls...)
        ./LLib/Hawck.lua:69: in function 'key'
        /home/user/.local/share/hawck/scripts/example.lua:10: in local 'fn'
        ./LLib/match.lua:71: in field 'new'
        /home/user/.local/share/hawck/scripts/example.lua:8: in main chunk
        [C]: in ?

And at some point after launching hawck.inputd via systemctl:
Error in realpath() unable to find absolute path to: /dev/input/by-id

Via libnotify and on every console on the system.

Can you post a diff showing what you expect post_install should do?

I believe this would suffice:
--- hawck-git.install.orig      2021-01-30 19:28:45.123413647 +0100
+++ hawck-git.install   2021-01-30 19:29:12.081030872 +0100
@@ -2,6 +2,8 @@ post_install() {
     useradd hawck-input
     usermod -aG input hawck-input
     usermod --home "/var/lib/hawck-input" hawck-input
+    groupadd hawck-input
+    usermod -aG hawck-input hawck-input
     groupadd hawck-input-share
     usermod -aG hawck-input-share hawck-input
     groupadd uinput

I also pass -K UID_MIN=501 -K UID_MAX=999 to useradd to avoid seeing the service user in the login list in sddm (also -K GID_MIN=501 -K GID_MAX=999 to groupadd, for further finesse).
I'm having two problems now:
~> hawck-add .local/share/hawck/scripts/example.hwk
lua5.3: ./LLib/Keymap.lua:312: No such key: h
stack traceback:
        [C]: in function 'error'
        ./LLib/Keymap.lua:312: in function 'Keymap.getKeysym'
        (...tail calls...)
        ./LLib/Hawck.lua:69: in function 'key'
        /home/user/.local/share/hawck/scripts/example.lua:10: in local 'fn'
        ./LLib/match.lua:71: in field 'new'
        /home/user/.local/share/hawck/scripts/example.lua:8: in main chunk
        [C]: in ?

And at some point after launching hawck.inputd via systemctl:
Error in realpath() unable to find absolute path to: /dev/input/by-id

Via libnotify and on every console on the system.

@lgbaldoni If you give me some instructions on how to try the package out in an openSUSE VM then I can track it down more easily.

@lgbaldoni If you give me some instructions on how to try the package out in an openSUSE VM then I can track it down more easily.

The most up-to-date one is in my home project on OBS.
From here you can either add said repository or download the rpm and install it by hand.
For clarity, I've been using the rolling release (Tumbleweed) to test Hawck.

The most up-to-date one is in my home project on OBS.
From here you can either add said repository or download the rpm and install it by hand.
For clarity, I've been using the rolling release (Tumbleweed) to test Hawck.

Ok, I might have some time to take a look at it tomorrow, then I'll post my findings here.

Ok, I might have some time to take a look at it tomorrow, then I'll post my findings here.

@lgbaldoni Also, the repo-name is Hawck but the package name should probably be hawck, unless upper-case naming is standard for openSUSE of course (honestly I regret the capital-letter naming of the repo but it's too late to change it now because it would break links.)
It's a really small issue, so if it's difficult to change then don't worry about it.

@lgbaldoni Also, the repo-name is Hawck but the package name should probably be hawck, unless upper-case naming is standard for openSUSE of course (honestly I regret the capital-letter naming of the repo but it's too late to change it now because it would break links.)
It's a really small issue, so if it's difficult to change then don't worry about it.

I wondered about that and upstream has usually the last word on it. When I created it I had my doubts and chose on the github name :slightly_frowning_face:
I'm glad you told me, there's still time to change it.

I wondered about that and upstream has usually the last word on it. When I created it I had my doubts and chose on the github name :slightly_frowning_face:
I'm glad you told me, there's still time to change it.

Hi, any news?

@lgbaldoni Didn't have time to look at it last week, but it looks like I'll be able to take a look at it over the next few days.

Any news? I might have to remove it from the openSUSE repository if not working.

@lgbaldoni Sorry about the slow pace, I've been more busy than I expected this month but this is on my todo-list as soon as I have time. Thank you for the patience so far and the work on packaging, I'll let you know when I've tracked down the problem.

@snyball Of course, paid work, study and family always come first. Right now the deadline for Leap 15.3 has passed, so there is no hurry (I was probably being overly optimistic).
In any case, users willl be able to install Hawck from the OBS equivalent of a PPA.

I am also having the same issue (also on OpenSUSE Tumbleweed, using the latest git release)
When I run hawck-add ~/.config/hawck/scripts/example.hwk whose contents is just the Testing it out example from the readme (C-a - > the character 'b')
lua5.3: ./LLib/Keymap.lua:312: No such key: a
stack traceback:
        [C]: in function 'error'
        ./LLib/Keymap.lua:312: in function 'Keymap.getKeysym'
        (...tail calls...)
        ./LLib/Hawck.lua:69: in function 'key'
        /home/me/.local/share/hawck/scripts/example.lua:2: in main chunk
        [C]: in ?

No apparent change as of today (version 20220204.625d840)
~> hawck-add ~/.config/hawck/scripts/example.hwk
lua5.3: ./LLib/Keymap.lua:312: No such key: h
stack traceback:
        [C]: in function 'error'
        ./LLib/Keymap.lua:312: in function 'Keymap.getKeysym'
        (...tail calls...)
        ./LLib/Hawck.lua:69: in function 'key'
        /home/user/.local/share/hawck/scripts/example.lua:10: in local 'fn'
        ./LLib/match.lua:71: in field 'new'
        /home/user/.local/share/hawck/scripts/example.lua:8: in main chunk
        [C]: in ?

What I found is that /usr/share/kbd/keymaps/xkb/us.map.gz  uses Unicode codes to specify the letters.
 keycode 35 = +U+0068 +U+0048 +U+0068 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H ...
a snippet from  /usr/share/hawck/LLib/Keymap.lua around line 195 shows:

local alt_code, alt_name = line:match(".*keycode *([0-9]+) *= *([a-zA-Z0-9+]+)") <<-- here we see the regex

      -- We only care about the plain ones for now.
      if modifiers[1] == "plain" then
        code, name, rest = alt_code, alt_name, ""
      end
    end

    if code and name and name ~= "nul" then
      -- Some keys are formatted as '+A' where A is a literal character,
      -- we just remove this plus.
      local is_letter = false

      if name:sub(1, 1) == "+" then         <<-- here we see the + being taken off
       is_letter = true
        name = name:sub(2)
      end

so the table has the key "U+0068"  as opposed to "h"
While I am fine just replacing keys with their unicode counter parts, maybe not everyone would
The problem appears to be that the map being used when selecting lang=us
is  /usr/share/kbd/keymaps/xkb/us.map.gz
but it might be better to use:
/usr/share/kbd/keymaps/i386/qwerty/us.map.gz
we can see this file includes "qwerty-layout"
looking at /usr/share/kbd/keymaps/i386/include/qwerty-layout.inc
we can see keycode 35 = h
going back to /usr/share/hawck/LLib/Keymap.lua around line 266:

  local p = io.popen(("find %s -name '*map.gz'"):format(u.shescape(kbmap_path)))
  local keymap_rx = ".*/([a-z0-9]+)/([a-z0-9]+)/([a-z0-9-]+)%.k?map%.gz"     <-- regex for map files
  local keymaps = {}
  for line in p:lines() do
    local machine, layout, lang = line:match(keymap_rx)
    if machine then
      keymaps[lang] = line
    end
  end
  p:close()
  return keymaps
end

on one's own machine you might try replacing that first grouping for the regex with (i386) as opposed to ([a-z0-9]+)
the rest of the regex can stay.  Again, this is just to get it to work on opensuse (15.4 right now).  This isn't for production.

@cw9000 Thanks for the debugging! Keymap.lua is mostly guesswork from looking at example keymap files, and I'd never seen a unicode symbol anywhere. It should be normalizing the unicode symbols by converting them to UTF-8 before storing them:
local keycode = tonumber(("U+0068"):match("U[+]([0-9a-fA-F]+)"), 16)
if keycode then
  key = utf8.char(keycode)
end
keymap[key] = value


Fixes #3132 #3138 ComboBox (v2) One key delay when keying down arrow. Up arrow does not move back to searchbox

Fixes #3132 #3138 - ComboBox one key delay when keying down arrow. Up arrow does not move back to searchbox
Pull Request checklist:

[x] I've named my PR in the form of "Fixes #issue. Terse description."
[x] My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
[x] My code follows the Terminal.Gui library design guidelines
[x] I ran dotnet test before commit
[ ] I have made corresponding changes to the API documentation (using /// style comments)
[x] My changes generate no new warnings
[x] I have checked my code and corrected any poor grammar or misspellings
[x] I conducted basic QA to assure all features are working

"dotnet test" working locally for me, but two tests are failing on github? Completely unrelated to my changes
 Failed Terminal.Gui.InputTests.ResponderTests.Disposing_Event_Notify_All_Subscribers_On_The_First_Container [1 ms]
 Failed Terminal.Gui.InputTests.ResponderTests.Responder_Not_Notifying_Dispose [< 1 ms]

"dotnet test" working locally for me, but two tests are failing on github? Completely unrelated to my changes
 Failed Terminal.Gui.InputTests.ResponderTests.Disposing_Event_Notify_All_Subscribers_On_The_First_Container [1 ms]
 Failed Terminal.Gui.InputTests.ResponderTests.Responder_Not_Notifying_Dispose [< 1 ms]

Thanks @fergusonr. I already submitted the PR #3142 that fix this.


These test suites do have any integration tests npm:  npm_embedded:  npm_packages:  npm_source:

:speaking_head: Foreword
Thank for taking the time to fill this feature request fully. Without it we may not be able to , and the issue may be closed without resolution.
:person_frowning: Problem Statement
We have test suites that do not test the results.  Adding tests should increase the valid of running the tests and help resolve issues.
:grey_question: Possible Solution
Add tests to verify any changes the cookbooks and resources make in the suite.
:arrow_heading_up: Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
:heavy_plus_sign: Additional context
Add any other context about the problem here. e.g. related issues or existing pull requests.

We have suites for the suites we care about now.


RuntimeError: Could not infer dtype of numpy.float32

Hello, sorry to bother you. I have met a problem. I have configured the environment as described in the readme file, but the program is wrong when I run the run_predict_file.py, RuntimeError: Could not infer dtype of numpy.float32. Is the version of some libs are incorrectly? I have tried serveral versions of numpy, but it doesn't work and displays the same error.
Looking forward to your reply!

Hm I am not sure, could you share your wav file so I could test it? Or you could try one of the wav files from the NISQA dataset

test.zip
hello，thanks so much. the test.zip is  the wav file I used, you can have a try. And I will ttry to test the files from the NISQA dataset to confirm.

Here is the result of the DEMAND data DLIVING_16k chn01.wav. The result is the same.

I just made a fresh install of the conda environment on an Ubuntu machine and cannot reproduce the error with the test.wav. Are you sure you are using the latest master branch? Did you install the environment with conda env create -f env.yml? Could you maybe double check which pytorch version you have installed in your environment?

As you mentioned, I have tried again. The version of the pytorch is as follows, and cannot find a version of 1.10.1 with pip install.

It's really unimaginable. I reinstall the torch==1.10.1 today as what I have did yesterday, and sucess in one fell swoop. Now It can be running with your example script. Thanks a lot for your patient reply. Now I can test it any way I want.

No worries, great that it works for you now


Fixing broken Keda Deployment doc hyperlink

Description
The Keda Deploy hyperlink is broken.
Issue reference
No reference filed.
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[N/A] Code compiles correctly
[N/A] Created/updated tests
[N/A] Extended the documentation

Thanks!


Refactor shuffle

1 bug fix and 2 refactorings. If you like it, please merge or cherry-pick it.

Compared to 2.1.0, this script runs much more nimbly now!

Performance tuning is a lot of fun! 😀

Yeah!!


libsoup{,_3}: enable separateDebugInfo

Description of changes
Rebase of #256536
Enable debug information and store it in the output named debug.
Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

OK, it worked on master on darwin and python-xdist failure on darwin is unrelated and the change is small, I believe it should not break darwin…


On deployment: the cloudfront cache should be invalidated

@TODO

https://github.com/Virtual-Finland-Development/codesets/pull/4


Doesn't work on Android

Hi, I try to use body-scroll-lock for the website I'm currently developing but I can that on my Android with Chrome 70.0.3538.64 it simply doesn't work.
However, if I add overflow: hidden to the html tag instead of the body, it works.
I still have to make a few tests to make sure I don't have to switch between the body and the html for cross-browser compatibility but I'll go with that for now.

https://github.com/willmcpo/body-scroll-lock/pull/21


Add Speech GAPIC for sync_recognize.

This adds GAPIC support to speech sync_recognize().

It looks like SpeechApi() does some credential digging.
https://travis-ci.org/GoogleCloudPlatform/google-cloud-python/builds/170660357#L201-L212
So  I _Monkey'd SpeechApi back.
@dhermes I think I got everything you covered there. LMKWYT.

Yeah I was trying something with testing. I just pushed that back up.

Ok yeah, that causes an error.
https://travis-ci.org/GoogleCloudPlatform/google-cloud-python/builds/170666346#L461-L474

Ok that should be resolved now.
    'gapic-google-cloud-speech-v1beta1>=0.11.1,<0.12.0',
    'grpc-google-cloud-speech-v1beta1>=0.11.1,<0.12.0',

LGTM.


Fix various small issues I noticed

(from changelog, make sure to add the release number and date when this gets merged)
Added

Exposed Collection.collectionName as a readonly property for TypeScript usage.
TypeScript overview to README.md.
Optional replacement argument for array-splice edit fields.
Optional constructor for the JSONDatabase PHP class to reduce repetitive code.

Changed

Rejected incorrect parameters are now TypeErrors instead of regular Errors.
Deprecated firestorm.table(name) method, since firestorm.collection(name) does exactly the same thing.
Reformatted the repository and improved README.md to make it easier to set up Firestorm.

Fixed

PHP-level errors not being rejected properly in GET requests.
Certain write commands mutating data internally and affecting parameters outside Firestorm.
Collection.searchKeys and Collection.values not returning proper Errors sometimes.
files.upload not allowing the form-data package's typing of FormData.
Inconsistent use of indentation and formatting in PHP files.
Various typos in PHP files.
Collection class being exported in TypeScript despite the actual class being private.
array-splice edit fields being incorrectly typed as array-slice.
Platform-specific PHP error when searching nested keys.

I'm just trying to make the code cleaner, it was really inconsistent before and most of the changes are simply running a formatter and linter.


Find all distinct subsets of a given set [C++]

💥 Proposal
For a set of positive integers, finding all its subsets. The set can contain duplicate elements, so any repeated subset should be considered only once in the output.
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Remove Dockerfile

It looks like the Dockerfile in this repo is fairly old (PyTorch 22.10). I don't know if it is useful -- we have largely deleted Dockerfiles in each RAPIDS repo now that we have devcontainers.

/merge


pip command fails to install logging

I get the following error when trying to install logging:
$ git clone https://github.com/mlperf/logging.git mlperf-logging
Cloning into 'mlperf-logging'...
remote: Enumerating objects: 2481, done.
remote: Counting objects: 100% (1331/1331), done.
remote: Compressing objects: 100% (462/462), done.
remote: Total 2481 (delta 1036), reused 1031 (delta 862), pack-reused 1150 (from 1)
Receiving objects: 100% (2481/2481), 536.67 KiB | 1.13 MiB/s, done.
Resolving deltas: 100% (1712/1712), done.
Updating files: 100% (408/408), done.
$ cd mlperf-logging/
$ pip3 install -e mlperf-logging
mlperf-logging should either be a path to a local project or a VCS url beginning with svn+, git+, hg+, or bzr+

Any idea about that?

You should do pip install . after doing cd or do pip3 install -e mlperf-logging without doing cd.
Meanwhile, now you can do pip install mlperf-logging without doing git clone as the whl file is in pypi.

Yes Thank you...


Use modified Title Case for slug -> label conversion.

Before, we used lodash startCase which simply made every word have its first
letter capitalized. This new function does title case (leaving 'and', 'or', etc.
uncapitalized) and also capitalizes "dvc"
Initially mentioned here

That was a quick feature, thanks @rogermparent !

and also capitalizes "dvc"

Doesn't title case respect all acronyms by default? The slugs would need to be case sensitive though, e.g. DVC-files-and-directories — probably not a great idea.


[Feature Request] Selected Filter color

Overview
An additional visual indicator that a filter has been selected
Proposal
When a filter has been selected, make the filter box have a darker shade / color
Supplementary Information
Also, slight bug, after you select a filter, there is a purple outline around that one box until you click something else. Let's try to remove the outline after you close the filter.

I believe the outline is for accessibility and should be kept. It indicates that you still have the input focused and can operate it with the keyboard.


M3-5278: Update buttons for Domains

Description
Make add buttons on the Domain Detail page primary and remove "Delete Domain" from the edit drawer
How to test

Go to /domains
Click on "Edit" and the "Delete Domain" button should no longer show up in the drawer
Click on the label for any primary domain
The add buttons on the right of each table should now be in the primary style

Did we address the button placement for this drawer in one of our PR's? I know mine didn't, so if yours also didn't go ahead and fix the button placement in this PR


The type initializer for 'Aura.UI.Controls.TitleBar' threw an exception.

Hi
After I import the latest nuget in the project and then add

into my App.xaml I get the exception "The type initializer for 'Aura.UI.Controls.TitleBar' threw an exception."
any idea why?
thanks

sorry for not replying earlier, that happened in the old version, use Aura.UI 0.1.3-rc1, the TitleBar control has been renamed to TitleBox.

I still recommend using the GroupBox control, maybe in the future I will remove the TitleBox control.


Add ability to create an Immersive Components App

Update CLI to allow creation of an Immersive App instead of just Landscape to access the ImmersieveApp APIs

MXSCOMP-46


Allow usage of text file for users' data storage instead of LDAP

This allows to store public SSH keys and roles in a text file as JSON instead of using LDAP.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

Decoupling LDAP is just what this project needed! Thank you! 👍


Closing SlimeVR server closes the browser if it was SlimeVR server that opened the browser

Closing SlimeVR server closes the browser if it was SlimeVR server that opened the browser.
This might be a subprocess issue but procexp from sysinternals does not show that firefox is a subprocess for slimevr.exe.
Tested this by pressing the version update button

LMAO


Composer/ScriptHandler: "console" script is hardcoded, proposal to make it configurable

Hello,
Due to our project restrictions we can't use "console" script, but could rename it to "console.php"
After we renamed it, composer can't perform actions inside ScriptHandler because the path to console script is hardcoded there:
$console = escapeshellarg($appDir.'/console');
I propose to refactor the method executeCommand:

Remove $appDir param and retrieve the path to app dir and console script from getOptions() method directly
Add new parameter to options, named symfony-console-script, which will be equal $appDir . '/console' by default

Does anyone have thoughts, is it right way to make "console" parameter configurable?
Otherwise - I'm ready to make these changes asap.

@fabpot in #117 the directory structure got configureable, but it is still not possible to change the "console" itself to another name
this would be particularly helpful if bundles such as https://github.com/schmittjoh/JMSJobQueueBundle are used that exend the "default" console.


Fixed: added issue and pull request life cycle in the contributing readme

Current coverage is 41.96% (diff: 100%)

Merging #61 into master will not change coverage

@@             master        #61   diff @@
==========================================
  Files            17         17
  Lines          1780       1780
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            747        747
  Misses          966        966
  Partials         67         67

Powered by Codecov. Last update 476a6fa...6e8a52b


Accept a function as easing

I'll be coming to a conclusion on this PR tomorrow.
Note to self: See #396.

Since I've presented a reasonable solution (or two) in this thread, and since I'm about to tackle #396, which is tangentially related, I'll close this for now.
With love,
Julian


Add kaiko client

Implementation of 3 endpoints :

one to get all supported exchanges
one to get all supported currencies
one to get last price for a given pair

I've seen your publish nuget file. I need to rename the projects

Great !


INSTALLATION ISSUE

Dear all,
I have followed the instructions about the installation of PyTornado but the software does not work.
Within the root folder of the code (where the setup.py is placed) from the terminal I have wrote the following commad:
pipi install --user .
At the end of the installation process, the following message appeared on the terminal:
Successfully built pytornado
Installing collected packages: pytornado
Successfully installed pytornado-0.5.4
So it seems that the installation was succesfull but when I try to perform the tutorial example (described at the "Getting Started" page of the documentation) the software does not work, The folder "pytornado" and the plot of results are not created.
First of all, I was expecting to see an executable file created after the installation/compiling process but no such file was created. This sounds strange. Does anybody know if an executable of the software should have been created through the installation process?
To launch the software, I have found the pytornado.bat file within the following path:
pytornado-master/src/bin
that is equivalent to run the script _pytornado_exe.py on the terminal.
Please help me!!
Thanks,
Giacomo

I have the same issue, any update?

I had the same issue, installing pytornado alongside of Ceasiompy on a fresh Ubunto20.04 with MiniCondo environment for Ceasiompy
finally worked using
https://github.com/airinnova/pytornado/archive/master.zip file (with pytornado 0.5.4)
instead of
https://github.com/airinnova/pytornado (which will give you the 0.5.6 unreleased version)
installed with
pip install . as suggested in issue #23
(and this uninstalled the 0.5.6 version)
trying out with the command pytornado returns the standard help infos

Thank you for the update!!
Regards.
Il Mar 31 Ago 2021, 12:52 Dirkjoost @.***> ha scritto:

I had the same issue, installing pytornado alongside of Ceasiompy on a
fresh Ubunto20.04 with MiniCondo environment for Ceasiompy
finally worked using
https://github.com/airinnova/pytornado/archive/master.zip file (with
pytornado 0.5.4)
instead of
https://github.com/airinnova/pytornado (which will give you the 0.5.6
unreleased version)
installed with
pip install . as suggested in issue #23
https://github.com/airinnova/pytornado/issues/23
(and this uninstalled the 0.5.6 version)
trying out with the command pytornado returns the standard help infos
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/airinnova/pytornado/issues/26#issuecomment-909124572,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARKBVJ3FGSY2ACSWNZ563ILT7SX5HANCNFSM4SKJHIOQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Build is not identical when scala rules compile java sources

See example failures in #101 #106
This seems to only happen on linux. The most common reason is that somehow a timestamp is making it into an output file. We should be able to check by looking at the binary diff to find the actual difference.
We need to fix this because we can't merge a test that makes the build go red, but at the same time, this means currently when using mixed scala/java targets on linux, you will not have optimal caching (each upstream rebuild will invalidate everything downstream).

my 2c- I thought it doesn't break on OSX just because of #74 but when I changed test_run.sh locally to use md5 (and not md5sum) it didn't break on the only_java_sources branch. I wonder what's going on there...

also how do you explain #104 not showing the same symptoms? do you think it's somehow order related?

I'm closing this since we've done a lot of work on this area and I haven't seen any failures or flakiness in this area for a long while.


Add nstd_[cstring|string|vec]_cap.

These functions will add the ability to get an NSTD[CString|String|Vec]'s capacity.

Added in ca077b7.


Essent component error

Home Assistant release with the issue:

arch
armv7l

dev
false

docker
false

hassio
false

os_name
Linux

python_version
3.7.3

timezone
Europe/Amsterdam

version
0.93.1

virtualenv
true

Last working Home Assistant release (if known): -
Operating environment (Hass.io/Docker/Windows/etc.): Hassbian

Component/platform: https://www.home-assistant.io/components/essent/

Description of the : Unable to start component
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
sensor:
  - platform: essent
    username<EMAIL_ADDRESS>    password: xxxxxxxx

Traceback (if applicable):
Error while setting up platform essent
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity_platform.py", line 126, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/essent/sensor.py", line 27, in setup_platform
    essent = EssentBase(username, password)
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/essent/sensor.py", line 52, in __init__
    self.update()
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/util/__init__.py", line 224, in wrapper
    result = method(*args, **kwargs)
  File "/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/essent/sensor.py", line 69, in update
    meter, only_last_meter_reading=True)
  File "/srv/homeassistant/lib/python3.7/site-packages/pyessent/pyessent.py", line 158, in read_meter
    .find('Installations') \
AttributeError: 'NoneType' object has no attribute 'find'

Additional information:

Hmm, what happens if you go to https://apps.essent.nl/households/mijnessent/index.html?wizard=verbruiksManager#main=mijnessent/advies in your browser? Is there anything under "Meterstanden"? Do you maybe need to accept some agreement first? I remember I accepted some agreement so maybe the API won't export this info until you do. Please try if that's it.
Feel free to also directly use https://github.com/TheLastProject/PyEssent to test, so you don't have to wait until the next time Home Assistant wants to sync.

I have the same problem
Platform not found: sensor.essent

Actually, @rickbhs, that's another issue and probably indicates that you're using an older version of Home Assistant than 0.93. Anyway, please make a new issue as you have another problem.

 Is there anything under "Meterstanden"? Do you maybe need to accept some agreement first? I remember I accepted some agreement so maybe the API won't export this info until you do. Please try if that's it.
Feel free to also directly use https://github.com/TheLastProject/PyEssent to test, so you don't have to wait until the next time Home Assistant wants to sync.

Meterstanden are visible, I just noticed it is possible to login with my e-mail adres but also with a user account. Will try if this will improve my results.
There are no user agreements to be accepted, but might have done it in the past.

I have the same problem
Platform not found: sensor.essent

I needed to do a "pip3 install pyessent" in the virtual env. of my hassbian configuration.

@TheLastProject

Actually, @rickbhs, that's another issue and probably indicates that you're using an older version of Home Assistant than 0.93. Anyway, please make a new issue as you have another problem.

i was using Version 0.93.1 yesterday now I'm using 0.93.2
the error "Platform not found: sensor.essent" is before i did :  "pip3 install pyessent"
but after that i have the exact same Traceback as PDekker

Well, @rickbhs, then I'm asking you the same question as PDekker: https://github.com/home-assistant/home-assistant/issues/24016#issuecomment-494692046 :)

@TheLastProject if i clicked at the link i will be forwarded to https://apps.essent.nl/households/mijnessent/index.html?wizard=verbruiksManager#main=mijnessent/termijnbedrag&wizard=verbruiksManager
no agreement or something.

this is what i find under "Meterstanden" up to 2018

I'm hoping https://github.com/home-assistant/home-assistant/pull/24137 will fix this, but to be sure you could test running the master branch of https://github.com/TheLastProject/PyEssent manually (outside of Home Assistant):
from pyessent import PyEssent

essent = PyEssent(username=username, password=password)
for ean in essent.get_EANs():
    essent.read_meter(ean)


MindMath Activity

In progress, MindMath activity for GSOC 2020

Congratulation, the new UI is very cool :+1:
Few remarks:

Do not use an icon to write "Score", it's typical a string that should be localized
It will be nice to find an icon for the activity, I suggest a brain with operations inside
It will be better to start localization now instead of doing it at end

yes, will replace the icon with text.
okay, sounds good.
yes,I was just going to start it, ( was working on multiplayer game mode)

Nice.
Few UI remarks:

Sounds like the font is not set, look like the default browser font is use
Avoid displaying buttons or UI elements not usable. For example all these elements should be hidden instead of disable

Two other remarks resulting to our demo session:

Do not combine pagination and scrollbar on the result and scoreboard screen. Just use pagination.
Replace "--" in scoreboard screen when an user is playing by a hourglass icon

Few remarks on your latest PR:

In Result screen, there is an alignment issue with buttons in the footer : back arrow and restart button are not vertically aligned with other buttons

In Result screen, the scrollbar is still visible to the right
I'm not sure to understand the level of difficulty: easy level give higher number than difficult level
When button in tutorial are disabled, the font/background color use are not the right one

On remark: in "No Timer" mode it seems that there is no difference between the "Restart" button and the "Pass" button. If so, in this mode it could be interesting to hide the "Restart" button.

yes, it sounds good.

Thanks a lot for your work.
This activity is very fun and addictive and the UI is pretty engaging.