bats: 0.4.0 -> 1.1.0

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

Success on aarch64-linux (full log)
Attempted: bats
Partial log (click to expand)
stripping (with command /nix/store/8wl4dykwswy42wxj671b6k7vk2ydxg86-binutils-2.30/bin/strip and flags -S) in /nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/libexec  /nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/bin
patching script interpreter paths in /nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0
/nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/libexec/bats-core/bats-preprocess: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/9hsgp158m12qi4dsvz6x6dxy5rkiind9-bash-4.4-p23/bin/bash"
/nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/libexec/bats-core/bats-format-tap-stream: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/9hsgp158m12qi4dsvz6x6dxy5rkiind9-bash-4.4-p23/bin/bash"
/nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/libexec/bats-core/bats-exec-test: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/9hsgp158m12qi4dsvz6x6dxy5rkiind9-bash-4.4-p23/bin/bash"
/nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/libexec/bats-core/bats-exec-suite: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/9hsgp158m12qi4dsvz6x6dxy5rkiind9-bash-4.4-p23/bin/bash"
/nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/libexec/bats-core/bats: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/9hsgp158m12qi4dsvz6x6dxy5rkiind9-bash-4.4-p23/bin/bash"
/nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0/bin/bats: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/9hsgp158m12qi4dsvz6x6dxy5rkiind9-bash-4.4-p23/bin/bash"
checking for references to /build in /nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0...
/nix/store/f92h4wlgbqnwlif78303xj5r69k8pqhr-bats-1.1.0

Success on x86_64-darwin (full log)
Attempted: bats
Partial log (click to expand)
/nix/store/5im29qx9rni3w8l3j8i2yr22sin55kxv-cctools-binutils-darwin/bin/strip is /nix/store/5im29qx9rni3w8l3j8i2yr22sin55kxv-cctools-binutils-darwin/bin/strip
stripping (with command /nix/store/5im29qx9rni3w8l3j8i2yr22sin55kxv-cctools-binutils-darwin/bin/strip and flags -S) in /nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/libexec  /nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/bin
patching script interpreter paths in /nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0
/nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/bin/bats: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/zbhk0jhc9y8hmbcax9nvddbik3rgsary-bash-4.4-p23/bin/bash"
/nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/libexec/bats-core/bats: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/zbhk0jhc9y8hmbcax9nvddbik3rgsary-bash-4.4-p23/bin/bash"
/nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/libexec/bats-core/bats-exec-test: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/zbhk0jhc9y8hmbcax9nvddbik3rgsary-bash-4.4-p23/bin/bash"
/nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/libexec/bats-core/bats-preprocess: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/zbhk0jhc9y8hmbcax9nvddbik3rgsary-bash-4.4-p23/bin/bash"
/nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/libexec/bats-core/bats-format-tap-stream: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/zbhk0jhc9y8hmbcax9nvddbik3rgsary-bash-4.4-p23/bin/bash"
/nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0/libexec/bats-core/bats-exec-suite: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/zbhk0jhc9y8hmbcax9nvddbik3rgsary-bash-4.4-p23/bin/bash"
/nix/store/ixrd7fc6psd58z1608hl4d9bd2km91bx-bats-1.1.0

Success on x86_64-linux (full log)
Attempted: bats
Partial log (click to expand)
stripping (with command /nix/store/vp40my263xk32f07788srrgl59rycsna-binutils-2.30/bin/strip and flags -S) in /nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/libexec  /nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/bin
patching script interpreter paths in /nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0
/nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/libexec/bats-core/bats-exec-test: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/6v88ick1cxnn5g91m8qrrqww0lrlr27x-bash-4.4-p23/bin/bash"
/nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/libexec/bats-core/bats: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/6v88ick1cxnn5g91m8qrrqww0lrlr27x-bash-4.4-p23/bin/bash"
/nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/libexec/bats-core/bats-exec-suite: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/6v88ick1cxnn5g91m8qrrqww0lrlr27x-bash-4.4-p23/bin/bash"
/nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/libexec/bats-core/bats-format-tap-stream: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/6v88ick1cxnn5g91m8qrrqww0lrlr27x-bash-4.4-p23/bin/bash"
/nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/libexec/bats-core/bats-preprocess: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/6v88ick1cxnn5g91m8qrrqww0lrlr27x-bash-4.4-p23/bin/bash"
/nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0/bin/bats: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/6v88ick1cxnn5g91m8qrrqww0lrlr27x-bash-4.4-p23/bin/bash"
checking for references to /build in /nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0...
/nix/store/2gprvix5q9fkhdr4whn9w9is61n5zbs8-bats-1.1.0


[ENH, MRG] Add provenance to TFR baseline application

Part of https://github.com/mne-tools/mne-python/pull/10920.

Ok to merge? Maybe @drammock you could take a look if you have a minute

Ok to merge?

changes look reasonable, just one code question (below), and one other question:

Ok to merge?

are you in a particular hurry to see this merged / is it important to get this into 1.1?

Not in a terrible hurry but another PR depends on it which is making progress in GSoC which would be nice to keep things moving forward.

@alexrockhill merge when it’s all green 🙏

@agramfort "merge when green" is now a clickable button "enable auto-merge (squash)" :)


Facebook plugin : showDialog apprequests new issue

Hello guys,
I installed last month the Facebook plugin for Cordova. Last week I implemented the showDialog to let people invite their friends to the app using "apprequests" method. It worked when I tried with two friends, they got the invites.
Today, trying again, everything works fine - except that the people I invite never get any notification.
Here is the code of the call (using NGCordova's wrapper) :
$cordovaFacebook.showDialog({ method: "apprequests", message: "Come on man, check out my application." })
.then(function(success) {
    console.log("success", success);
    // success
}, function (error) {
    console.log("error", error);
    // error
});

The console shows success :
success Object {to: Array[3], request: "id_of_request"}
    request: "id_of_request"
    to: Array[3]
        0: "user_id_1"
        1: "user_id_2"
        2: "user_id_3"
        length: 3

The user ids were good also. But no notifications for them on their Facebook account.
What I tried so far :

Reinstalling Facebook plugin
Create another Facebook app and use its credentials instead
Installing the latest version of NGCordova (unlikely to help, is simply a wrapper...)
Using other methods, like "feed", and post to my wall - it works.

Taking NGCordova out of the picture, using basic function behave the same :
facebookConnectPlugin.showDialog({ method: "apprequests", message: "Come on man, check out my application." }, function(success) {
        console.log(success);
    }, function(error) {
        console.log(error);
    });

This triggers success as well and still no notifications.
Thanks ahead for any help, I think I'm out of ideas...

Not related to NGCordova, should have opened it directly on the plugin's page. There it is :
https://github.com/Wizcorp/phonegap-facebook-plugin/issues/908


Address cleanup concern when kyverno tests fail

Cleanup can be a concern when the tests are run on a long running
cluster.  This change makes sure cleanup is called.
Refs:

https://github.com/stolostron/backlog/issues/22938

Signed-off-by: Gus Parvin<EMAIL_ADDRESS>

/hold

/retest

/retest

hibernation failures
/retest

/retest
Maybe it will get a new cluster...

/retest

/unhold

Looks like an unrelated error in limitrange test.
/retest


v5.6.3 broken on Windows | Failed to execute script kcc

Just noticed that the Windows build is broken...

I have the same error on windows 10 22h2  all previous versions work without this error

When I try to build it myself using the disabled build KCC for windows workflow it works fine though: https://github.com/axu2/kcc/actions/runs/5835174394

I'm seeing the same issue with Windows 11.

OK I found why.
The minimum version in the code has been set to python 3.8
and that github action
works with python by default 3.7
see.
https://github.com/JackMcKew/pyinstaller-action-windows/tree/main#python-310
I'm rebuilding


Implement data management API for worker nodes

Moving data into a worker node is often quite a hassle. We have to copy data into the workers data directory, after which we have to change the absolute path to match the new location.
I suggest the following changes:

Documentation should reflect the difference between Assets and Datasets.
Assets must use relative paths relative to the data.yml, in order to be portable.
a brane data push or brane data upload needs to be implemented, which takes an asset. Which sends it to the worker node.

@lut99, what do you think?

Good point!

Yes plz, even I'm always hazy on which does which;
That's OK, provided that nothing in the code directly uses assets anymore OR any part that uses it has its code updated to canonicalize the path before mounting it to a Docker volume if it doesn't already (Docker requires absolute paths).
I'm against a brane data push; it's not the scientist's job to make data available on the worker node simply because it requires updating the policy on the worker. Instead, we can make a branectl data push (which is the worker-side tool, after all). Longer-term, I have in my mind to either have central host a package-like repository for data to which scientists can push (but necessarily isn't shielded by policy); or to make an optional flag for workers to allow "guest data".

That aside, I agree it's a hassle. Something like branectl data push is most definitely a very nice option (or perhaps branectl data build, to mirror brane's operation but for worker managers).


Sudoku Solver #18 added

Related Issue
Add Sudoku Solver

[x] DevIncept Participant

[x] Contributor

Closes: #18
Describe the changes you've made

[x] I have added Sudoku Solver using Backtracking

Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)

[x] New feature (non-breaking change which adds functionality)

[ ] Code style update (formatting, local variables)

