[CP Staging] Money Request description input style refactor

Details

Refactoring the input style for the InputWrapper in the MoneyRequestDescription to be consistent with the recent update to react-native
Fixed Issues

$ https://github.com/Expensify/App/issues/31114
PROPOSAL: https://github.com/Expensify/App/issues/31114#issuecomment-1803732300
Tests

Click on request money.
Enter any amount and select any recipient.
Click on description and enter some text
Make sure we are able to edit description and text is visible in the input.
Click on request.
Go to the money request.
Click on description.
Make sure we are able to edit the description and text is visible in the input.
Go back to edit the description and verify the description is correctly showing in the input

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

Offline tests

QA Steps

Click on request money.
Enter any amount and select any recipient.
Click on description and enter some text
Make sure we are able to edit description and text is visible in the input.
Click on request.
Go to the money request.
Click on description.
Make sure we are able to edit the description and text is visible in the input.
Go back to edit the description and verify the description is correctly showing in the input

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

PR Author Checklist

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

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

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

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

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is 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] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[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 the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If 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

Android: Native

https://github.com/Expensify/App/assets/77237602/d869cc2e-e6bd-488e-bb50-8a1b0f6251c8

Android: mWeb Chrome

https://github.com/Expensify/App/assets/77237602/5bd8b89c-0746-45c4-8362-dc103138d8a8

iOS: Native

https://github.com/Expensify/App/assets/77237602/bdb2f229-379b-4cbc-991f-89e59d8e64fb

iOS: mWeb Safari

https://github.com/Expensify/App/assets/77237602/97da07d7-dbea-4f13-bdd8-1a492b877ee5

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/77237602/5812b323-013d-4f27-aec8-1b4930eb003c

MacOS: Desktop

https://github.com/Expensify/App/assets/77237602/1d053361-21ae-4259-89f6-8948fb6e2a02

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: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If 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

Android: Native

Android: mWeb Chrome

iOS: Native
https://github.com/Expensify/App/assets/4160319/cb8f09c1-e788-43d8-8352-6fc397a7f777

iOS: mWeb Safari
https://github.com/Expensify/App/assets/4160319/5d195710-fa6a-48be-a1bc-a52928e89439

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/4160319/7d723541-5029-4aac-bfc5-8064f2b62344

MacOS: Desktop
https://github.com/Expensify/App/assets/4160319/1c8b1a1e-41e6-47ff-9eb9-84277c5c153a

: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 production by https://github.com/puneetlath in version: 1.3.97-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

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

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.99-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


What about docs?

Work on the documentation
To Do:

[ ] #7
[ ] #8
[ ] #9
[ ] Decide if we want to go with something more complex

To Do:

[ ] Create a 'docs' folder
[ ] Create a new 'index.md' document
[ ] Turn on GitHub Pages
[ ] Decide if we want to go with something more complex

Created issues for the first three suggestions

Details

Test Detail


Allow launching in app mode.

Hi, I want to set certain urls to launch chrome forks as an app.
To do this, i need to execute chrome.exe --app=%url%
However I can't do that so far.
I'd need one of the following solutions:

add some sort of config where we can mark urls to be opened as an app.  This one would be preferable, because then different urls could be apps or onto.  For me this doesn't matter too much as i have a separate profile for Apps
Let us override the %arg% param even if users might break functionality.
Change the order of params so user params come first not second (but would need to make sure we don't add an extra space between --app= and %url%

Was digging through unrealized you support this but it's called a chromeless window.  But it also doesnt seem to work with all chromium forks (thorium).  It's greyed out and I can't toggle it


decouple artifactId from directory name

thanks @michalszynkiewicz , merged and backported. Sorry it took so long - but we never needed a new release so far :)


Deeplinks - "It's not here" displayed when background the app and open /enable-payment deeplink

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.80-1
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:
Precondition: user should be Signed In

Open app
Background the app
Tap on deeplink from other app (messanger/notes)
staging.new.expensify.com/enable-payments

Expected Result:
User should be navigated on "Enable-payments" page
Actual Result:
"Hmm... it's not here" page opens
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/78819774/01b9765d-aa66-4639-8c65-47eec611b2e7

Android: mWeb Chrome

iOS: Native

https://github.com/Expensify/App/assets/78819774/73d85d40-82b8-4189-a97f-199911c2052a

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

View all open jobs on GitHub

Still on my testing list, other GHs have taken priority.

I've run out of time and will have to test over the weekend.

Closing - I've been unable to replicate

I'll need to test again then.

Still on my testing list.

I'll test soon.

On my testing list

Closing again, I tested again and did not get the oops error:

I logged into the application

I opened the browser and input the following link:
staging.new.expensify.com/enable-payments

I get to the following location:

When I log in, I land on the following page:

Issue is still reproducible
https://github.com/Expensify/App/assets/78819774/f09cd341-1bf4-4167-a7cd-653ff19edbbc

This week, I'll try to test again.

I've asked for help here - https://expensify.slack.com/archives/C01SKUP7QR0/p1718126752943919 and confirm on a physical device instead of a simulator.

I'm a bit confused. In the OP it states "Precondition: user should be Signed In" but in the vid here, the user needs to sign in then be redirected to the error page.
For me... when I'm signed into my<EMAIL_ADDRESS>email on the latest staging version and I click http://staging.new.expensify.com/enable-payments in a text message I sent to a test account, the app opens to LHN.
When I sign out then use my<EMAIL_ADDRESS>to sign in after clicking http://staging.new.expensify.com/enable-payments , I'm sent to an error page. @alexpensify , want to update the OP to state

Precondition: user should not be Signed In ?

Thanks, @mallenexpensify, for testing! I'll update the OP and include that precondition.

Assigning external, we need proposals here.

Waiting for proposals here

Waiting for proposals here

Waiting for proposals here

Waiting for proposals here

Following this process: https://stackoverflowteams.com/c/expensify/questions/8260/8261#8261

Heads up, I will be offline until Monday, July 8, 2024, and will not actively watch over this GitHub during that period.
I'll try to check in a few times. If anything urgent is needed here, please ask for help in the #expensify-open-source Slack Room-- thanks!

Hey, I'm a developer from SWM I'd like to take care of this ticket.

Thanks, I've assigned you @BrtqKr.

Heads up, I will be offline until Monday, July 8, 2024, and will not actively watch over this GitHub during that period.
If this GitHub needs an urgent update, please ask for help in the #expensify-open-source Slack Room. If it can wait, I'll continue the review process when I return online. Thanks!

Since the issue is only able to be reproduced using universal links, do you know how can I set this up locally? Without a compatible app ID I'm unable to debug this in any way, because it doesn't detect the app and is redirecting me to the web instead.

No update yet, waiting for a PR from @BrtqKr.

@BrtqKr - I'm catching up from being OOO, any update here? Thanks!

@BrtqKr - please keep me posted if you can't work on this one and I'll ask around for help. Thanks!

Waiting for an update

Sorry @alexpensify, I was talking about this with @AndrewGable on the shared channel during your absence. I'd need a provisioning profile to test this on a physical device, otherwise it wasn't working. There's a ?mode=developer thing for the universal links, but it has to relate web and mobile versions properly.

Ok, thanks for that update. Did you chat with Andrew in a public channel, if yes, can you share a link here? Thanks!

Sure, it's here

Thanks, I'll review that thread and figure out what we should do here.

No update and still need to plan the next steps here

I bumped the Slack 🧵 to figure out the next steps or if we should close:
https://expensify.slack.com/archives/C04878MDF34/p1722278661242209?thread_ts=1719849633.995639&cid=C04878MDF34

I'm still reviewing the next steps here and what's possible.

No update

Other GHs have been a higher priority. I'll review the options soon.

There is no update; I was OOO on Friday and catching up.

No update yet

No news yet

Moving to weekly for now, other GHs have been a priority.

Next Steps
Other GHs have been a higher priority, I'll review this one again when I'm back from OOO.
Heads up, I will be offline until Tuesday, September 3, 2024, and will not actively watch over this GitHub during that period.
If anything urgent is needed here, please ask for help in the #expensify-open-source Slack Room-- thanks!

I'm catching up from being OOO last week and review the discussion again soon.

No update

Other GitHubs have been a priority, I'll get to this one soon.

I've been sick this week and haven't been able to review this GitHub. There is no major update here; I'll try to carry on next week.

No update

I'm going to close this issue as the Project this was part of was closed too.


Feature Request: Hide/Block Contacts

It's me again!
First of all, I really like using Toxy, and I'd like to thank the entire development team for your efforts. It's a very useful tool, and I really appreciate how responsive the team has been to previous feature requests I've made here.
I was thinking today that it would be nice to be able to hide and/or block a contact in my contact list. There are people who appear in my contact list that I interact with very infrequently, and it'd be nice to be able to hide them until such time as either:

A message is sent by a hidden contact.

I choose to "unhide" a contact so that they appear on my main chat list.

Perhaps one way to do this would be to introduce the concept of "groups" to the software. I could then group contacts by "Work", "Friends", "Family", etc. so that I only see contacts that are relevant to me at the time.
Another thought (which is perhaps already taken into account by the Tox protocol, but I'm not extremely well-versed it how it works) is that it would be good to be able to block an abusive or otherwise unwanted contact. Is deleting that contact enough to facilitate this, or would a "block" feature in Toxy be useful?
Thanks again!

Blocking contacts should really be a toxcore feature in my opinion. Blocking someone without the core supporting it would just mean ignoring a friend's messages and such.
So yes, the only way to properly 'block' a friend for now is to delete him/her from your friend list. If you want to prevent him/her from sending you friend requests, you'd have to change the nospam value of your ID.
We'll definitely add 'friend grouping' soon though. That seems like a nice way to organize friends. Perhaps this is something that @Reverp can take a look at. If not, this'll probably be added in a week or so. I personally have some other stuff I want to take care of first. Like rewriting file transfers to support resuming broken transfers (almost done) and figuring out a better way to do chat scrollbacks because the way we're currently abusing flowdocuments is simply unacceptable/too slow.
Thanks for your suggestions.


Move Nevada to EpiTrax

Met with EpiTrax 8/22/22
RS will need to:

open port in Palo Alto firewall - Mo has already asked DevOps for help with this 8/22
send them a list of all NV senders
send them our IP address - @brick-green did this 8/22
they will give us username and pass for auth
we need to give them some deidentified info
set up a static value in MSH-4-1
create a new feed for epitrax while testing with them but still in production with inductive health

Original ticket:
8/9 7pm
I am hoping that you are aware that the Nevada Department of Health and Human Services is moving to EpiTrax as their surveillance system and has contracted with End Point for support.  We were given your name as a contact to help with making the change.
We are working on-boarding all of their reporters at this time.  I understand there are reporters that are being sent through both SimpleReport and Report Stream to Nevada...which is what I would like to work with you on getting set up on the new connection.
I think it would be good if you had time for a short call to discuss the details and get the process started.  The implementation date to make the change is September 10th (last feed to the existing communication point is September 9th).
If you could give me a few times you are available, I would be happy to set up a meeting.
Thanks so much.
Linda
--
Linda King
Project Coordinator
End Point Corporation
<EMAIL_ADDRESS>

Update from Kevin from Endpointdev:
Confirming we can see 4 files from you on our Prod server. Looks like it's running smoothly!
Thanks!
Kevin Q

Update from Linda King:
Hi,
All of the production messages we are receiving through Report Stream are de-identified.  The patient name and addresses have been removed.
Would you please have a look?
Thank you.
Linda
--
Linda King
Project Coordinator
End Point Corporation
<EMAIL_ADDRESS>


Break into Methods

The code should be broken into methods so it is easier to add functionality.

I do not think this is a good first issue, even though it is simple, it needs to be intuitive and simple, yet needs to not conflict with good programming practices.

Because the LatexFile.py was not finished, this issue was reopened.

Actually I think this is no longer an issue. It will just be a task for v1.2.0


treewide: modernize python packages

Description of changes
I grepped for --replace  and:

use pyproject = true;
use build-system and dependencies
use --replace-fail
use pytest-cov-stub
remove repo = pname;

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
24.11 Release Notes (or backporting 23.11 and 24.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.

Add a :+1: reaction to pull requests you find important.

Feel free to add me as a reviewer when this is ready.


[ClangImporter] Update #8515 for API changes in #8532.

Slava even mentioned he was going to make these changes; I just forgot.

@swift-ci Please smoke test and merge


ArgumentException: Unable to determine Type

Given the following code:
Entity from Assembly 1:
public class ExampleEntity
{
    public long Id { get; set; }
    public string Name { get; set; }
    public AuditField Field { get; set; } // from external assembly (Assembly 2)
}

Example:
await query.BulkUpdateAsync(
    new ExampleEntity
    {
        Name= "Test"
    }
});

The exception occurs:
ArgumentException: Unable to determine Type
Problem is https://github.com/borisdj/EFCore.BulkExtensions/blob/master/EFCore.BulkExtensions/TableInfo.cs#L501 when property is other assembly.
Solution
Variable navOwnedType is never used, remove it?
Type navOwnedType should be navigationProperty.ClrType ClrType will never be null.

Removed, will be published with next v.

Thanks.
The same case is in https://github.com/borisdj/EFCore.BulkExtensions/blob/master/EFCore.BulkExtensions/SQLAdapters/SQLServer/SqlServerAdapter.cs#L552 please remove


Fix agent to launch kontena-ipam with ETCD_ENDPOINT as <IP_ADDRESS>

Apparently some versions/installs of CoreOS do not have any /etc/hosts file, which leads to an empty /etc/hosts file in any Docker --net=host container. This leaves the kontena-ipam-plugin unable to resolve the localhost name.
Fix this by using <IP_ADDRESS> instead.

It seems like with an empty /etc/hosts on CoreOS, processes will actually query the external DNS resolver for the localhost name, so it may or may not work depending on the external DNS resolver..
10:01:28.104559 IP core-01.40070 > <IP_ADDRESS>.domain: 2618+ A? localhost. (27)
10:01:28.105253 IP <IP_ADDRESS>.domain > core-01.40070: 2618 1/0/0 A <IP_ADDRESS> (43)
10:01:28.105954 IP core-01.40070 > <IP_ADDRESS>.domain: 2805+ AAAA? localhost. (27)
10:01:28.106336 IP <IP_ADDRESS>.domain > core-01.40070: 2805 NotImp 0/0/0 (27)

Tested to no longer send out any DNS queries for localhost on agent startup with a missing /etc/hosts.

This may affect CoreOS versions earlier than 1081.1.0

Populate /etc/hosts with an entry for localhost when the file is absent


Need way to show torrent in file manager (Finder, etc.)

shell.showItemInFolder(fullPath) will come in handy.
http://electron.atom.io/docs/v0.36.8/api/shell/

Instead of a right-click menu, maybe we could use an icon next to the "Files" heading when the user expands a torrent?

I like your suggestion @ChrisMorrisOrg

This is done now. @dcposch completed this.


[BEAM-14035] Fix checkstyle issue

Fix checkstyle issue (guava) that was introduced in #17607

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @mosche
CC: @angoenka

@aromanenko-dev have you seen spotless complaining?

@mosche thanks, fixed


Add an example with minibatching for sciml_train

Currently none of the README examples showcase how to minibatch. It would be a good thing to teach users.

I need to learn how to do this so maybe I can take a stab at this.
I guess I could just take the existing Lotka-Volterra neural ODE example and mini-batch inside the loss function if that's the approach to take?
I also have a few notebooks where I'm training a simple diffusion neural PDE that might make for a decent example, but still playing around with new ideas there: https://github.com/ali-ramadhan/neural-differential-equation-climate-parameterizations/blob/master/diffusion_equation/Diffusion neural PDE and DAE.ipynb

See #167 this does a batch but doesn't rotate the batches.  But one could build around that template using the new optional data arg to feed minibatches.

We do have an example in the docs now so I'll close this, but we can definitely keep improving it.


What I miss ? I cant build

Hello, I can not compile for any board..
I will get, for any board, that directory ddo not exist. :
KERNEL=kernel all -DNO_MODULES_OBJ
cd: /usr/home/gio/crochet/work/obj/arm.armv6/usr/src/sys/XXXXXXXXX: No such file or directory
*** [buildkernel] Error code 2
My logs:
[gio@pcbsd-i7] ~/crochet% time sudo /bin/sh crochet.sh -c config.sh
Starting at Mar 22 Dic 2015 02:28:35 CET
Loading configuration from config.sh
Board: RaspberryPi2
Option: ImageSize 1950mb
Source version is: 292577
Building FreeBSD version: 11.0
Image name is:
/usr/home/gio/crochet/work/FreeBSD-armv6-11.0-RPI2-292577.img
Building FreeBSD version: 11.0
Object files are at: /usr/home/gio/crochet/work/obj/arm.armv6/usr/src
Found suitable FreeBSD source tree in:
/usr/src
Found U-Boot port in:
/usr/local/share/u-boot/u-boot-rpi2
Building FreeBSD armv6 world at Mar 22 Dic 2015 02:28:52 CET
(Logging to /usr/home/gio/crochet/work/.buildworld.armv6.log)
Building FreeBSD armv6-RPI2 kernel at Mar 22 Dic 2015 03:01:51 CET
(Logging to /usr/home/gio/crochet/work/.buildkernel.armv6-RPI2.log)
Failed to build FreeBSD armv6-RPI2 kernel.
Log in /usr/home/gio/crochet/work/_.buildkernel.armv6-RPI2.log
make[1]: stopped in /usr/src
1 error
make[1]: stopped in /usr/src
*** [buildkernel] Error code 2
make: stopped in /usr/src
1 error
make: stopped in /usr/src
18909.485u 1364.680s 33:18.28 1014.5% 43926+660k 210263+2004464io 40453pf+0w
[gio@pcbsd-i7] ~/crochet%
cat /usr/home/gio/crochet/work/_.buildkernel.armv6-RPI2.log
--- buildkernel ---
--- buildkernel ---

Kernel build for RPI2 started on Tue Dec 22 03:01:51 CET 2015

===> RPI2
mkdir -p /usr/home/gio/crochet/work/obj/arm.armv6/usr/src/sys

stage 2.3: build tools

cd /usr/src; TOOLS_PREFIX=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp MAKEOBJDIRPREFIX=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp INSTALL="sh /usr/src/tools/install.sh" PATH=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/usr/sbin:/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/usr/bin:/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin WORLDTMP=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp make -f Makefile.inc1 DESTDIR= BOOTSTRAPPING=1002000 SSP_CFLAGS= MK_HTML=no -DNO_LINT MK_MAN=no -DNO_PIC MK_PROFILE=no -DNO_SHARED -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no kernel-tools
--- kernel-tools ---
mkdir -p /usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/usr
mtree -deU -f /usr/src/etc/mtree/BSD.usr.dist -p /usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/usr >/dev/null

stage 3.2: building everything

cd /usr/home/gio/crochet/work/obj/arm.armv6/usr/src/sys/RPI2; MAKEOBJDIRPREFIX=/usr/home/gio/crochet/work/obj/arm.armv6 MACHINE_ARCH=armv6 MACHINE=arm CPUTYPE= GROFF_BIN_PATH=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/usr/share/tmac CC="cc " CXX="c++ " DEPFLAGS="" CPP="cpp " AS="as" AR="ar" LD="ld" NM=nm OBJDUMP=objdump OBJCOPY="objcopy" RANLIB=ranlib STRINGS= SIZE="size" _LDSCRIPTROOT= INSTALL="sh /usr/src/tools/install.sh" PATH=/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/usr/sbin:/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/usr/bin:/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/legacy/bin:/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/usr/sbin:/usr/home/gio/crochet/work/obj/arm.armv6/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin make -D KERNFAST -j 24 -J 15,16 -m /usr/src/share/mk KERNEL=kernel all -DNO_MODULES_OBJ
cd: /usr/home/gio/crochet/work/obj/arm.armv6/usr/src/sys/RPI2: No such file or directory
*** [buildkernel] Error code 2
make[1]: stopped in /usr/src
1 error
make[1]: stopped in /usr/src
*** [buildkernel] Error code 2
make: stopped in /usr/src
1 error
make: stopped in /usr/src
[gio@pcbsd-i7] ~/crochet%

Hello, I find the problem, ona package missing in my pcbsd: devel/gmake. thanks to https://www.raspberrypi.org/forums/viewtopic.php?f=85&t=90613

That is strange. I'll dig in and see what would be depending on it and see if we can either remove it or add a check for it as needed.

We used to need gmake to build U-Boot, but now we're using the port, so I don't know that it is needed.
It's definitely not needed for building the FreeBSD kernel which is what Giovanni was having trouble with, so I suspect there is something else going on there.

Hello, yes, I'm in truble with an other things. I had intended to reopen the issue and now I see that you've been paying attention to my report. Wonderfull !!  I think first I was in truble with FreeBSD repositories, and Today I  'm not sure to use https://svn.freebsd.org/base/release/10.2.0/
I fork your repo to https://github.com/giovannimanzoni/crochet , for my test. I think I add some beautifull improvement, you can diff. My spirit is to have a script full working without prompt to user to do thing. I think that nowdays we can write automatic script to handle all exception in the best way.
I force git  to add config.sh so you can test exactly my configuration.
If you try my version of script, during compilation it fail with
fail build.txt
and this is the log
log.txt
I've 24 thread i7 cpu, for see that error, I've to stay on the monitor for see the message on the screen. Only now I see this error between compiler message...I don't know/remember how, but one time I was able to make full working image, flash and boot BBB with FreeBSD and in this time I do not know it the message has been shown and the compiler create the image anyway.
My final proposal is to add FOXG20 and than some other boards to your script like Pine64, and Zynq based boards. I've Raspberry and BBB so I can test how your script work.
I'm new to recompile FreeBSD and I would very very like to know what I miss. I've 10+ years experience in Linux embedded but I'm new to FreeBSD porting
Thanks !

@brd : "That is strange. I'll dig in and see what would be depending on it and see if we can either remove it or add a check for it as needed."
Yes you are right, I See this package was missing but then I follow some other howt-to's for rasberry and than back to BBB and than magically I build image for BBB. But when I try to clean and redo all think, same problem return.

Sorry, 12 thread so I can do make -j 24 and in an hour or minus I can repeat a clean rebuild

If you are having problems, you should re-run everything with no -j option.  The parallel builds mix a lot of messages which makes it hard to tell what command caused the actual error.

Ok I will run the script with no -j ... But what about repo to use ? And my fork ? But I read that rebuild freebsd is -j safe..

Now I've find raspbsd.org where there is bbb image made with FreeBSD 11 and specific svn revision. I Try this for see if make error will show up.
@brd: Whit which commamd you buil crosscompiling tools? With make XDEV=arm XDEV_ARCH=armv6 xdev ?

Some news...  with FreeBSD sourcer revision 291838
in my freebsd_src_build ( )  of my fork I try to do
-> https://lists.freebsd.org/pipermail/freebsd-arm/2015-July/011762.html
make -j 24 TARGET=arm TARGET_ARCH=armv6 buildworld
make -j 24 TARGET=arm TARGET_ARCH=armv6 KERNCONF=BEAGLEBONE buildkernel
-> http://www.onemansanthology.com/blog/freebsd-on-beaglebone-black/
make ${SRCJOBS} XDEV=arm XDEV_ARCH=armv6 xdev
building step go a bit next last point but fail
log.txt

I read that rebuild freebsd is -j safe..

Generally, it is safe.  But when there are errors, -j makes the messages harder to read.
Also, the cross-compile tools are only needed for building U-Boot.  You should be using the U-Boot port instead.  Then you don't need the cross-compile tools.

Ok thanks for tell me what cross compiling tools are need for. But for example what is the complete step by step how to for make one image for BBB ?  What versione/revisione should I use ? Have I to do something in /usr/src before re run crochet script ?

update: I try again with your repo and FreeBSD 11 -r 291838 and all go ok, image created. I try to boot now but I do not understand why in the past I can not do that. I will reinstall pc-bsd for try to know why...

uhm.. files in boot partition are not right generated.. uboot stop with some error with 0x100 0x200 error on mmc... but if i substitute them with files present on http://raspbsd.org/bbb.html image, the sd card boot with my FreeBSD build. I will investigate why...

it work now. I clean my pcbsd installation and now it work.

Hello, I have identical error in my log when building kernel as in initial message for this thread. It tries ty find (..)/sys/MY_VERSATILECONF
when it is not there ofcourse but deeper in source tree
crochet generated
make TARGET_ARCH=armv6 SRCCONF=/dev/null __MAKE_CONF=/dev/null KERNCONF=MY_VERSATILECONF -DNO_CLEAN -DNO_ROOT -DKERNFAST -DNO_ROOT -j 1 buildkernel
Is it -j 1 to blame?
I also installed devel/gmake after I found this page. But after installation it still produces ths error message. I did not clean crochet work directory. Shall I?

@giovannimanzoni

it work now. I clean my pcbsd installation and now it work.
What do you mean? You cleaned /obj?

https://github.com/freebsd/crochet/issues/149


Add support for HockeyApp "libs" parameter for Android NDK symbols from .so files

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Improvement Description
HockeyApp for Android supports symbolicating crashes in native (NDK) code by uploading a ZIP of the .so files as described in their knowledgebase:

Put all .so files from the project folders obj/local/$ABI/ into a .zip file. On HockeyApp, click on your version, then on "History" below "Builds", then on the tab "Symbols". There should be a button "Process .so files". Click it to upload the .zip with your .so files, then HockeyApp will dump the symbols and create the symbols.zip.

If you upload your builds through the API, you can set this file as the param libs.

I’d like to propose adding the libs param as an option to the HockeyApp action similar to the existing dsym parameter.
Please let me know if this is something of interest and I’ll go ahead with a pull request. This will require the option to be implemented in Shenzhen first (see nomad/shenzhen#321).

@triplef Thanks for submitting this issue to talk about this request. Unfortunately shenzhen is no longer maintained by the original author, so I don't think your issue is going to get any attention there.
We do have a fork of shenzhen that can be modified if neccessary. If this feature is critical to your workflow and you'd like to submit a PR there to add the libs param, I will be happy to review it. Let me know if you plan to do that. Thanks 👍

Sounds great, thanks for the feedback @asfalcone! I probably won’t get to it for a bit but I’m planning to take a stab at it in a couple of weeks.

Sounds good! just @ mention me in that PR or drop the link here so it doesn't get missed 😄


surface mesh (+others)

Hi, do you think we can:

Create a surface mesh type: when using a difference for example, the mesh would still be empty inside. Nice for 3d printing as well.
Have a way to thicken the mesh, as in Blender
Have a way to create mesh from points memory, via a simpler API?

It's really nice to see geometric processing crates in Rust.
Nice work!

Hey,

I'm not sure I understand the question. PolygonSoup and CornerTable are surface meshes approximated with triangles. Do you want to create a hollow inside of a model?
Depending on what you mean by "thicken", volume offset could be a solution. See examples/offset.rs.
CornerTable and PolygonSoup can be created from the list of vertices and face indices using the from_vertices_and_indices method. Are you looking for something that would accept just a list of vertices? I would appreciate suggestions on how to make API more intuitive.


Update Composer dependencies (2023-04-13-00-10)

Visual regression test passed!
View the visual regression test report


Support for filter from string expression

I'm attempting to use BindingListView with DataGridViewAutoFilter, but it seems that it uses string expression filters, therefore whenever I try AutoFilter, it throws an exception which appears to come from your code:
        string IBindingListView.Filter
        {
            get
            {
                return Filter.ToString();
            }
            set
            {
                throw new NotSupportedException("Cannot set filter from string expression.");
                //TODO: Re-instate this line once we have an expression filter
                //Filter = new ExpressionItemFilter<T>(value);
            }
}

It looks like you ran into some un-finished work. Sorry - I am not the original author of this code, I simply updated it to the latest version of Visual Studio and put it here on GitHub.
If you figure out how you'd like to change it to make this work, I'll be glad to pull your changes in to this repository.


The web site resets when tried to add facet glob for Docs

Problem 1
On git/github/lz4/lz4/dfed9fa1d77f0434306d377c4da1f7191d3ba08a, if I try to add a glob expression to docs I get a 400 returned, with the content data/described/facets Facets object can only contain data, dev, doc, examples, and tests
Screenshots:

Details regarding the issued request by the UI:
The payload of the POST request was:
{"described":{"facets":{"docs":["doc"]}}}

Problem 2
On git/github/apache/thrift/327ebb6c2b6df8bf075da02ef45a2a034e9b79ba, if I try to add a glob expression to docs the JS fails with
Uncaught (in promise) DOMException: Failed to execute 'setItem' on 'Storage': Setting the value of 'reduxPersist:ui' exceeded the quota.

and also the 400 from Problem 1
Screenshot:

related: https://github.com/clearlydefined/curated-data/pull/1258

The problem 1 might just be, that the key for in the JSON has to be "doc" instead of "docs"

thanks for tracking this down!
We are really close to getting this fixed in #629
https://github.com/clearlydefined/website/pull/629/files#diff-2433278eb16164dc386e0cced06c8a2aR261

@dabutvin
I also observe similar behavior with the entire page becoming white when I click "Curations".
https://clearlydefined.io/definitions/npm/npmjs/-/async-mutex/0.1.3
The trace from my Chrome browser appears to be throwing a TypeError.
react-dom.production.min.js:3744 TypeError: Cannot read property 'isFetching' of undefined
react-dom.production.min.js:4817 Uncaught TypeError: Cannot read property 'isFetching' of undefined
I had opened a similar ticket for this #485 .

ahhh, that's a bug
Let's get a new ticket open #682


Explicit versioning for KoreBuild in build.sh?

I'm stuck on beta3 for now and wanted to debug something around Http.Core. I tried to build the master branch on Linux (build.sh), and this line https://github.com/aspnet/HttpAbstractions/blob/master/build.sh#L26 got me stuck.
Without explicit versioning it pulls beta5 and the new names (dnx, dnu, etc.) while the rest of the build script wants kvm.sh.
I changed the line to:
mono .nuget/nuget.exe install KoreBuild -ExcludeVersion -o packages -nocache -pre -version 0.2.1-beta3

and everything built great. Is there some other/better way to do this?

That's a good suggestion. Can you file this on https://github.com/aspnet/Universe. We should do this when we make release branches.


Tests fail on Illumos/Solaris

I'm trying to run Prometheus under Illumos/Solaris (SmartOS, really), and while it is possible to build the project, two tests fail for me when running make test:
=== RUN TestTargetPoolReplaceTargets
--- FAIL: TestTargetPoolReplaceTargets (0.00s)
        targetpool_test.go:162: newTarget2 channel same as oldTarget2's
FAIL
FAIL    _/root/prometheus/retrieval     0.325s

=== RUN TestLocking
--- FAIL: TestLocking (0.00s)
        flock_test.go:37: File "/tmp/test_flock938114467/LOCK" locked twice.
FAIL
FAIL    _/root/prometheus/storage/local/flock   0.007s

I don't quite see why the targetpool_test one fails, but the lock test is more intriguing. I see that there is support for Solaris in storage/local/flock/flock_solaris.go, so I'm wondering if there is something in the build setup that makes it build the wrong version.
I'm using go version 1.4.2, with GCC 4.7.3 as the C compiler. Any pointers on why these tests fail and if I can debug them somehow?

That's interesting.
I've copied the flock code from the Go leveldb implementation, but never tried it myself. So it's perfectly possible to be broken on Solaris. I think the TestTargetPoolReplaceTargets test is flaky, anyway. But for the lock it would be interesting to get more insights. No clue where to start the search, though...

From what I understand fcntl locks files between processes, not inside a single process.
I only see one use of the flock.New where the error reads like "Prometheus already running?". This sounds more like locking between processes and if that is the case, the solaris implementation is working perfectly fine (tested with a simple program that locks a file, sleeps a few seconds and releases the lock, that I started twice in parallel).

None of the Prometheus developers use Solaris and this has been sitting here for 2 years, so it's unlikely this will ever get fixed by us. If there is something remaining to be fixed here, a PR would be appreciated.


Cannot use j in visual mode if there is a subsequent j mapping

Hey 👋🏾 ,
This is similar to #61 , in this case I have jk mapped in visual mode to <esc> (this mapping's not crucial tbh). When I'm in visual mode and try to press j it opens which key showing me my jk mapping but doesn't let j execute. If I press j again it works i.e. requiring a double press.

I'll add that trigger_blacklist so people can easily block certain triggers. Thank you for reporting!

@akinsho just added a new config option triggers_blacklist. I added the j and k for visual mode already, so no need to change anything.
Do let me know if you would still have any more issues.

Thanks for working on this @folke it's probably a good call for me to remove some mappings that overlap with native ones that aren't really needed anyway but the list will be helpful in case there's things I need to block 👍🏾 .

Does trigger_blacklist work for <C-w>?


Performance on mobile

Hi,
Do you know if it's possible to improve rendering performance on mobile (ios) with mesh visualizer ?
For example we got 20 FPS when we reach 3M vertex on the screen (we set "maxPointsPerFrame" at 10000).
We test it on iPad Pro (2nd gen) with Unity 2020.3.38f1.
We would like to got performance like "Zappcha" app (millions of vertex with best performance).
So we try to import glb of point cloud scan (with GltFast) and we got 60 FPS with 5 millions of vertex.
So what's wrong with mesh visualizer ? We we can't got 60 FPS with 5 millions of vertex ?

I have similar enquiry on iOS device to capture more points.
I got worst result on iphone 13 pro max : 500 000 points before dropping to 30fps. Is there any way (or suggestions !) to improve performance ?


Helm Template Changes

Closes #442
Putting this up for review but I don't plan to merge until I've tested some air-gapped cases to make sure everything is still working as expected.

I'm wondering if there are CRDs out there that create deployments/pods and we want to save those as well so I'm not sure if we should limit to known resources or if it would be better to search for "images" instead.


Add more VITS voices via piper

I know I previously mention edge-tts, which is cloud-based, fast and free, but under the GPL.  I have recently been trying out https://github.com/rhasspy/piper/, which uses the VITS model and is under the MIT.

Whilst epub2tts is extremely stable as far as features and functionality currently at least for me, just a +1 for this.
Piper might not sound quite as good as something like Coqui in most circumstances, although it is extremely fast and is under active development.
I'm not sure how easy it would be to implement, although it is something that would be nice to see in the future.

This seems like it would be worth adding, I will take a look at https://github.com/rhasspy/piper/?tab=readme-ov-file#running-in-python and see. It will probably be a while (a few weeks at least) before I've got time again for this, but it looks like it might not be very difficult.

This is going to be a problem that needs to be resolved before incorporating piper: https://github.com/rhasspy/piper/issues/395
I'm able to install on linux without trouble, but my primary dev environment is macOS, and I would not want to introduce a dependency that makes it so epub2tts can not be installed on mac. I'll keep an eye on this though while I poke at a test integration branch.

There's a first pass at this, still needs a lot of work around model name and speaker, and I have not tested anything with other languages, etc. BUT the branch https://github.com/aedocw/epub2tts/tree/add-piper has a very simple implementation that seems to work in a minimal sense. Adds --engine piper option, and in the future will support --model <piper model> and --speaker <piper speaker>. Might also have to support --language but that might be covered by your model choice, need to check.

There's a first pass at this, still needs a lot of work around model name and speaker, and I have not tested anything with other languages, etc. BUT the branch https://github.com/aedocw/epub2tts/tree/add-piper has a very simple implementation that seems to work in a minimal sense. Adds --engine piper option, and in the future will support --model <piper model> and --speaker <piper speaker>. Might also have to support --language but that might be covered by your model choice, need to check.

Awesome, this is great!
Just FYI, I got the following error using the branch with Ubuntu/PopOS:
Engine is Piper, model is /home/dr_farts/.local/piper/en_US-lessac-medium.onnx
Traceback (most recent call last):
  File "/home/dr_farts/venv/bin/epub2tts", line 33, in <module>
    sys.exit(load_entry_point('epub2tts==2.4.0', 'console_scripts', 'epub2tts')())
  File "/home/dr_farts/venv/lib/python3.10/site-packages/epub2tts.py", line 837, in main
    mybook.read_book(
  File "/home/dr_farts/venv/lib/python3.10/site-packages/epub2tts.py", line 486, in read_book
    self.voice = PiperVoice.load(self.model_name)
  File "/home/dr_farts/venv/lib/python3.10/site-packages/piper/voice.py", line 34, in load
    with open(config_path, "r", encoding="utf-8") as config_file:
FileNotFoundError: [Errno 2] No such file or directory: '/home/My_user/.local/piper/en_US-lessac-medium.onnx.json'

In order to fix, I manually pulled in the correct piper model via:
echo 'Welcome to the world of speech synthesis!' | piper   --model en_US-lessac-medium   --output_file welcome.wav

and then added the folder:
mkdir /home/dr_farts/.local/piper
cd /home/dr_farts/.local/piper
cp '/home/dr_farts/epub2tts/en_US-lessac-medium.onnx' .
cp '/home/dr_farts/epub2tts/en_US-lessac-medium.onnx.json' .

Obviously this was a quick fix and should be done differently, but it worked for a quick and dirty solution. Piper sounds great and ill probably use this branch as a starting point with a couple of creative commons books (more of a proof of concept than anything, comparing them all). Piper is very quick compared to the others, but sounds a bit more robotic, which is fine to me.

There's a first pass at this, still needs a lot of work around model name and speaker, and I have not tested anything with other languages, etc. BUT the branch https://github.com/aedocw/epub2tts/tree/add-piper has a very simple implementation that seems to work in a minimal sense. Adds --engine piper option, and in the future will support --model <piper model> and --speaker <piper speaker>. Might also have to support --language but that might be covered by your model choice, need to check.

Awesome, this is great!
Just FYI, I got the following error using the branch with Ubuntu/PopOS:
Engine is Piper, model is /home/my_user/.local/piper/en_US-lessac-medium.onnx
Traceback (most recent call last):
  File "/home/my_user/venv/bin/epub2tts", line 33, in <module>
    sys.exit(load_entry_point('epub2tts==2.4.0', 'console_scripts', 'epub2tts')())
  File "/home/my_user/venv/lib/python3.10/site-packages/epub2tts.py", line 837, in main
    mybook.read_book(
  File "/home/my_user/venv/lib/python3.10/site-packages/epub2tts.py", line 486, in read_book
    self.voice = PiperVoice.load(self.model_name)
  File "/home/my_user/venv/lib/python3.10/site-packages/piper/voice.py", line 34, in load
    with open(config_path, "r", encoding="utf-8") as config_file:
FileNotFoundError: [Errno 2] No such file or directory: '/home/my_user/.local/piper/en_US-lessac-medium.onnx.json'

In order to fix, I manually pulled in the correct piper model via:
echo 'Welcome to the world of speech synthesis!' | piper   --model en_US-lessac-medium   --output_file welcome.wav

and then added the folder:
mkdir /home/my_user/.local/piper
cd /home/my_user/.local/piper
cp '/home/my_user/epub2tts/en_US-lessac-medium.onnx' .
cp '/home/my_user/epub2tts/en_US-lessac-medium.onnx.json' .

Obviously this was a quick fix and should be done differently, but it worked for a quick and dirty solution. Piper sounds great and ill probably use this branch as a starting point with a couple of creative commons books (more of a proof of concept than anything, comparing them all). Piper is very quick compared to the others, but sounds a bit more robotic, which is fine to me.

Tested on a debian testing VM with pipx.  Same as Michael, doesn't download model, but works
ln -s ~/.local/share/pipx/venvs/epub2tts/bin/piper ~/.local/bin/; echo 'Welcome to the world of speech synthesis!' | piper   --model en_US-lessac-medium   --output-raw |   aplay -r 22050 -f S16_LE -t raw -; mkdir ~/.local/piper; cp './en_US-lessac-medium.onnx' ~/.local/piper; cp './en_US-lessac-medium.onnx.json' ~/.local/piper
epub2tts ./sample.txt --sayparts --engine piper works after that

Thanks both of you for sharing this. Once the issues with installing on apple silicon are resolved, I'll do some more work to clean this up and make it usable.
In the mean time I suggest you check out the --engine edge option. It's not super fast, but it doesn't use local CPU so it's pretty painless to leave running in screen/tmux, and the quality is better than almost everything else. Arguably XTTS still sounds better, but the occasional repeats and gibberish get annoying (to me) after a while.

Hi again,
I'm just curious if there is any update on this at all?
Although it's somewhat robotic, piper is extremely fast even on cpu which is a plus for certain applications.
I picked up an m1 mac recently, so am happy to test if that would help and come back with some feedback.
If you've moved on to epub2tts-edge I also understand, and really appreciate the work you've done on this utility.
It is really the best program out there for converting books into good quality tts that I've found, as the rest use either openai, azure or another online text to speech service.
Thanks as always.

It looks like there are still open issues around installing on mac (https://github.com/rhasspy/piper/issues/395). Feel free though to try it out and see if the issues are resolved now on mac. I don't think I'll have much time to play with this over the next few weeks (getting busy these days!) but update here if it is actually working OK on mac, then I could try to clean up that piper branch and add it to main.


pachctl <noun> is broken in v1.4

pachctl commit right now just returns nothing. Either this should not be a command (and error) or it should print out the --help for that noun. I think in v1.3 is prints the help so I think thats the way to go.
We also need to update the --help docs to actually list all the <verb-commit> commands that are available because seeing the actions that can be taken on commits in clearly useful in this context.
Ditto for all other nouns, repo, file, pipeline, etc.

This is identical to the behavior in 1.3.


{CI} Test speed up

Description

This PR will speed up our test.

Profile
Test Case
Before
After
Total saving time

Latest
test_show_built_in_policy
536.57s
3s

2019-03-01
test_show_built_in_policy
210.69s
3s

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

CI