[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

[ ]  This change requires a documentation update

How Has This Been Tested?
Describe how have you verified the changes made
I ran the program in my ubuntu operating system and ide is the text editor of ubuntu
Checklist:

[x] My code follows the guidelines of this project.

[x] I have performed a self-review of my own code.

[x] I have commented on my code, particularly wherever it was hard to understand.

[x] I have made corresponding changes to the documentation.

[x] My changes generate no new warnings.

Related Issue
Add Binary Search.
DevIncept Participant
Contributor
Closes: #18
Describe the changes you've made

[x]  I have added Sudoku Solver using Backtracking

Type of change
What sort of change have you made:

[ ]  Bug fix (non-breaking change which fixes an issue)
[x]  New feature (non-breaking change which adds functionality)
[ ]  Code style update (formatting, local variables)
[ ]  Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ]   This change requires a documentation update

How Has This Been Tested?
Describe how have you verified the changes made
I ran the program in my ubuntu operating system and ide is the text editor of ubuntu
Checklist:

[x]  My code follows the guidelines of this project.
[x]  I have performed a self-review of my own code.
[x]  I have commented on my code, particularly wherever it was hard to understand.
[x]  I have made corresponding changes to the documentation.
[x]  My changes generate no new warnings.
[x]  I have added test cases that prove my fix is effective or that my feature works.

Just tick mark the boxes which suits your pull request in order to follow the template and so that we can review accordingly

Related Issue
Add Binary Search.
DevIncept Participant
Contributor
Closes: #18
Describe the changes you've made

[x]   I have added Sudoku Solver using Backtracking

Type of change
What sort of change have you made:

[ ]   Bug fix (non-breaking change which fixes an issue)
[x]   New feature (non-breaking change which adds functionality)
[ ]   Code style update (formatting, local variables)
[ ]   Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ]    This change requires a documentation update

How Has This Been Tested?
Describe how have you verified the changes made
I ran the program in my ubuntu operating system and ide is the text editor of ubuntu
Checklist:

[x]   My code follows the guidelines of this project.
[x]   I have performed a self-review of my own code.
[x]   I have commented on my code, particularly wherever it was hard to understand.
[x]   I have made corresponding changes to the documentation.
[x]   My changes generate no new warnings.
[x]   I have added test cases that prove my fix is effective or that my feature works.

Just tick mark the boxes which suits your pull request in order to follow the template and so that we can review accordingly

now see I did some changes. I guess what all I ticked suits my pull request.

Amazing work done. PR approved. Very well done. It was a wonderful choice of the script. 👏🤩@dhruv-varshney

Thank you @prathimacode-hub

Kindly fill the form with your PR link. You have 1 PR merged in this project.  Form is available in slack project channel. @dhruv-varshney

ok ma'am , i will do it now only . Thanks for telling

Hello @prathimacode-hub . I filled so many forms that are there in the slack channel but i can not able to get the link of the form where i have to fill the PR link. If possible Kindly send me the link here.

Ok, sure here is the link : https://docs.google.com/forms/d/e/1FAIpQLScBzeTg4HA0pIGtP6tHaiVUdPbAm9Y3kMn75GBGXvQVQv6wPA/viewform
As said 1 PR = 1 Filled Form @dhruv-varshney


How to get API Key

Hi,
I am trying to using fabric.io for my Phonegap application. In that process I have created an account and logged in but I am only onboard page unable to redirect or locate the organisational page for finding the API key. Please help me to find the API key.
Thank you
Regards
Seshendra

@seshendramln sorry (not sorry) to be a rude but the reason why is right here in the redme.md in 'Note:' section

in that link you will find something like this

@vasani-arpit  Sorry! I have annoyed you. Before I read the whole docs and tried it but I could not able to got the API key that is why the reason I asked you.


[No QA][TS migration] Migrate 'RenamePriorityModeKey.js' lib to TypeScript

Details

Waiting for the @NikkiWines answer in Slack thread about if we should remove this old Onyx migration file or migrate it to TypeScript
Fixed Issues

$ https://github.com/Expensify/App/issues/24852
PROPOSAL: https://github.com/Expensify/App/issues/24852
Tests

N/A

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

Offline tests

N/A
QA Steps

N/A

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

Web

N/A

Mobile Web - Chrome

N/A

Mobile Web - Safari

N/A

Desktop

N/A

iOS

N/A

Android

N/A

@Skalakid We can remove the file: https://expensify.slack.com/archives/C01GTK53T8Q/p1694702736698569

@Skalakid What is the status of this PR? This has merge conflicts?
Could you kindly fix the same? So that I can review the PR?

@abdulrahuman5196 Okay, I fixed the conflicts ;)

: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/Julesssss in version: 1.3.81-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/Julesssss in version: 1.3.83-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


changing listener mechanism and marking fields transient

fixes #531
Also forces there to be only a single project name change listener (before multiple could have been registered). Also uses a more appropriate listener mechanism.

Thank you for doing this. LGTM.


@conda-forge-admin, please add bot automerge

@conda-forge-admin, please add bot automerge

@conda-forge-admin, please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/cmder-feedstock#2.


Comparison to alternatives in README

To help a prospective user, perhaps a short comparison to similar packages could be made in the README, such as to Dask and GraphKit.

That's a good idea, thanks for the suggestion @markcampanelli!

schedula is also alternative.


Typedoc filenames consists of path

typedoc used with typedoc-plugin-markdown plugin generates long file names with path. How can we exclude the path names and get only class names in output filenames?
I have used expand mode in entrypoint strategy.

Paths are created according to the fully qualified name for files, there is a plugin, typedoc-plugin-merge-modules which might serve your use case

Thanks @Gerrit0, it served my case close to what I was looking for. :)


Add test that we actually save the user's real email address.

Description
This just configured the fake oidc provider to return an email address so we can prove we save it.
Checklist

[x] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

It's not really javascript, just config.  Thanks!


[Request] Torrentio - Automatically delete torrents from RD list

Whenever a link is selected, it automatically adds them to the RD Torrent List.
Is there any way to automatically delete torrents from RD list, similar to what Kodi addons already do?

No, I don't think that this can be added to torrentio, due to the different way addon system works in stremio. All addons in stremio are remote, deployed on servers, and whenever you need to resolve a url to a RD download link it has to go through the server via redirecting. Also whenever you seek in already watched video it also has to go through the server, since the players use the original url, not the final redirect url.
Another point is efficiency, since this is a remote server that many user make calls to, it has to be efficient and make least amount of api calls to RD servers, so it makes sense to keep the created torrent and just resolve the url instead of creating the torrent each time (ie watching multi season torrent, or continuing a movie the next day etc). Some  people also just add links through torrentio and then watch them elsewhere through RD or some other app.
Another point is that addons don't know when you've finished watching a video, so it cannot clean up after you finished watching smth, as the addons are not informed about it.
Also there's no limit for torrent links in RD, so  personally I don't see the benefit of this, where as leaving them has clear benefits outlined above.


[FIX] Terraform provider version inconsistency within stages

Reference Issues or PRs
Fixes #2614
What does this implement/fix?
Put a x in the boxes that apply

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds a feature)
[ ] Breaking change (fix or feature that would cause existing features not to work as expected)
[ ] Documentation Update
[ ] Code style update (formatting, renaming)
[X] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] Other (please describe):

Testing

[X] Did you test the pull request locally?
[ ] Did you add new tests?

How to test this PR?

Any other comments?
The main change in this PR is that Terraform/OpenTofu versions and required providers are removed from the stage templates and instead injected via stages.tf_objects with version data from constants.py. stages.tf_objects.NebariOpentofuRequiredVersion and stages.tf_objects.NebariOpentofuRequiredProvider were added.
Now all subclasses of NebariTerraformStage present with a tf_objects method except terraform_state will call include the result of super().tf_objects in their return value:
class FooStage(NebariTerraformStage):
    def tf_objects(self) -> List[Dict]:
        return [
            *super().tf_objects(),
            ...,
        ]

This way we can also inject NebariOpentofuRequiredVersion into NebariTerraformStage and have subclasses inherit it.

I've executed the changes I intended to make, however, when running Nebari, submodules are not inheriting required providers from the parent module. In particular, this is happening in some of the following modules:
./kubernetes_ingress/template/modules/kubernetes/ingress/
./kubernetes_services/template/modules/kubernetes/cephfs-mount/
./kubernetes_services/template/modules/kubernetes/
./kubernetes_services/template/modules/kubernetes/nfs-mount/
./kubernetes_services/template/modules/kubernetes/forwardauth/
./kubernetes_services/template/modules/kubernetes/nfs-server/
./kubernetes_services/template/modules/kubernetes/services/jupyterhub-ssh/
./kubernetes_services/template/modules/kubernetes/services/jupyterhub/
./kubernetes_services/template/modules/kubernetes/services/keycloak-client/
./kubernetes_services/template/modules/kubernetes/services/
./kubernetes_services/template/modules/kubernetes/services/redis/
./kubernetes_services/template/modules/kubernetes/services/monitoring/
./kubernetes_services/template/modules/kubernetes/services/monitoring/loki/
./kubernetes_services/template/modules/kubernetes/services/postgresql/
./kubernetes_services/template/modules/kubernetes/services/rook-ceph/
./kubernetes_services/template/modules/kubernetes/services/dask-gateway/
./kubernetes_services/template/modules/kubernetes/services/minio/
./kubernetes_services/template/modules/kubernetes/services/argo-workflows/
./kubernetes_services/template/modules/kubernetes/services/conda-store/
./nebari_tf_extensions/template/modules/nebariextension/
./nebari_tf_extensions/template/modules/helm-extensions/
./kubernetes_initialize/template/modules/
./kubernetes_initialize/template/modules/initialization/
./kubernetes_initialize/template/modules/cluster-autoscaler/
./kubernetes_initialize/template/modules/traefik_crds/
./kubernetes_initialize/template/modules/extcr/
./kubernetes_initialize/template/modules/nvidia-installer/
./kubernetes_keycloak/template/modules/kubernetes/keycloak-helm/

Just to see if it would work, I tried adding the correct required providers to those locations. It worked, so this suggest that it might be a good option to be able to dynamically inject required providers from constants.py this would be generalizing what is currently done at the root module to submodules as well.
@viniciusdc What do you have any input?
CC: @marcelovilla

Interesting. Based on the openTofu docs for the child module requirements (https://opentofu.org/docs/language/providers/requirements/), you are indeed right. We would need to inject the provider object into the modules as well. @smokestacklightnin  Good catch!

I have a proof of concept (base class, method override).
The interface is up for discussion; I'd like others' opinions. If someone doesn't like my NebariTerraformStage.tf_objects_in_module method, it would help me to hear if they have a better idea.
To be honest, I don't love the idea of putting root module required Terraform providers in tf_objects and submodule Terraform required providers in render. I would like to come up with a more elegant solution, but I also want to hear anybody else's ideas or suggestions.
CC: @viniciusdc @marcelovilla @dcmcand

Hi @smokestacklightnin thanks for the work so far!

To be honest, I don't love the idea of putting root module required Terraform providers in tf_objects and submodule Terraform required providers in render. I want to come up with a more elegant solution, but I also want to hear anybody else's ideas or suggestions.

I also don't like this. I will play around with these changes this afternoon and some opentofu/terraform configurations to see if we can make this more concise.

Maybe in a future PR we can have the provider settings in a separate json file, not a strong requirement though and only if viable enough

@viniciusdc
# This file is maintained automatically by "tofu init".
# Manual edits may be lost in future updates.

provider "registry.opentofu.org/hashicorp/helm" {
  version = "2.16.1"
  hashes = [
    "redacted"
  ]
}

provider "registry.opentofu.org/hashicorp/kubernetes" {
  version = "2.35.0"
  hashes = [
    "redacted"
  ]
}

provider "registry.opentofu.org/opentofu/helm" {
  version     = "2.1.2"
  constraints = "2.1.2"
  hashes = [
    "redacted"
  ]
}

provider "registry.opentofu.org/opentofu/kubernetes" {
  version     = "2.35.0"
  constraints = ">= 2.20.0"
  hashes = [
    "redacted"
  ]
}

To give more insight, the PR as is looks great! though, during a recent deep dive with @smokestacklightnin I noticed that the warning of misconfiguration terraform spits out when not passing the direct provider blocks into the child modules might be coming due to a possible internal error with how terraform interacts with opentofu.
Based on their docs https://opentofu.org/docs/internals/provider-registry-protocol/ the CLI should be able to import both available aliases for the providers nebari uses, though for many cases both /hashcorps and /opentofu "namespaces" exists leading to the behavior seen in these warnings (my assumption) and which can be seen in the lock file above... I am not entirely sure if they expect this, and I want to do a quick test with simpler k8s .tf deployment unrelated to nebari testing the behavior of provider imports and child modules
There might be a configuration we missed when we migrated.

I want to do a quick test with simpler k8s .tf deployment unrelated to nebari testing the behavior of provider imports and child modules

I have simple examples of using hashicorp and terraform providers with and without injecting providers in submodules. I also included the output of tofu init in output-init.log in each branch. Feel free to build upon what I have there. Long story short, we should inject into submodules so we can arbitrarily specify required providers and avoid misconfiguration errors. This also reflects the OpenTofu documentation:

Only provider configurations are inherited by child modules, not provider source or version requirements. Each module must declare its own provider requirements. This is especially important for non-HashiCorp providers.

Moving forward, @viniciusdc and I discussed two options:

Use internal Nebari machinery to inject necessary required providers into submodules. I have a concept in mind for an implementation for this.
Contribute upstream to Terraform/OpenTofu to implement the functionality of submodules inheriting required provider versions from parent modules

CC: @marcelovilla @dcmcand

My honest opinion is that it is easier to inject submodule required providers manually now and change to using inherited required providers from parent modules in the future if/when OpenTofu supports this, rather than waiting for another project to merge our changes. I also don't know Go, but am activetly trying to learn.
The code I have written would be easy to remove for the injection process in submodules if OpenTofu started supporting version requirement inheritance in the future. This is because it requires minimal additional machinery, just _tf_objects_required_providers.
We need this feature soon because other issues depend on updating versions (#2806, #2870, #2872).
Ideas? @marcelovilla @viniciusdc @dcmcand


If there is any .so (e.g., _C.so) file in a package, Pynguin stops generating tests and reports FileNotFoundError: [Errno 2] No such file or directory: '.../_C.py'

I am trying to generate tests for the project torchvision.
After compiling torchvision, a file named _C.so is generated inside the package torchvision. Running Pynguin on the compiled project results in the following error:
FileNotFoundError: [Errno 2] No such file or directory: '.../_C.py'.
I found a workaround for now (I just need to add an empty file named _C.py next to the _C.so file).
I looked into Pynguin's source code. I think the bug is inside the following function:
https://github.com/se2p/pynguin/blob/main/pynguin/analyses/seeding/constantseeding.py#L139, which is:

Module: pynguin/analyses/seeding/constantseeding.py
Function: _find_modules
Line: 139

The problem is that the function iter_modules returns .so files as well as .py files.
If I am right, this function needs to check if the modules returned by iter_modules are definitely .py files and skipped otherwise.
This bug (if it is a bug) can be reproduced by simply putting an empty .so file in a package and trying to generate tests for the modules inside that package, using Pynguin.
PS: awesome tool!

Hi @mohrez86 ,
Thank you for your interest in Pynguin and your warm words.  And also thank you for reporting this issue.
I agree with your observation and the bug location.  We have, honestly, never tried Pynguin on a project that uses modules written in C, i.e., compile down to some *.so file.  Thus, we have not yet found the issue ourselves.
I'll play around with some native-code projects to maybe find some more problems and provide a fix release in the next couple of days.
Best,
Stephan

Looking into this, I have yet another solution for you:
The issue is raised by the static constant seeding, which takes constants (i.e., numbers and strings) from the source code and uses them as seeded values for the input generation (this can be beneficial for test generation, as it was shown, e.g., by Fraser and Arcuri in their 2012 paper “The Seed is Strong: Seeding Strategies in Search-Based Software Testing”).
You can easily switch this of by adding --constant-seeding False to your command line.
Anyway, this is a bug that will be fixed in the near future.


benchtop: rework sov-db to commit to underlying DB

This reworks the sov-db bench to faithfully follow what sovereign-sdk does.

We now use the "native DB" as a key-value flat store along side the state DB.
The previous approach was only writing to an in-memory map, though it was reading from an (empty)
rocksdb instance. We now commit this map to disk.  Learn more about stacking.

Join @rphmeier and the rest of your teammates on  Graphite


Language Service Extensions

Split from #9038. This PR will likely need to be reopened against master once #10159 is merged, but it exists to track the progress of language service plugins.
@chuckjaz @ahejlsberg @mhegazy @rbuckton @vladima
This is, quite specifically, the kind of extension the @angular team has asked for. It allows for the override or filtering of most language service operations (completions, quick info, etc).
A language service provider can provide an override for the language service method of the same name. If it returns a value other than undefined, then the built-in value is not used, and the returned value is used instead (otherwise the return value of the built-in function is used). This value is then passed through any present filter methods for that function, which have the opportunity to intercept and modify the value before it is passed down the filter chain to the next extension. If a filter returns undefined, its return value is discarded and the result of the previous filter is passed forward instead.

@weswigham I'm very lot impatient to see your PR inside TypeSript. If I understand well, we will able to write a plugin to support for instance completion for angular controller, module inside JS file.
I tell me if you work will work too with tsserver? How to define custom plugins to load?

closing in favor of https://github.com/Microsoft/TypeScript/pull/12231. More docs available at https://github.com/Microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin.


Error deploying service fabric application from visual studio

If you use parameters for CpuCores in the ServicePackageResourceGovernancePolicy:

It is impossible to deploy project from visual studio. If you hardcode amount of cores it works. Also it works if you deploy from powershell.

The error is also not very informative:
Error in XML document (xxx, yyy)

@alex-carbonium does it work when using parameters and deploying using Powershell?

Please re-open if you are still facing this issue, but closing at this time.


Cell Logger Syntax Issues

Appears to be a few syntax issues from refactoring. Should be a quick fix

Everything looks fine on my end, might wait for one more deploy to see if anything else comes up

After 24 hours of continuous logging and some reboot cycles, the logger seems to do its job.


Update style of auto-generated docs_info markdown string

          > If we can also adapt to not show the titles quite so large or not default to setting titles based on docstring info parsed at all

If the user provides a full string, then that one will fully override the original one.
As per the current automatically-generated ones, I'll change the style of the generated markdown.
Originally posted by @tcompa in https://github.com/fractal-analytics-platform/fractal-tasks-core/issues/874#issuecomment-2540996203

Let's tackle this one we know how https://github.com/fractal-analytics-platform/fractal-tasks-core/issues/874 is solved & we handle the layout for that

That's great. I guess it will be useful to highlight some key words in bold, but otherwise makes sense to me :) And with those smaller headers, I'm fine with it


Laravel 5 fails to install

Please update your code latest yaml version
composer require "jonnyw/php-phantomjs:4.2"
./composer.json has been updated
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for jonnyw/php-phantomjs 4.2 -> satisfiable by jonnyw/php-phantomjs[v4.2.0].
    - Conclusion: remove symfony/yaml v3.0.1
    - Conclusion: don't install symfony/yaml v3.0.1
    - jonnyw/php-phantomjs v4.2.0 requires symfony/yaml ~2.3 -> satisfiable by symfony/yaml[v2.3.0, v2.3.1, v2.3.10, v2.3.11, v2.3.12, v2.3.13, v2.3.14, v2.3.15, v2.3.16, v2.3.17, v2.3.18, v2.3.19, v2.3.2, v2.3.20, v2.3.21, v2.3.22, v2.3.23, v2.3.24, v2.3.25, v2.3.26, v2.3.27, v2.3.28, v2.3.29, v2.3.3, v2.3.30, v2.3.31, v2.3.32, v2.3.33, v2.3.34, v2.3.35, v2.3.36, v2.3.37, v2.3.4, v2.3.5, v2.3.6, v2.3.7, v2.3.8, v2.3.9, v2.4.0, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.5.0, v2.5.1, v2.5.10, v2.5.11, v2.5.12, v2.5.2, v2.5.3, v2.5.4, v2.5.5, v2.5.6, v2.5.7, v2.5.8, v2.5.9, v2.6.0, v2.6.1, v2.6.10, v2.6.11, v2.6.12, v2.6.13, v2.6.2, v2.6.3, v2.6.4, v2.6.5, v2.6.6, v2.6.7, v2.6.8, v2.6.9, v2.7.0, v2.7.1, v2.7.2, v2.7.3, v2.7.4, v2.7.5, v2.7.6, v2.7.7, v2.7.8, v2.7.9, v2.8.0, v2.8.1, v2.8.2].
    - Can only install one of: symfony/yaml[v2.3.0, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.1, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.10, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.11, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.12, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.13, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.14, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.15, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.16, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.17, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.18, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.19, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.2, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.20, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.21, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.22, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.23, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.24, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.25, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.26, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.27, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.28, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.29, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.3, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.30, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.31, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.32, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.33, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.34, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.35, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.36, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.37, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.4, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.5, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.6, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.7, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.8, v3.0.1].
    - Can only install one of: symfony/yaml[v2.3.9, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.0, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.1, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.10, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.2, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.3, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.4, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.5, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.6, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.7, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.8, v3.0.1].
    - Can only install one of: symfony/yaml[v2.4.9, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.0, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.1, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.10, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.11, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.12, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.2, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.3, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.4, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.5, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.6, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.7, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.8, v3.0.1].
    - Can only install one of: symfony/yaml[v2.5.9, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.0, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.1, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.10, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.11, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.12, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.13, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.2, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.3, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.4, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.5, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.6, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.7, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.8, v3.0.1].
    - Can only install one of: symfony/yaml[v2.6.9, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.0, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.1, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.2, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.3, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.4, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.5, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.6, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.7, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.8, v3.0.1].
    - Can only install one of: symfony/yaml[v2.7.9, v3.0.1].
    - Can only install one of: symfony/yaml[v2.8.0, v3.0.1].
    - Can only install one of: symfony/yaml[v2.8.1, v3.0.1].
    - Can only install one of: symfony/yaml[v2.8.2, v3.0.1].
    - Installation request for symfony/yaml == <IP_ADDRESS> -> satisfiable by symfony/yaml[v3.0.1].

Installation failed, reverting ./composer.json to its original content.

I am looking into this. I am thinking of using an or operator in the composer require i.e. "symfony/yaml": "~2.8|~3.0" but it may break the tests for earlier PHP versions.

What would be a work around? I am running Symfony 3 too and I'm unable to install php-phantomjs.

I will get something up today. It might be a new major release that drops support for earlier PHP versions. I am just testing the possibilities at the moment.

Can you please try installing release 4.3.0 and let me know how you get on

composer require "jonnyw/php-phantomjs:4.3"
You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)

Installing jakoch/phantomjs-installer (2.1.1)
Downloading: 100%

Installing twig/twig (v1.24.0)
Downloading: 100%

Installing symfony/yaml (v3.0.2)
Downloading: 100%

Installing symfony/filesystem (v3.0.2)
Downloading: 100%

Installing symfony/dependency-injection (v3.0.2)
Downloading: 100%

Installing symfony/config (v3.0.2)
Downloading: 100%

Installing jonnyw/php-phantomjs (v4.3.0)
Downloading: 100%

symfony/dependency-injection suggests installing symfony/proxy-manager-bridge (Generate service proxies to lazy load them)
Writing lock file
Generating autoload files
Works


EPERM: operation not permitted, lstat electron.zip in windows due to corporate proxy preventing download

Preflight Checklist

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[x] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Issue Details
When trying to create an exe-File by using electron-packagr the following message gets displayed:
EPERM: operation not permitted, lstat 'C:\TEMP\electron-download-rCu75g\electron-v1.8.8-win32-x64.zip'

I run the following command: electron-packager . --overwrite --DEBUG=* --platform=win32 --arch=x64 --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName="MyApp"
``

Electron Packager Version:
14.0.0
Electron Version:
1.8.8
Operating System:
Windows 7 SP1
Last Known Working Electron Packager version::
I do not know. It was 2018 when i last build that application but since then I deleted it and reinstalled.

Expected Behavior
To build the exe File
Actual Behavior
Builds nothing
To Reproduce
I am a restricted user because of company guidelines. Also I operate behind a corporate proxy.
Additional Information

This changes nothing of the output.

Thanks for filing an issue! In order to help you with your problem, we're going to need more information about it. In particular:

Console output when you run electron-packager with the environment variable DEBUG=electron-packager (instructions for Windows and non-Windows). Please include the stack trace if one exists.

Can you try with Electron Packager 13.1.1?

Thanks for your help so far.
Here is the console output with debug option on:
D:\dev\projects\myapp_all\myapp-electron>electron-packager . --overwrite --platform=win32 --arch=x64 --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"myapp\" > log.txt
  electron-packager Electron Packager 14.0.0
  electron-packager Node v9.4.0
  electron-packager Host Operating system: win32 (x64) +0ms
  electron-packager Packager Options: {"_":["."],"deref-symlinks":true,"derefSymlinks":true,"download":{"rejectUnauthorized":true,"reject-unauthorized":true},"junk":true,"prune":true,"overwrite":true,"platform":"win32","arch":"x64","out":"release-builds","version-string":{"CompanyName":"CE","FileDescription":"CE","ProductName":"myapp"},"versionString":{"companyName":"CE","fileDescription":"CE","productName":"myapp"},"dir":".","protocols":[]} +2ms
  electron-packager Target Platforms: win32 +0ms
  electron-packager Target Architectures: x64 +1ms
  get-package-info Getting props:  [ [ 'productName', 'name' ],
  'version',
  [ 'dependencies.electron',
    'devDependencies.electron',
    'dependencies.electron-nightly',
    'devDependencies.electron-nightly',
    'dependencies.electron-prebuilt-compile',
    'devDependencies.electron-prebuilt-compile',
    'dependencies.electron-prebuilt',
    'devDependencies.electron-prebuilt' ],
  'author' ] +0ms
  get-package-info Looking up starting from directory:  D:\dev\projects\myapp_all\myapp-electron +2ms
  get-package-info Result so far: { values: {}, source: {} } +0ms
  get-package-info Checking props in package.json found at: D:\dev\projects\myapp_all\myapp-electron\package.json +5ms
  get-package-info Found prop: [ 'productName', 'name' ] +0ms
  get-package-info Found prop: version +0ms
  get-package-info Found prop: [ 'dependencies.electron',
  'devDependencies.electron',
  'dependencies.electron-nightly',
  'devDependencies.electron-nightly',
  'dependencies.electron-prebuilt-compile',
  'devDependencies.electron-prebuilt-compile',
  'dependencies.electron-prebuilt',
  'devDependencies.electron-prebuilt' ] +1ms
  get-package-info Couldn't find prop: author +1ms
  get-package-info Not all props satisfied, looking for parent package.json +0ms
  get-package-info Getting props:  [ 'author' ] +1ms
  get-package-info Looking up starting from directory:  D:\dev\projects\myapp_all +0ms
  get-package-info Result so far: { values:
   { productName: 'myapp',
     name: 'myapp',
     version: '1.0.2',
     'dependencies.electron': '^1.8.8',
     'devDependencies.electron': '^1.8.8',
     'dependencies.electron-nightly': '^1.8.8',
     'devDependencies.electron-nightly': '^1.8.8',
     'dependencies.electron-prebuilt-compile': '^1.8.8',
     'devDependencies.electron-prebuilt-compile': '^1.8.8',
     'dependencies.electron-prebuilt': '^1.8.8',
     'devDependencies.electron-prebuilt': '^1.8.8' },
  source:
   { productName:
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'name' },
     name:
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'name' },
     version:
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'version' },
     'dependencies.electron':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' },
     'devDependencies.electron':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' },
     'dependencies.electron-nightly':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' },
     'devDependencies.electron-nightly':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' },
     'dependencies.electron-prebuilt-compile':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' },
     'devDependencies.electron-prebuilt-compile':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' },
     'dependencies.electron-prebuilt':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' },
     'devDependencies.electron-prebuilt':
      { src: 'D:\\dev\\projects\\myapp_all\\myapp-electron\\package.json',
        pkg: [Object],
        prop: 'devDependencies.electron' } } } +0ms
  get-package-info Couldn't find any more package.json files +3ms
  electron-packager Inferring application name from name in D:\dev\projects\myapp_all\myapp-electron\package.json +0ms
  electron-packager Inferring appVersion from version in D:\dev\projects\myapp_all\myapp-electron\package.json +0ms
  electron-packager Inferring target Electron version from electron in D:\dev\projects\myapp_all\myapp-electron\package.json +3ms
  electron-packager Application name: myapp +17ms
  electron-packager Target Electron version: 1.8.8 +0ms
  electron-packager Ignored path regular expressions: [ '/\\.git($|/)', '/node_modules/\\.bin($|/)', '\\.o(bj)?$' ] +0ms
  electron-packager Downloading Electron with options {"rejectUnauthorized":true,"reject-unauthorized":true,"platform":"win32","arch":"x64","version":"1.8.8","artifactName":"electron"} +0ms
  @electron/get:index Checking the cache for electron-v1.8.8-win32-x64.zip +0ms
  @electron/get:index Cache miss +1ms
  @electron/get:index Downloading https://github.com/electron/electron/releases/download/v1.8.8/electron-v1.8.8-win32-x64.zip to C:\TEMP\electron-download-SU0IRn\electron-v1.8.8-win32-x64.zip with options: undefined +37ms

Download the zip to the appropriate cache folder: https://github.com/electron/get#how-it-works

Was this resolved? how do i determine which is the appropriate cache folder?

Click the link and choose the operating system you're running Electron Packager on (not the target).

I am facing a similar issue as @kolomu . Here is what I get when i run it on the mac (behind corporate proxy):
$ electron-packager . my-app-mac --overwrite --platform=darwin --arch=x64  --prune=true --out=packaged
  electron-packager Electron Packager 14.0.5
  electron-packager Node v10.15.3
  electron-packager Host Operating system: darwin 18.5.0 (x64) +0ms
  electron-packager Packager Options: {"_":[".","my-app-mac"],"deref-symlinks":true,"derefSymlinks":true,"download":{"rejectUnauthorized":true,"reject-unauthorized":true},"junk":true,"prune":true,"overwrite":true,"platform":"darwin","arch":"x64","out":"packaged","dir":".","name":"my-app-mac","protocols":[]} +1ms
  electron-packager Target Platforms: darwin +1ms
  electron-packager Target Architectures: x64 +0ms
  electron-packager Inferring appVersion from version in /Users/kachauba/Documents/code/my-app/package.json +0ms
  electron-packager Inferring target Electron version from electron in /Users/kachauba/Documents/code/my-app/package.json +4ms
  electron-packager Application name: my-app-mac +12ms
  electron-packager Target Electron version: 6.0.2 +0ms
  electron-packager Ignored path regular expressions: [ '/\\.git($|/)', '/node_modules/\\.bin($|/)', '\\.o(bj)?$' ] +0ms
  electron-packager Downloading Electron with options {"rejectUnauthorized":true,"reject-unauthorized":true,"platform":"darwin","arch":"x64","version":"6.0.2","artifactName":"electron"} +0ms
connect ETIMEDOUT <IP_ADDRESS>:443

I did some digging and this is what I understand:

Looks like it is reaching this line in electron-packager: https://github.com/electron/electron-packager/blob/master/src/download.js#L35
downloadArtifact is a function from @electron/get and under the hood, i feel it is getting stuck here: https://github.com/electron/get/blob/master/src/GotDownloader.ts#L15
got.stream is a function from sindresorhus/got package but i have no idea how to make it proxy aware

What all have I tried unsuccessfully?

Downloading the electron zip (as recommended by @malept).However, that does not work as electron-packager creates a random directory-name and so, i don't know what should be the exact directory name where I download and extract the zip file in
Setting HTTP and HTTPS proxy in the global .npmrc
Setting HTTP and HTTPS proxy in the project .npmrc
Setting these environment variables: HTTP_PROXY, HTTPS_PROXY, GLOBAL_AGENT_HTTP_PROXY, GLOBAL_AGENT_HTTPS_PROXY (as suggested here: https://github.com/sindresorhus/got#proxies)

@malept / others - any other recommendations?

Downloading the electron zip (as recommended by @malept).However, that does not work as electron-packager creates a random directory-name and so, i don't know what should be the exact directory name where I download and extract the zip file in

There was a recent change to @electron/get (https://github.com/electron/get/pull/113) where zip files get put in a subfolder of the standard cache dir, named for the URL that is the source. Electron Packager does not create a random directory name for the cache.

any other recommendations?

As a last resort, you may have to write your own CLI wrapper around the electron-packager module, and pass the relevant proxy code from https://github.com/sindresorhus/got#proxies to download.downloadOptions.

I am facing a similar issue as @kolomu . Here is what I get when i run it on the mac (behind corporate proxy):
$ electron-packager . my-app-mac --overwrite --platform=darwin --arch=x64  --prune=true --out=packaged
  electron-packager Electron Packager 14.0.5
  electron-packager Node v10.15.3
  electron-packager Host Operating system: darwin 18.5.0 (x64) +0ms
  electron-packager Packager Options: {"_":[".","my-app-mac"],"deref-symlinks":true,"derefSymlinks":true,"download":{"rejectUnauthorized":true,"reject-unauthorized":true},"junk":true,"prune":true,"overwrite":true,"platform":"darwin","arch":"x64","out":"packaged","dir":".","name":"my-app-mac","protocols":[]} +1ms
  electron-packager Target Platforms: darwin +1ms
  electron-packager Target Architectures: x64 +0ms
  electron-packager Inferring appVersion from version in /Users/kachauba/Documents/code/my-app/package.json +0ms
  electron-packager Inferring target Electron version from electron in /Users/kachauba/Documents/code/my-app/package.json +4ms
  electron-packager Application name: my-app-mac +12ms
  electron-packager Target Electron version: 6.0.2 +0ms
  electron-packager Ignored path regular expressions: [ '/\\.git($|/)', '/node_modules/\\.bin($|/)', '\\.o(bj)?$' ] +0ms
  electron-packager Downloading Electron with options {"rejectUnauthorized":true,"reject-unauthorized":true,"platform":"darwin","arch":"x64","version":"6.0.2","artifactName":"electron"} +0ms
connect ETIMEDOUT <IP_ADDRESS>:443

I did some digging and this is what I understand:

Looks like it is reaching this line in electron-packager: https://github.com/electron/electron-packager/blob/master/src/download.js#L35
downloadArtifact is a function from @electron/get and under the hood, i feel it is getting stuck here: https://github.com/electron/get/blob/master/src/GotDownloader.ts#L15
got.stream is a function from sindresorhus/got package but i have no idea how to make it proxy aware

What all have I tried unsuccessfully?

Downloading the electron zip (as recommended by @malept).However, that does not work as electron-packager creates a random directory-name and so, i don't know what should be the exact directory name where I download and extract the zip file in
Setting HTTP and HTTPS proxy in the global .npmrc
Setting HTTP and HTTPS proxy in the project .npmrc
Setting these environment variables: HTTP_PROXY, HTTPS_PROXY, GLOBAL_AGENT_HTTP_PROXY, GLOBAL_AGENT_HTTPS_PROXY (as suggested here: https://github.com/sindresorhus/got#proxies)

@malept / others - any other recommendations?

I was able to get it to work by using electron-packager-interactive. it must use a different mechanism, but I didn't have time to dig further into it. see if it could work for you?

same issue: operation not permitted
  electron-packager Electron Packager 14.0.5
  electron-packager Node v10.15.1
  electron-packager Host Operating system: win32 10.0.18362 (x64) +0ms
  electron-packager Packager Options: {"_":[".","uWorker","./assets/icon-crl.ico"],"deref-symlinks":true,"derefSymlinks":true,"download":{"rejectUnauthorized":true,"reject-unauthorized":true},"junk":true,"prune":true,"win":true,"out":"uWorker","arch":"x64","overwrite":true,"icon":"","dir":".","name":"uWorker","protocols":[]} +3ms
  electron-packager Target Platforms: win32 +1ms
  electron-packager Target Architectures: x64 +0ms
  electron-packager Inferring appVersion from version in D:\unicloud\codebase\uworker\im\app\package.json +0ms
  electron-packager Inferring win32metadata.CompanyName from author in D:\unicloud\codebase\uworker\im\app\package.json +0ms
  electron-packager Inferring target Electron version from electron in D:\unicloud\codebase\uworker\im\app\package.json +4ms
  electron-packager Application name: uWorker +17ms
  electron-packager Target Electron version: 5.0.10 +0ms
  electron-packager Ignored path regular expressions: [ '/\\.git($|/)', '/node_modules/\\.bin($|/)', '\\.o(bj)?$' ] +0ms
  electron-packager Downloading Electron with options {"rejectUnauthorized":true,"reject-unauthorized":true,"platform":"win32","arch":"x64","version":"5.0.10","artifactName":"electron"} +0ms
EPERM: operation not permitted, lstat 'C:\Users\huang\AppData\Local\Temp\electron-download-hUsRwf\electron-v5.0.10-win32-x64.zip'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>package:win: `cross-env DEBUG=electron-packager electron-packager . uWorker --win --out uWorker --arch=x64 --overwrite --icon= ./assets/icon-crl.ico`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>package:win script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\huang\AppData\Roaming\npm-cache\_logs\2019-09-05T06_49_34_340Z-debug.log

--download.cacheRoot seems to be ignored at least in<EMAIL_ADDRESS>My electron-packager always tries to go download electron on my offline machine with this dependency version. This worked fine in<EMAIL_ADDRESS>

@a4chet if cacheRoot is not working for you, please file a bug at the @electron/get issue tracker. That is unrelated to this bug.

Hi, if still someone struggles with this problem here is my current workaround :

determine what file electron-packager is downloading:  in Powershell:
$env:DEBUG='electron-packager';electron-packager .
Download the required file manually (select the right version (zip) + SHASUMS256.txt)
Install http-server to serve the file manually
npm i -g http-server
create a version folder e.g. v1.8.8 and copy the downloaded zip file + checksum.txt file in it
switch to that directory and start server with http-server
finally build the electron-app by providing the following mirror:
electron-packager . --download.mirrorOptions.mirror=http://localhost:8080

Now it should build.

Hi, if still someone struggles with this problem here is my current workaround :

determine what file electron-packager is downloading:  in Powershell:
$env:DEBUG='electron-packager';electron-packager .
Download the required file manually (select the right version (zip) + SHASUMS256.txt)
Install http-server to serve the file manually
npm i -g http-server
create a version folder e.g. v1.8.8 and copy the downloaded zip file + checksum.txt file in it
switch to that directory and start server with http-server
finally build the electron-app by providing the following mirror:
electron-packager . --download.mirrorOptions.mirror=http://localhost:8080

Now it should build.

I do what you said above, but it still failed.it reported "EPERM: operation not permitted, lstat 'C:\Users\y\AppData\Local\Temp\electron-download-nprkeq\electron-v6.0.12-win32-x64.zip'"

It seems like it still tries to download the file remotely. Did you start the http server with the zip file and provided the download.mirrorOptions.mirror which is pointing to localhost? What electron-packager version are you using? I installed the latested version with  npm i -g electron-packager

It seems like it still tries to download the file remotely. Did you start the http server with the zip file and provided the download.mirrorOptions.mirror which is pointing to localhost? What electron-packager version are you using? I installed the latested version with npm i -g electron-packager

I did it again and it worked success!! Thank you so much!love you

Better proxy support was added to @electron/get, docs for this are currently in progress: https://github.com/electron/electron/pull/20780/files

I have NodeJS 12.12.0, npm 6.11.3, electron 7.0.1, electron-packager 14.1.0, and @electron/get 1.6.0.
I have set HTTP_PROXY, HTTPS_PROXY, and ELECTRON_GET_USE_PROXY to http://<url>:<port> in both my system environment variables and a batch script I use to run the build command.
My build command looks something like this:
electron-packager . <name> --out dist --overwrite --platform win32 --arch x64

However, I'm still getting this error:
EPERM: operation not permitted, lstat 'C:\Users\<username>\AppData\Local\Temp\electron-download-rPBgGC\electron-v7.0.1-win32-x64.zip'

The directory C:\Users\<username>\AppData\Local\Temp\electron-download-rPBgGC is empty.  Running the build command as admin results in the same error.
I have another project that's using electron 4.2.12, electron-packager 13.1.1, and electron-download 4.1.1.  It builds without error using a similar build command.

I'm getting the same error, I'm not behind a proxy.

Had the same error on my company laptop. I could fix it by disconnecting from the company network and using my private mobile hotspot.

Hi, if still someone struggles with this problem here is my current workaround :

determine what file electron-packager is downloading:  in Powershell:
$env:DEBUG='electron-packager';electron-packager .
Download the required file manually (select the right version (zip) + SHASUMS256.txt)
Install http-server to serve the file manually
npm i -g http-server
create a version folder e.g. v1.8.8 and copy the downloaded zip file + checksum.txt file in it
switch to that directory and start server with http-server
finally build the electron-app by providing the following mirror:
electron-packager . --download.mirrorOptions.mirror=http://localhost:8080

Now it should build.

Tried what you suggested and I still get "EPERM: operation not permitted, lstat 'C:\Users\y\AppData\Local\Temp\electron-download-nprkeq\electron-v6.0.12-win32-x64.zip'"
this is my build command :
electron-packager . --download.mirrorOptions.mirror=http://localhost:8080/electron-v6.0.12-win32-x64.zip --out=dist/win --platform=win32 --arch=x64
do you have any suggestions on what the problem might be?

yep the mirror should not include the full url but just the hostname

yep the mirror should not include the full url but just the hostname
tried it both ways without any luck

I give up :-)
I have the path specified and it still comes the error message.
electron-packager .--download.mirrorOptions.mirror=http://localhost:8082 --out=dist/win --platform=win32 --arch=x64
PERM: operation not permitted, lstat 'C:\Users\###\AppData\Local\Temp\electron-download-DDMpyZ\electron-v7.1.1-win32-x64.zip'
Does somebody still have an idea?
Thanks

I have the same problem, but I can access github to download the package through. So I think it is not due to proxy setting (I have set ELECTRON_GET_USE_PROXY already). But I still have the same problem.
I tried also using the local web server approach but without luck.

Had the same problem and did some debugging.
Turns out, if you set ELECTRON_GET_USE_PROXY then @electron/get uses global-agent as proxy lib.
global-agent in turn uses the env variable GLOBAL_AGENT_HTTP_PROXY to determine the proxy address.
Setting both resolved the issue for me!

Story
I've finally solved this problem with a work around after running debug mode on the source code of two files under my-app\node_modules\electron\, these two files are install.js and index.js. After hours of digging, I really want to share this with you guys.
I am running windows 10 on my work laptop. I've ask my colleagues to try installing electron under corporate network, they can all run it with no problem. So at least in my case, this error is not caused by firewalls or other corporate network related setting.
Understand the Problem (please skip directly to solution is not interested)
The nature of this problem as @kolomu suggested, is a connection problem from my computer to the github server hosting the electron zip file. There are two strategies to make it work without fixing the connection to the github server:

swap zip file host server @kolomu
manually satisfy files+location needs for electron to run properly (this comment)

I only explored solution2 because I am not familiar with building local host in solution1. If you can, by all means use solution1 because you can then reuse it for other apps without manually repeat solution2.
Steps for Solution2

In terminal, under your-app\, run npm install electron. This will give you the well known 'operation not permitted' error. This is just to make sure you have the your-app\node_modules\electron directory. If you already have, skip this step.
Add dist\ directory under your-app\node_modules\electron so you have your-app\node_modules\electron\dist\
Download zip file of your preferred electron version from here, in my case is "electron-v7.1.3-win32-x64.zip".
Extract all contents from zip file under your-app\node_modules\electron\dist\. Make sure the contents are not in extra folder but directly under dist\. If it is done correctly, you should be able to find dist\electron.exe.
Add path.txt file under your-app\node_modules\electron
Add one line saying electron.exe in path.txt file and save. This is becasue at run time, your-app\node_modules\electron\index.js is reading from path.txt to get the executable name of electron, which is electron.exe.
In terminal, go to your-app\, run npm start. Now your app should run and an electron window should show up if you are using the electron-quick-start as your app. You can find the app here. I would recommend starting with this demo app, because you know the app itself works, which isolates the electron installation problem.

Wish everyone good luck and please let me know if you have any questions.
Happy coding!

For me, specify electron version in command line
( warning! when you launch cmd "electron .", it is possible that he system use path variable "/appData/Roaming/npm/" cause of that, the system used a different version of electron than the version in your current project)
Example :
electron-packager . electron-app-asar --electron-version 7.1.4 --platform=win32 --arch=ia32 --asar --overwrite --app-copyright="Copyright (c) 2019 The Client. All rights reserved.""

In my case I've downloaded an electron zip file from https://github.com/electron/electron/releases/ and stored it in my computer.
electron-packager has a command-line option called electron-zip-dir that you can use to specify the directory where you've placed your electron zip file.
Example:
electron-packager . electron-app-asar --electron-version 8.3.0 --platform=win32 --arch=x64 --electron-zip-dir=C::\Temp --overwrite
That way electron-packager won't try to download it using your proxy.


Update freqshow.py

Thanks for sending the pull request and contributing!  Unfortunately this change would break the project on a PiTFT so I can't pull it into the master branch.  Did you mean to add support for running with a mouse and a monitor?  If so it looks like a good change but we'd need to make it an optional configuration before pulling in to the master branch so folks going through the tutorial aren't broken.  Thanks for sending the change though and checking out the project!


Incorrect output for cargo loco generate controller guide -k api

Description
Per doc, https://loco.rs/docs/getting-started/guide/ , running the following command:
cargo loco generate controller guide -k api
should generate the controller body seen below:
#![allow(clippy::unused_async)]
use loco_rs::prelude::*;

pub async fn echo(req_body: String) -> String {
    req_body
}

pub async fn hello(State(_ctx): State<AppContext>) -> Result<Response> {
    // do something with context (database, etc)
    format::text("hello")
}

pub fn routes() -> Routes {
    Routes::new()
        .prefix("guide")
        .add("/", get(hello))
        .add("/echo", post(echo))
}

'What was generated by the loco_cli in guide.rs is the following code:
   #![allow(clippy::missing_errors_doc)]
   #![allow(clippy::unnecessary_struct_initialization)]
   #![allow(clippy::unused_async)]
   use loco_rs::prelude::*;
   use axum::debug_handler;

   #[debug_handler]
   pub async fn index(State(_ctx): State<AppContext>) -> Result<Response> {
       format::empty()
   }

   pub fn routes() -> Routes {
       Routes::new()
           .prefix("guides/")
           .add("/", get(index))
   }

To Reproduce
I ran the command rust cargo loco generate controller guide -k api in the myapp directory.
Below are the entries in Cargo.toml:
[workspace]

[package]
name = "myapp"
version = "0.1.0"
edition = "2021"
publish = false
default-run = "myapp-cli"

[dependencies]

loco-rs = { version = "0.10.1" }
migration = { path = "migration" }

serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1.33.0", default-features = false }
async-trait = "0.1.74"
tracing = "0.1.40"
chrono = "0.4"
validator = { version = "0.18" }
sea-orm = { version = "1.0.0", features = [
  "sqlx-sqlite",
  "sqlx-postgres",
  "runtime-tokio-rustls",
  "macros",
] }

axum = "0.7.5"
include_dir = "0.7"
uuid = { version = "1.6.0", features = ["v4"] }
tracing-subscriber = { version = "0.3.17", features = ["env-filter", "json"] }
fluent-templates = { version = "0.8.0", features = ["tera"] }
unic-langid = "0.9.4"

[[bin]]
name = "myapp-cli"
path = "src/bin/main.rs"
required-features = []

[[bin]]
name = "tool"
path = "src/bin/tool.rs"
required-features = []

[dev-dependencies]
serial_test = "3.1.1"
rstest = "0.21.0"
loco-rs = { version = "0.10.1", features = ["testing"] }
insta = { version = "1.34.0", features = ["redactions", "yaml", "filters"] }

Expected Behavior
Within my src/controllers/guide.rs file, I expected to see the following:
#![allow(clippy::unused_async)]
use loco_rs::prelude::*;

pub async fn echo(req_body: String) -> String {
    req_body
}

pub async fn hello(State(_ctx): State<AppContext>) -> Result<Response> {
    // do something with context (database, etc)
    format::text("hello")
}

pub fn routes() -> Routes {
    Routes::new()
        .prefix("guide")
        .add("/", get(hello))
        .add("/echo", post(echo))
}

Environment:
My OS is a Mac, which is up to date. Rust version is 1.81.0 (not nightly)
Additional Context
In order for me to proceed past this issue, I had to copy the expected output from the doc to my guide.rs.

Thanks,  indeed we need to update the docs to reflect the new controller generator (fixed now)


bump the SDK version to 3.2.0-beta.0

Bumps the SDK version to 3.2.0-beta.0, which includes support for Orbit.

Modifies the script to be more generalized by accepting the Orbit chain as a parameter instead of hardcoding, allowing for greater flexibility in usage.

Adds the OrbitTxHash to the result, presenting both arbTxHash and OrbitTxHash. Enables checking of all retryables created in a single transaction.

Displays the number of retryables found before entering the 'for' loop. This addition provides a quick overview of the number of tickets waiting to be processed by the script.

Thanks @mahsamoosavi ! Here's some general feedback:

The output has all needed information now :muscle: , but you could maybe log first the parent transaction and then the list of retryables that were submitted in it, to make the output a bit clearer.
Smol visual bug: the same information is shown multiple times if one transaction has multiple tickets (if it has 4, for example, the same information is repeated 4 times). You could either save the parent chain tx that you have already processed somewhere, or do the process in 2 times: first gather all parent chain transactions, and then iterate over them.
process.env.PARENT_RPC_URL and process.env.ORBIT_RPC_URL could also be part of the config.json since now all the configuration from the orbit chain is coming from there. Otherwise, you'll have to set orbit chain config in 2 places: .env and lib/config.json .
[less important, not blocking] process.env.FROM_BLOCK and process.env.TO_BLOCK could be arguments to pass to the script instead of env variables
[less important, not blocking] It would be interesting to be able to load multiple configs in the config file, and choose one in the script, or by argument


Feat: add deleteUrlFromContext

Added deleteUrlFromContext
Added test to make sure that deleting pairs also works if the pair isn't existing

Note: I really don't like this super shallow API design. Just passing through the command to RoCrateMetadataContext isnt making anything better imo

This PR is addressing #37

Pull Request Test Coverage Report for Build #53

4 of 4 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 89.634%

Totals

Change from base Build #52:
0.2%

Covered Lines:
1297

Relevant Lines:
1447

💛  - Coveralls

I am not sure if we should implement that we can not delete the default context, and if so, how we do it. The how is important to you, I guess: A UI would either want to know if it is allowed to show a delete button to the user or give some feedback about whether it worked or not.

And sorry for adding this slightly off-topic commit, but I felt it kind of is in the correct corner here... :D

I am not sure if we should implement that we can not delete the default context, and if so, how we do it. The how is important to you, I guess: A UI would either want to know if it is allowed to show a delete button to the user or give some feedback about whether it worked or not.

I don't know. I have not seen it explicitly stated that the default context MUST be available. I would probably still not allow it in the GUI, just because I don't really see a reason for that.

I thought about it a bit more and looked through the specification again. I don't think the default context MUST be there. So I would keep it like this. This quote also doesn't make it sound like it MUST be there (14.2 RO-Crate JSON-LD Context):

Tip: The JSON-LD flattening & compaction algorithms can be used to rewrite to a
different @context , e.g. to https://schema.org/docs/jsonldcontext.jsonld or a
different version of the RO-Crate JSON-LD Context.


IP output via VPN stream errors

I don't think this is TSDuck issue but maybe there's something in TSDuck that could help me overcome a problem I'm having or at least get some ideas from smarter people here.
I have TSDuck running at LOCATION-1 and the output is IP. When I play the UDP stream locally at LOCATION-1 in VLC, it's all smooth and error free. But when I use the destination IP of a computer at LOCATION-2, I get errors in the stream when I play this one from LOCATION-2.
Locations 1 and 2 are connected over SSTP VPN between 2 Mikrotik routers and the bandwidth is good enough (10Mbps+), yet even a 3Mbps video stream fails to play without errors. I did try to change TTL and packets on the output IP stream but that didn't seem to help.
First I'd like to ask for an idea how to analyze the incoming stream, to see what's wrong. Could you please suggest some tools that you'd consider good for such analysis, to find the cause of the errors? To see what I mean, I also attach a file with a sample captured stream.
telecaribe.zip
Then I also think the issue might simply be UDP over VPN not being reliable. But in such case, would there be another way to deliver the output from TSDuck over the internet to another TSDuck client (or directly a player like VLC)?
Thanks!

Hi Jan,
You probably run into the very same problem I got 12 years ago while sending the 2006 football world cup live transmission from my machine with a 100 Mb/s (at the time) Ethernet access to some of my colleagues' computers with 10 Mb/s Ethernet interfaces.
By default, tsp privileges performances over latency. Thus, the default options create bursts. When the end-to-end network path has bottlenecks in the middle, some UDP packets are dropped because they can't all make it through the bottleneck during the short period of a burst.
To solve this issue, you need to smoothen the output stream by creating more frequent but smaller bursts.
This is explained in the example section 5.2.4 in the TSDuck user's guide (which I wrote immediately after solving the aforementioned issue). Of course, the values in the example are just examples. But this section explains the problem and the solution. I am sure you will find the right tuning.
I hope that this will solve your issue.

Thanks! Simply using the values from your example already improved things to almost perfect stream, so it was definitely the issue and now I'll just try to do some tweaks to get it 100%

Hi Jan,
Did you make it?
Can we close this one?

Yes, I think this can be closed as the issue was solved for me, although I haven't done any more tests yet.


Valgrind errors for Func 175+ results

Test Case
This repo: https://github.com/jbourassa/wasmtime-results-valgrind-report
The repro case is a host-defined wasmtime::Func that returns 200 results:
use wasmtime::{AsContextMut, Engine, Func, Store};
const RESULTS_COUNT: i32 = 200;

fn main() -> wasmtime::Result<()> {
    let engine = Engine::default();
    let mut store = Store::new(&engine, ());
    let result_type: Vec<_> = (0..RESULTS_COUNT).map(|_| wasmtime::ValType::I32).collect();
    let func_type = wasmtime::FuncType::new([], result_type);
    let func = Func::new(&mut store, func_type.clone(), |_, _, results| {
        results
            .iter_mut()
            .for_each(|val| *val = wasmtime::Val::I32(1));
        Ok(())
    });
    let mut results = vec![wasmtime::Val::null(); func_type.results().len()];
    func.call(store.as_context_mut(), &[], &mut results)?;
    Ok(())
}

Steps to Reproduce

Clone the repo
Run the executable with valgrind: cargo build && valgrind target/debug/many-results

Result, Version, Environment
Wasmtime version: v8.0.1 (but also appeared in 7.0 and likely earlier versions)
Valgrind version: 3.21.0 (latest, but also reproducible with 3.18.1)
On aarch64 (Linux running on an ARM-based Mac), Ubuntu 22.10, the valgrind report is:
ARM64 front end: load_store
disInstr(arm64): unhandled instruction 0xB830EBFF
disInstr(arm64): 1011'1000 0011'0000 1110'1011 1111'1111
==25125== valgrind: Unrecognised instruction at address 0x4f6fc2c.
==25125==    at 0x4F6FC2C: ???
==25125== Your program just tried to execute an instruction that Valgrind
==25125== did not recognise.  There are two possible reasons for this.
==25125== 1. Your program has a bug and erroneously jumped to a non-code
==25125==    location.  If you are running Memcheck and you just saw a
==25125==    warning about a bad jump, it's probably your program's fault.
==25125== 2. The instruction is legitimate but Valgrind doesn't handle it,
==25125==    i.e. it's Valgrind's fault.  If you think this is the case or
==25125==    you are not sure, please let us know and we'll try to fix it.
==25125== Either way, Valgrind will now raise a SIGILL signal which will
==25125== probably kill your program.

On x86, Ubuntu 22.04.2 LTS, the valgrind report is:
=58680== Invalid write of size 4
==58680==    at 0x4F973B4: ???
==58680==    by 0x4F96047: ???
==58680==    by 0x2032D3: wasmtime::func::Func::call_unchecked_raw::{{closure}} (func.rs:900)
==58680==    by 0x20B0BA: wasmtime_runtime::traphandlers::catch_traps::call_closure (traphandlers.rs:243)
==58680==    by 0xAA669F: wasmtime_setjmp (helpers.c:55)
==58680==    by 0x20B415: wasmtime_runtime::traphandlers::catch_traps::{{closure}} (traphandlers.rs:225)
==58680==    by 0x20B441: wasmtime_runtime::traphandlers::<impl wasmtime_runtime::traphandlers::call_thread_state::CallThreadState>::with::{{closure}} (traphandlers.rs:409)
==58680==    by 0x208462: wasmtime_runtime::traphandlers::tls::set (traphandlers.rs:684)
==58680==    by 0x214F1D: wasmtime_runtime::traphandlers::<impl wasmtime_runtime::traphandlers::call_thread_state::CallThreadState>::with (traphandlers.rs:409)
==58680==    by 0x20B1BB: wasmtime_runtime::traphandlers::catch_traps (traphandlers.rs:224)
==58680==    by 0x202C5E: wasmtime::func::invoke_wasm_and_catch_traps (func.rs:1306)
==58680==    by 0x20324C: wasmtime::func::Func::call_unchecked_raw (func.rs:898)
==58680==  Address 0x1ffeffc580 is on thread 1's stack
==58680==  4096 bytes below stack pointer
==58680==
==58680== Invalid write of size 4
==58680==    at 0x4F973BB: ???
==58680==    by 0x4F96047: ???
==58680==    by 0x2032D3: wasmtime::func::Func::call_unchecked_raw::{{closure}} (func.rs:900)
==58680==    by 0x20B0BA: wasmtime_runtime::traphandlers::catch_traps::call_closure (traphandlers.rs:243)
==58680==    by 0xAA669F: wasmtime_setjmp (helpers.c:55)
==58680==    by 0x20B415: wasmtime_runtime::traphandlers::catch_traps::{{closure}} (traphandlers.rs:225)
==58680==    by 0x20B441: wasmtime_runtime::traphandlers::<impl wasmtime_runtime::traphandlers::call_thread_state::CallThreadState>::with::{{closure}} (traphandlers.rs:409)
==58680==    by 0x208462: wasmtime_runtime::traphandlers::tls::set (traphandlers.rs:684)
==58680==    by 0x214F1D: wasmtime_runtime::traphandlers::<impl wasmtime_runtime::traphandlers::call_thread_state::CallThreadState>::with (traphandlers.rs:409)
==58680==    by 0x20B1BB: wasmtime_runtime::traphandlers::catch_traps (traphandlers.rs:224)
==58680==    by 0x202C5E: wasmtime::func::invoke_wasm_and_catch_traps (func.rs:1306)
==58680==    by 0x20324C: wasmtime::func::Func::call_unchecked_raw (func.rs:898)
==58680==  Address 0x1ffeffb580 is on thread 1's stack
==58680==  8192 bytes below stack pointer

Extra Info
I don't know if it's an actual bug, but figured I should report it. Feel free to close it if it's a false-positive.

Here's a quick first look at this issue, not the final word on anything.
I'm guessing the issue on aarch64 is that we're using a real instruction that is unimplemented in that version of valgrind, which would mean that one is not our bug. But I haven't verified that and could certainly be wrong.
As for the invalid writes on x86, that could be our bug, but I'm not sure. The relevant code changed a lot last week in #6262, after the 8.0 release, so I'm curious if it's still reproducible on current git main. Do you have time to give that a try?

Do you have time to give that a try?

valgrind reports are gone on main, both for aarch64 and x86 🎉. I guess we can close this issue.
Thanks Jamey!


Create Dockerfile

A new branch named "first-action" has been created
A directory named "action-a"
A Dockerfile has been created in the directory <action-a/Dockerfile> in "first-action"

Pull request has been merged
Branch  will be deleted


osu-lazer: 2023.815.0 -> 2023.1026.0

Description of changes
Catch up to osu-lazer-bin's version.
Changelogs:

2023.908.0
2023.908.1
2023.908.2
2023.913.0
2023.914.0
2023.924.0
2023.924.1
2023.1008.0
2023.1008.1
2023.1026.0

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 265909 run on x86_64-linux 1

1 package built:

osu-lazer


[WIP] Client/Server process separation

This will add a PicoTorrent Server process which will be used for all BitTorrent related things, keeping the UI clean from libtorrent and adding a WebSocket and HTTP JSONRPC API to the server process. Ideally with no breaking changes.
The server process will have a HTTP listener where you can connect to either /api/ws to receive WebSocket events, or /api/jsonrpc to post JSONRPC requests. It will also add support for serving static files under / which can be used for serving a SPA for remote management.
The basic idea here is to have a server process which can be run either as part of the client, or stand-alone and connect either a regular PicoTorrent desktop client to it or managed by the web UI. The desktop application will receive events on the WebSocket to keep UI in sync, and issue JSONRPC requests to modify state.
JSONRPC methods to implement:

[ ] core.getVersion - gets version information for all libraries.
[ ] config.get - gets the application config, i.e can be anything the application chooses to store.
[ ] config.set - sets a config value, anything the application wants.
[ ] session.findMetadata - begins a DHT metadata search for a torrent based on a info hash.
[ ] session.getSettings - get the libtorrent session settings.
[ ] session.setSettings - sets the libtorrent session settings.
[ ] session.pause - pauses the session.
[ ] session.resume - resumes the session.
[ ] session.setIPFilter - sets the IP filter configuration.
[ ] session.getIPFilter - gets the IP filter configuration.
[ ] session.addTorrent - adds a torrent.
[ ] torrents.toJSON - takes a base64 encoded torrent file and returns it in JSON format. To be used when previewing a torrent in the UI.
[ ] torrents.remove - remove one or more torrents based on info hash, optionally removing the files as well.
[ ] torrents.pause - pause one or more torrents based on info hash.
[ ] torrents.resume - resume one or more torrents based on info hash, optionally passing the force flag.
[ ] torrents.move - moves one or more torrents based on info hash, optionally passing a flag to overwrite files in the destination.
[ ] torrents.prioritizeFiles - prioritizes the files in a torrent.
[ ] torrents.renameFiles - renames one or more files in a torrent.
[ ] torrents.prioritizePieces - prioritizes the pieces in a torrent.
[ ] torrents.addTracker - adds one or more trackers to a torrent
[ ] torrents.removeTracker - removes one or more trackers from a torrent.

WebSocket events to implement:

[ ] init - sent when a client connects to the WebSocket. Contains all the initial state needed to keep the UI in sync.
[ ] torrents.added - a torrent was added.
[ ] torrents.removed - a torrent was removed.
[ ] torrents.moved - a torrent was moved.
[ ] torrents.updated - one or more torrents had their states updated.
[ ] torrents.error - one or more torrents transitioned into the error state.
[ ] torrents.paused - a torrent was paused.
[ ] torrents.resumed - a torrent was resumed.

Events and JSONRPC methods are subject to change.

🌶  stuff

🌶  stuff


Remove Indy/Vdrtools

Closes #1250
TODO

TODO - test against AATH

todo-  check-aries-vcx-anoncreds is failing

todo - test-unit failing

partially uses https://github.com/hyperledger/aries-vcx/pull/1224

AATH status:

[ ] VCX <-> VCX

FWIW: Anonyome was able to consume this update with no issues


Font-size rendering issue while style text via ck-editor-5

I'm encountering an issue with font sizes not matching between ckeditor-5 and react-pdf-html. When setting font sizes using em units (e.g., fontSize: em(2)) in ckeditor-5, the resulting PDF generated by react-pdf-html displays the text with slightly different font sizes, leading to visual inconsistencies. I expect the font sizes applied in ckeditor-5 to translate accurately to the PDF output rendered by react-pdf-html for consistent visual presentation. I've tried adjusting font sizes and units in both editors without success. Can you please provide guidance on resolving this font size discrepancy or recommend best practices for ensuring consistent font rendering between ckeditor-5 and react-pdf-html?

Did you set fontSize inside Html style tag? If it's not provided, it'll take 18px by default for font size calculation

@mateenNawaz86 are you still having an issue with this?


Seed should use ADMIN_EMAIL instead of USER_EMAIL

process.env.ADMIN_EMAIL is included in the sample template. Currently seeding fails with the example template. Update USER_EMAIL to ADMIN_EMAIL to fix

good catch! thanks for this PR!