Shortcut Bar button broken?

Describe the Bug
When clicking on the Tapeline shortcut button from the Shortcut Bar nothing happens thus the Draw tool is not put in the cursor.
To Reproduce
Steps to reproduce the behavior:
New game with no other mods loaded. Click Tapeline shortcut button.
Be certain to reproduce the issue on the same save file that you upload.
Save file & Username
Save file: tapeline_error
Username: "Tealc."
tapeline_error.zip
Upload the save file where the bug occured. If the file is too large for GitHub, use an alternative file service.
Please also provide your in-game username so I can reproduce the conditions exactly.

Log file
factorio-current.log
Attach factorio-current.log, found in Factorio's user data directory.

I can confirm that shortcut button don't working with latest Flib, Tapeline and in Factorio version 0.18.45

This is actually a bug in the base game, I've reported it to the developers. Thanks for the reports!

So, an update: this isn't going to be fixed in the base game until after 1.0. There is a way to work around it in the meantime, so I'll do that for the next release.

The patch has been released.

Thanks raiguard. Works great now. Appreciate your work!


added function identifying which elements matched

only a skeleton for now; outlines the interface between the summary
generator and the matcher.
I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
@geirst please review
@toregge FYI

Failed travis build is unrelated: container-search (in java)


Getting Started: dashing start shows execjs: Could not find a JavaScript runtime

Iam using Debian Squeeze (latest), installed latest RVM and Ruby 1.9.3-p362 on it. Then run through the Getting Started Guide. While running "dashing start" it throwed me the error below. After adding gem 'execjs' and gem 'therubyracer' to the Gemfile and bundle afterwards, i was able to successfully run dashing start then.
Error thrown:
/usr/local/rvm/gems/ruby-1.9.3-p362/gems/execjs-2.0.2/lib/execjs/runtimes.rb:51:in autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable) 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/execjs-2.0.2/lib/execjs.rb:5:in module:ExecJS'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/execjs-2.0.2/lib/execjs.rb:4:in <top (required)>' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/backports-3.3.5/lib/backports/tools.rb:328:in require'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/backports-3.3.5/lib/backports/tools.rb:328:in require_with_backports' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in <top (required)>'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/backports-3.3.5/lib/backports/tools.rb:328:in require' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/backports-3.3.5/lib/backports/tools.rb:328:in require_with_backports'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in <top (required)>' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/backports-3.3.5/lib/backports/tools.rb:328:in require'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/backports-3.3.5/lib/backports/tools.rb:328:in require_with_backports' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/dashing-1.3.2/lib/dashing.rb:5:in <top (required)>'
from config.ru:1:in require' 	from config.ru:1:in block in '
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/rack-1.5.2/lib/rack/builder.rb:55:in instance_eval' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/rack-1.5.2/lib/rack/builder.rb:55:in initialize'
from config.ru:1:in new' 	from config.ru:1:in '
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/thin-1.6.1/lib/rack/adapter/loader.rb:33:in eval' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/thin-1.6.1/lib/rack/adapter/loader.rb:33:in load'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/thin-1.6.1/lib/thin/controllers/controller.rb:182:in load_rackup_config' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/thin-1.6.1/lib/thin/controllers/controller.rb:72:in start'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/thin-1.6.1/lib/thin/runner.rb:200:in run_command' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/thin-1.6.1/lib/thin/runner.rb:156:in run!'
from /usr/local/rvm/gems/ruby-1.9.3-p362/gems/thin-1.6.1/bin/thin:6:in <top (required)>' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/bin/thin:19:in load'
from /usr/local/rvm/gems/ruby-1.9.3-p362/bin/thin:19:in <main>' 	from /usr/local/rvm/gems/ruby-1.9.3-p362/bin/ruby_executable_hooks:15:in eval'
from /usr/local/rvm/gems/ruby-1.9.3-p362/bin/ruby_executable_hooks:15:in `'

sudo apt-get instal nodejs
worked for me too. Thanks!

The solution proposed by @martinseener is much better than install node. Add the gem is quicker and lighter than install an entire platform only to fix that issue.


klee: make llvmPackages and uclibc overridable

Description of changes
This should allow users to pick which llvmPackages and uclibc they would like to use, since Klee supports llvmPackages_12 through llvmPackages_16 as of Klee 3.1 (defaulting to 13 for stability).
No rebuilds necessary, just a refactor.

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

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

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

Finally had time to fix this.

Result of nixpkgs-review pr 304204 run on aarch64-linux 1

Rebased; should be good to go


Update jsdelivr

See https://github.com/jsdelivr/jsdelivr/pull/10359.

That's all closed out, so v0.4.0 is available on jsDelivr.  Still missing some versions from the past.  Tracking how to fix here: https://github.com/jsdelivr/jsdelivr/issues/10366

They don't seem interested in adding those past versions– we'll look into it again if anyone has an issue.


Issue with Net MVC and IE

Hi BlueImp,
first of all, thanks for such a lovely plugin - really neat job.
Now to the issue; obviously I want to have an unobtrusive form : on my post method I am using a MVC command Request.IsAjaxRequest(), and depending on if it's a ajax request or not, I either redirect them to another page, or return json result.
This Request.IsAjaxRequest() is true when header has an element "X-Requested-With" with value of "XMLHttpRequest" (case-sensitive for mvc)
Ofcourse on chrome/firefox using xhr method, it sends that header and everything is okay; However, with IE posting over iFrame, I am getting false for that method, and can't distinguish between ajax/non-ajax post.
I had similar issue when using "jQuery Form Plugin" - however, with that plugin, I could submit [data An object containing extra data that should be submitted along with the form.] - my code looks like...
data: { "X-Requested-With": "XMLHttpRequest" }
that worked perfectly. This is what I get using IE developer tools...
Content-Disposition: form-data; name="__RequestVerificationToken"
FwSx1nj/JKVGQC22LPx4GC/Ncc2ylTCUaquATJUuSKtvs4J53xEMLNFqMg4G8miEijQdDIZML35RCGwgMbL4ZxYaDlABMCPFYHwNcpg/9KBJz9h5M8xpraK26UvLOO+prCEyQxzTNkM65jkaDHcMfep1z9ghtnqU6LExOrsEnOY=
-----------------------------7dc2aa1e18a0886
Content-Disposition: form-data; name="fileData"; filename="C:\Users\Administrator\Desktop\2012-02-22_235216.png"
Content-Type: image/png

---------------------------7dc2aa1e18a0886
Content-Disposition: form-data; name="X-Requested-With"
XMLHttpRequest
-----------------------------7dc2aa1e18a0886--
Now with your plugin, I tried similar method of formData; however, I am also using MVC method of AntiForgeryToken and ValidateAntiForgeryToken - including formData causes validation of Forgery Token to fail.
I have tried including X-Requested-With as hidden item and then updating the value using javascript on body load; in that case validation of Forgery doesn't fail, but IE developer tools doesn't show X-Requested-With being passed anywhere and doesn't show up as Ajax.
Ideally I thought I could do following:
beforeSend: function (e, data) {
e.setRequestHeader("X-Requested-With", "XMLHttpRequest");
}
but that didn't do anything either; I can see with breakpoint that it's being hit, but nothing in header.
Any suggestions? Thanks again for this awesome work..
Rana

Hello Rana,
it is not possible to set any headers when using the Iframe Transport (which Internet Explorer requires, since this browser doesn't support XHR file uploads).
So setting form data is the only option for IE to pass along additional parameters.
Passing along a form data parameter based on if the form is submitted with or without JavaScript support is actually pretty easy.
You can either wrap a hidden input with noscript tags or use data attributes, which can be used to initialize the file upload widget with specific options, e.g. the following way (see also the API documentation):
<input id="fileupload" type="file" name="files[]" multiple
    data-url="/path/to/upload/handler.json"
    data-form-data='{"script": "true"}'>

This would pass along script=true as request parameter.

Thanks blueImp; I couldn't get the data-form-data to work (I am initializing the form and not the input file) - it wouldn't pass the value to my controller;
so I went with your other option; having a  tag and hidden value in their indicating non-script. That solved the problem.
Thanks again.

If you're initializing the form, it should work to just add the data attributes to the form tag instead:
<form id="fileupload" action="server/php/" method="POST"
    enctype="multipart/form-data"
    data-form-data='{"script": "true"}'>
    <!-- ... -->
</form>

The plugin just makes use of the .data() method to override default options on initialization with those provided via data attributes. The .data() method is always called on the widget element itself, which is the element you call the .fileupload() method on.


fix: npm dependency fixes

To fix latest npm installs, we need apollo-server-core to match, even as it's devDependency.
We'll need to ignore dependabot (or create a dependabot ignore file?) PRs for this dep.

@Davide-Gheri I can confirm that this fixed the issue and fastify middleware are running properly: https://github.com/j/nestjs-middleware-bug/commit/1aac4acbc971004d8ac74aa6c3719fff77ff3282

Ah, shoot. That’s the worst part about nests implementation. It’s so
married to Apollo.  I created an upstream issue asking them to make the
library export strictly schema creation tools and allow users to create
their own server and they can have @nestjs/apollo, etc.
On Fri, Jul 16, 2021 at 2:28 AM Davide Gheri @.***>
wrote:

@Davide-Gheri requested changes on this pull request.
In package.json
https://github.com/Davide-Gheri/nestjs-mercurius/pull/183#discussion_r671103543
:

"peerDependencies": {
@.***/federation": "^0.26.0",

@.***/gateway": "^0.33.0",
@.***/common": "^8.0.2",
@.***/core": "^8.0.2",
@.***/platform-fastify": "^8.0.2",
"altair-fastify-plugin": "4.0.6",
"apollo-server-core": "^3.0.0",

@.***/graphql": "^8.0.2",

ok moving @nestjs/graphql as peerDep, but I'm not sure of using ^ instead
of ~ to match version.
This library uses some internal tools of @nestjs/graphql and I had some
issues in the past where an internal change was made in a minor and broke it
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Davide-Gheri/nestjs-mercurius/pull/183#pullrequestreview-708181828,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEP4YQ3OYMEFQVC26W4YO3TX73STANCNFSM5AOE6SIA
.


fix local test coverage on Macs

Without the quotes, the glob is resolved by the OS, at least on Macs. Because of that, the ./test/unit/plugins-client-bundle-test.js test was not run and the coverage fell when run locally, while it was still 100% on travis

as this is very minor, I’ll merge it myself when CI is green. But please ask me anything about it even when merged :)


Fix ResNet101Layers to load pretrained model correctly

fix #2608

LGTM. I'm wondering the test for ResNet models should be updated in another PR.


How can I get sacreBLEU score with score.py script

Hello!
I want to get the sacreBLEU score for my transformer_base model and notice that there's an optional argument --sacrebleu for score.py
But I got a warning with it:

WARNING:root:That's 100 lines that end in a tokenized period ('.')
WARNING:root:It looks like you forgot to detokenize your test data, which may hurt your score.
WARNING:root:If you insist your data is detokenized, or don't care, you can suppress this message with '--force'.

And I'm new to NLP&MT, it seems that I need to detokenize the data? I wonder what should I do to get the right result for sacreBLEU

Detokenization is not typically handled by fairseq. If you used the moses tokenizer then you can try detokenizing with sacremoses: https://github.com/alvations/sacremoses and manually feeding the detokenized output to the sacrebleu script.


Cover research software

There is very little about research software, and quite a lot about generic open source (understandable, because there is more material to borrow from). As examples of open source software, we name LibreOffice and FireFox, which don't make the case at all: most people use Microsoft Office and Chrome, and the alternatives seem like, well, alternatives. What we need to discuss here, I think, is actual open source software used in research, such as R and Rstudio, python tools, QGIS, basically all of the bioinformatics tools, etc. and point out the culture that surrounds them, where scientists develop tools and libraries, and publish them.

Awesome, thanks @rvosa! You're totally right about this. I suggest adding in a section after 'Existing software' dedicated to this (https://github.com/OpenScienceMOOC/Module-5-Open-Research-Software-and-Open-Source/blob/master/content_development/MAIN.md#table-of-contents). We can perhaps focus on some generic ones, such as R and Python, and then delve into a few discipline specific ones, and try and cover a nice range there.

@rvosa Have this now :) https://github.com/OpenScienceMOOC/Module-5-Open-Research-Software-and-Open-Source/blob/master/content_development/MAIN.md#Research

HOLY MOLY YES PLEASE. Thank goodness for smart/creative people..

Or this: https://github.com/OpenScienceMOOC/Module-5-Open-Research-Software-and-Open-Source/commit/2e1ba5cc84d55b69b42f2d6faa76151d83c4bf63#diff-0f8e0b24775d666f702b75d530494cf9

Cannot express how happy I am to see these contributions right now.. Thank you, @rvosa and @alexmorley! I'm sure there is a way to combine them both. I love Alex' idea of a sort of FAQ too.

I like @alexmorley's suggestion but I think it would be quite an enterprise, and really dependent on the specific research field. For example, just for the most generic workflows of "next-generation" DNA sequencing analysis, there's like dozens of single-purpose open source utilities to choose from to do the basic data processing even before you're attempting anything interesting. I imagine this is true in many fields.

@jcolomb I don't know if that third column is really a good idea. I mean there's a difference between Mozilla Corporation and Mozilla Foundation.
Also, LibreOffice via the Document Foundation benefit from big corporation like Google, Intel and Amd. I mean every big free and open source projects receive money from big corporations.
Moreover, it could create bias in users choice. For example, if I want to avoid Google because I don't want to support corporations that don't respect online privacy doesn't that mean I should avoid Non-profit who receive money from Google.

Here's a good matlab to Python guide. I'm not recommending an Enthought installation of Python (I use conda for package and environment management) but it's a short-ish document that might be helpful.
https://www.enthought.com/wp-content/uploads/Enthought-MATLAB-to-Python-White-Paper.pdf

Since one of the objective is to understand the economy of open source software, these questions are relevant, a third column might not be the most effective way to deal with the question, though. Any other suggestion?
PS: I personally make no difference between for-profit and non-for-profit software companies. I would be more confident to use a product from a for profit company which states its objective and business model, than a non-profit whose income or product is dependent to companies I dislike/showed bad behaviour in the past (remember using software dependent on the google rss software !)
Dr. Julien Colomb
#openscience #neuroscience
https://orcid.org/0000-0002-3127-5520
Trainer at access2perspectives.com
Founder of Drososhare.net
Schillerpromenade 4
12049 Berlin

On 9. Aug 2018, at 17:48, Danny Colin<EMAIL_ADDRESS>wrote:
@jcolomb https://github.com/jcolomb I don't know if that third column is really a good idea. I mean there's a difference between Mozilla Corporation and Mozilla Foundation.
Also, LibreOffice via the Document Foundation benefit from big corporation like Google, Intel and Amd. I mean every big free and open source projects receive money from big corporations.
Moreover, it could create bias in users choice. For example, if I want to avoid Google because I don't want to support corporations that don't respect online privacy doesn't that mean I should avoid Non-profit who receive money from Google.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/OpenScienceMOOC/Module-5-Open-Research-Software-and-Open-Source/issues/35#issuecomment-411805002, or mute the thread https://github.com/notifications/unsubscribe-auth/AByiu7VPomeRfhiER2Ie9WKmMnA4B6aZks5uPFndgaJpZM4V1RzR.

Did we settle on a conclusion for this in the end? I think @alexmorley's idea of a little table, and the engaging Q&A text would be a perfect compliment to what @rvosa has already written.

There's a PR now if people want to comment or make changes :)
I really like @jcolomb's idea but I think because the issue is far from simple I'd rather give it its own section (maybe or maybe not in the core material) or point to some detailed discussion than add a column in the table where it could add some confusion (at least it would for pea-brained folk such as myself!).
Happy friday y'all!

This is awesome, thanks so much @alexmorley! Have a great weekend all, I think this is a nice way to round off the week :)

Can/should this be closed for now?


Support loadBalancerIP field from load balancer services

With this change, kube2lb interprets the loadBalancerIP field of Services of type load balancer, and sets this IP in the PortSpec of the service so it can be used to generate configuration per IP.
Fixes #22

I have added a sanity check for the load balancer IP, that checks that in case of services of type load balancer, the IP is valid, and the host is configured with this IP or with net.ipv4.ip_nonlocal_bind=1.


Rename multi-cloud docker images

This patch is proposed to remove some invalid characters in the name of docker images, so that we can push them into docker.io repository.

LGTM


Update git-versions figure

Because release plans are changed, I updated the figure that describe how we make & update branches for each releases.
Also, I changed the image format from png to svg, and added a source file for draw.io so that anybody can update the figure (draw.io only requires web browser, no need to register).

If you render the svg the output is like below:

I added AL2 comment to the xml file but it doesn't pass RAT test :/

[approve ci rat]

[apprive ci autest]

[approve ci autest]


[Question] Error handling with status code 500

Hi there,
I'm currently looking for a Postman alternative and playing around with Bruno. I really love the folder / plain text files approach you are taking here. That said, I'm struggling a bit with the setup of API calls that are expected to fail.
I have to work with an older ASP.NET service hosted in IIS. It's expecting post requests with a json body containing some data. When that data is invalid, the service may simply return an HTTP 500 status code, with a response message containing some error details.
How can I setup a corresponding request in Bruno, so that the status code 500 is expected with that data and the run is ending up green? It seems that neither the post request script, nor a corresponding assertion or the test script code is running, since the execution is aborted before the runner gets there. Am I doing this wrong or is this expected behavior?

Hey @Lupfson !
Glad that you like Bruno.
Are you talking about setting up a test assertion so that it passes on a 500?
I just tried setting up a test assertion for a 400 response and it worked. Here is the screenshot.

Can you share a screenshot of the error you are seeing.

Hi Anoop,
thanks for the fast reply. Yes, that's what I want to achieve.
Currently this is a request that runs green:

The same requests is failing with status code 500 when I use other parameters, which is expected and something I would want to test for:

Also, if I just throw an exception in the post response script, that never shows up. Doing the same in the pre-request script, the exception is shown. So it seems, as if that request returning 500 isn't fully processed or something?

Also faced with that. I tried to use the "Tests" feature, but that seems to not work.

@Lupfson @UnityStand
This issue has been fixed in v0.13.0 and is available for Windows and Linux. Please go to downloads to get the latest version
Note:

The latest update, version 0.13.0, is now accessible for Windows and Linux users. Unfortunately, Mac builds are facing a delay due to notarization issues. As of now, the most recent Mac build available is version 0.12.2. The notarization challenges are expected to be resolved by September 15th, 2023.

The fix is now available for all operating systems.


Trim public cli-kit interface related to themes

WHY are these changes introduced?
We shouldn't expose more than absolutely necessary in cli-kit. While this work isn't complete (I think cli-kit already knows too much about themes), we should at least not expose functions that aren't used anywhere.

WHAT is this pull request doing?

Moves everything to private files that aren't exported from cli-kit, unless it's actually used in another package.
How to test your changes?

Do theme stuff
Measuring impact
How do we know this change was effective? Please choose one:

[x] n/a - this doesn't need measurement, e.g. a linting rule or a bug-fix
[ ] Existing analytics will cater for this addition
[ ] PR includes analytics changes to measure impact

Checklist

[x] I've considered possible cross-platform impacts (Mac, Linux, Windows)
[x] I've considered possible documentation changes
[x] I've made sure that any changes to dev or deploy have been reflected in the internal flowchart.

Oh, I didn't know about this folder... Maybe it makes sense to have a ThemeManager in cli-kit so it can eventually be used to build other tools... but we should revisit this folder to see what belongs here and what should be in theme


[0.4.0] test_lambdify_args fails

🐞 Problem
I am trying to update the Debian einsteinpy package.  Alternatively, I could just disable the test if it is a minor problem.

@olebole Thanks for opening this issue. Which EinsteinPy version are you working with? Last year, I had altered the tensor_lambdify code, which had fixed this issue on the latest build of EPy.

That is 0.4.0, the latest published version.

I see. So, would backporting that fix to the 0.4.0 branch help in this case? The docs also need to be updated for 0.4.0. I could bundle both changes together.

I can confirm that https://github.com/einsteinpy/einsteinpy/commit/81efd556e63cfa7e6e20ccd94bc5894ec6d466d7 solves the problem, thanks. I applied it as a patch to the Debian package, so I don't need a backport. If you don't release a 0.5.0 soon, it may however help others.

Good to hear that the fix worked. I am currently working on a Symbolic module overhaul, which isn't quite ready. I think, we can release 0.5 after that. Meanwhile, I think, backporting this fix, along with the docs update, should help,


The app header overlapping with system header

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

Version Number:
Reproducible in staging?: Needs Reproduction
Reproducible in production?: Needs Reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation: https://expensify.slack.com/archives/C05LX9D6E07/p1725353812491339
Action Performed:

Launch the Newdot app

Expected Result:
No visual issues
Actual Result:
The search button is overlapping the system header
Workaround:
When restarted the app it works.
Platforms:

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

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

Screenshots/Videos

Add any screenshot/video evidence

View all open jobs on GitHub

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Closing as a dupe of https://github.com/Expensify/App/issues/48190


Delta CDS: add on-demand cds support

Signed-off-by: aaron-ai<EMAIL_ADDRESS>Description: Apache RocketMQ needs the ability of on-demand CDS #9503 , so we split this part as an independent PR, this PR allows user can start a spontaneous DeltaDiscoveryRequests for CDS (AKA on-demand cds) by using addToClusterInterest or updateClusterInterest in cluster_manager.
Risk Level: Low
Testing: Unit Tests
Docs Changes: N/A
Release Notes: N/A
[Optional Fixes #Issue]: #9431

@zyfjeff

@wgallagher do you mind taking a first pass on this?

sure

Can we take a step back and document what the wire protocol looks like? On-demand protocols are pretty tricky, we only have one proof-of-existence today, which is VHDS, see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/vhds.html?highlight=vhds. We should have similar level of documentation for what delta CDS looks like.

Can we take a step back and document what the wire protocol looks like? On-demand protocols are pretty tricky, we only have one proof-of-existence today, which is VHDS, see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/vhds.html?highlight=vhds. We should have similar level of documentation for what delta CDS looks like.

Thank you, on-demand CDS 's document is available at the link below:
https://docs.google.com/document/d/1WW4rgUTAeeFO4XLLMDZhH71BYwr6u9r5XvCiawmjWVQ/edit?usp=sharing

@aaron-ai great, can you turn that into RST and include it in this PR? It should live somewhere similar to the VHDS docs I linked to.

@aaron-ai great, can you turn that into RST and include it in this PR? It should live somewhere similar to the VHDS docs I linked to.

OK, include the RST in the PR already.

@aaron-ai for this to be useful in a filter don't you need some capability to wait until the initial watch interest is loaded, with relevant timeouts, etc.? I don't see what in the code here. I'm trying to understand how this would be used in practice.

@aaron-ai for this to be useful in a filter don't you need some capability to wait until the initial watch interest is loaded, with relevant timeouts, etc.? I don't see what in the code here. I'm trying to understand how this would be used in practice.

Thanks for your reply! actually we will use ClusterUpdateCallbacks to notify the thread who wait for the CDS, the code in rocketmq_proxy (#9503 ) shows the related part.
void RocketmqClusterUpdateCallback::onClusterAddOrUpdate(Upstream::ThreadLocalCluster& cluster) {
  ENVOY_LOG(trace, "RocketmqClusterUpdateCallback#onClusterAddOrUpdate: {}",
            cluster.info()->name());
  connection_manager_.onClusterReady(cluster);
}

Thanks OK makes sense regarding the update callbacks. @wgallagher if you could take a first pass that would be great. Thank you!


Localization - move user facing strings into string table

Summary
For localizing CsWinRT tool errors and WinRT.Runtime errors, this will require moving all user-facing strings into a string table first.
Rationale
Provide localized error messages from WinRT.Runtime.dll and the cswinrt tool.
Important Notes
cswinrt.exe would require string table work, but code_writers is clean, so generated code should not be a problem.  WinRT.Host.dll has a table of exception strings that are user-facing, as does WinRT.Runtime.dll.  Those would need to be localized and most likely shipped in the CsWinRT package.

@angelazhangmsft Should we consider this for 1.4.1?


Shrinking/Fading curves

Add support for different curves for ShrinkingDespawnParticle and FadingDespawnParticle. Currently, they are unit structs and only support linear fading/shrinking.

This would be another field in the event.

From what I had implemented so far it is so visually negligible that I don't feel it's worth finishing, but I will leave this issue up in case I want to round back to it. There is a branch for this.


import flutter/flutter.h not found after upgrade flutter v2 on ios  #ios #not_found_import

I tried too many way such as:
1. remove folder ios:

Backup ios/Runner folder.
Delete the ios folder.
Run flutter create (your project name). in the previous folder where you have your project(cd users/user/"projects_folder") (this will recreate your ios folder).
Paste your Runner backup in the ios folder (into the project).
Open Runner.xcworkspace (into ios folder) and there, check the Version, the Bundle ID, all the info.
(If do you Have Firebase, you have to copy and paste again the Google Service-Info.Plist into the Runner folder (Always through Xcode) (If do you do this manually, it doesn't work).

Finally, flutter run and should work!
If flutter run fails:

cd ios
pod install
cd ..
flutter run

2. clean up in ios folder:

cd ios for going to iOS directory of the flutter app
pod deintegrate
rm Flutter/Flutter.podspec
rm podfile.lock
flutter clean
flutter run

3. Switch channel flutter to from stable to master:

flutter channel master
flutter upgrade --force
flutter doctor -v

4.remove Flutter.podspec only:

rm ios/Flutter/Flutter.podspec
flutter clean

Here is error message:

logs
> Failed to build iOS app
> Error output from Xcode build:
> ↳
>     ** BUILD FAILED **
>
> Xcode's output:
> ↳
>     Command CompileSwift failed with a nonzero exit code
>     Command CompileSwift failed with a nonzero exit code
>     Command CompileSwift failed with a nonzero exit code
>     Command CompileSwift failed with a nonzero exit code
>     Command CompileSwift failed with a nonzero exit code
>     In file included from /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/JavaScriptChannelHandler.m:5:
>     /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/JavaScriptChannelHandler.h:5:9: fatal error: 'Flutter/Flutter.h'
>     file not found
>     #import <Flutter/Flutter.h>
>             ^~~~~~~~~~~~~~~~~~~
>     1 error generated.
>     note: Using new build system
>     note: Building targets in parallel
>     note: Planning build
>     note: Constructing build description
>
> Could not build the application for the simulator.
> Error launching application on iPhone 12 mini.

Here another message error:

logs
> Failed to build iOS app
> Error output from Xcode build:
> ↳
>     ** BUILD FAILED **
>
>
> Xcode's output:
> ↳
>     In file included from /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/JavaScriptChannelHandler.m:5:
>     /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/JavaScriptChannelHandler.h:5:9: fatal error: 'Flutter/Flutter.h'
>     file not found
>     #import <Flutter/Flutter.h>
>             ^~~~~~~~~~~~~~~~~~~
>     1 error generated.
>     1 error generated.
>     In file included from /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTWebViewFlutterPlugin.m:5:
>     /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTWebViewFlutterPlugin.h:5:9: fatal error: 'Flutter/Flutter.h'
>     file not found
>     #import <Flutter/Flutter.h>
>             ^~~~~~~~~~~~~~~~~~~
>     1 error generated.
>     In file included from /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTWKProgressionDelegate.m:5:
>     /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTWKProgressionDelegate.h:5:9: fatal error: 'Flutter/Flutter.h'
>     file not found
>     #import <Flutter/Flutter.h>
>             ^~~~~~~~~~~~~~~~~~~
>     1 error generated.
>     In file included from /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTWKNavigationDelegate.m:5:
>     /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTWKNavigationDelegate.h:5:9: fatal error: 'Flutter/Flutter.h'
>     file not found
>     #import <Flutter/Flutter.h>
>             ^~~~~~~~~~~~~~~~~~~
>     1 error generated.
>     In file included from /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTCookieManager.m:5:
>     /Users/admin/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.3/ios/Classes/FLTCookieManager.h:5:9: fatal error: 'Flutter/Flutter.h' file not
>     found
>     #import <Flutter/Flutter.h>
>             ^~~~~~~~~~~~~~~~~~~
>     1 error generated.
>     Command CompileSwift failed with a nonzero exit code
>     Command CompileSwift failed with a nonzero exit code
>     Command CompileSwift failed with a nonzero exit code
>     /Users/admin/.pub-cache/hosted/pub.dartlang.org/video_player-2.1.0/ios/Classes/messages.m:8:9: fatal error: 'Flutter/Flutter.h' file not found
>     #import <Flutter/Flutter.h>
>             ^~~~~~~~~~~~~~~~~~~
>     1 error generated.
>     note: Using new build system
>     note: Building targets in parallel
>     note: Planning build
>     note: Constructing build description
>
> Could not build the application for the simulator.
> Error launching application on iPhone 12 mini.

Here my flutter version

flutter doctor -v
> [✓] Flutter (**Channel stable, 2.0.4, on macOS 11.2.3** 20D91 darwin-x64, locale en-KH)
>     • **Flutter version 2.0.4** at /Users/admin/flutter
>     • Framework revision b1395592de (5 days ago), 2021-04-01 14:25:01 -0700
>     • Engine revision 2dce47073a
>     • **Dart version 2.12.2**
>
> [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
>     • Android SDK at /Users/admin/Library/Android/sdk
>     • Platform android-30, build-tools 30.0.3
>     • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
>     • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
>     • All Android licenses accepted.
>
> [✓] Xcode - develop for iOS and macOS
>     • Xcode at /Applications/Xcode.app/Contents/Developer
>     • Xcode 12.4, Build version 12D4e
>     • CocoaPods version 1.10.1
>
> [✓] Chrome - develop for the web
>     • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
>
> [✓] Android Studio (version 4.1)
>     • Android Studio at /Applications/Android Studio.app/Contents
>     • Flutter plugin can be installed from:
>       🔨 https://plugins.jetbrains.com/plugin/9212-flutter
>     • Dart plugin can be installed from:
>       🔨 https://plugins.jetbrains.com/plugin/6351-dart
>     • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
>
> [✓] VS Code (version 1.55.0)
>     • VS Code at /Applications/Visual Studio Code.app/Contents
>     • Flutter extension version 3.21.0
>
> [✓] Connected device (2 available)
>     • iPhone 12 mini (mobile) • 6DD0D762-592F-407B-87E3-168771D8441F • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
>     • Chrome (web)            • chrome                               • web-javascript • Google Chrome 89.0.4389.90
>
> • No issues found!

I tried this solution also. but not working for me.
https://www.gitmemory.com/issue/flutter/flutter/24428/498702374

Facing same issue (  webview_flutter: ^1.0.7)
Launching lib/main.dart on iPhone 12 Pro Max in debug mode...
lib/main.dart:1
Xcode build done.                                           12.4s
Failed to build iOS app
Error output from Xcode build:
↳
    objc[19770]: Class AMSupportURLConnectionDelegate is implemented in both ?? (0x2090d8188) and ?? (0x1252042b8). One of the two will be used. Which one is undefined.
    objc[19770]: Class AMSupportURLSession is implemented in both ?? (0x2090d81d8) and ?? (0x125204308). One of the two will be used. Which one is undefined.
    ** BUILD FAILED **
Xcode's output:
↳
    /Users/innobits/Desktop/new/cheetah/ios/Runner/GeneratedPluginRegistrant.m:130:9: fatal error: module 'webview_flutter' not found
    @import webview_flutter;
     ~~~~~~~^~~~~~~~~~~~~~~
    1 error generated.
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description

i found 1 more solution but still got error
#70895 (comment)
$ rm ios/Flutter/Flutter.podspec $ flutter clean

@oengmengthong
Same problem for me in stable channel 2.0.4.
I confused so long time too, but downgrade to 2.0.3, and then works fine.
try it?

flutter downgrade

@oengmengthong  Can you attach your full flutter run logs with the --verbose flag?  It will be large, you'll need to attach the file.

my issues fixed by: flutter v2.0.4 with this solution

remove folder ios:
Backup ios/Runner folder.
Delete the ios folder.
Run flutter create (your project name). in the previous folder where you have your project(cd users/user/"projects_folder") (this will recreate your ios folder).
Paste your Runner backup in the ios folder (into the project).
Open Runner.xcworkspace (into ios folder) and there, check the Version, the Bundle ID, all the info.
(If do you Have Firebase, you have to copy and paste again the Google Service-Info.Plist into the Runner folder (Always through Xcode) (If do you do this manually, it doesn't work).
Finally, flutter run and should work!

If flutter run fails:
cd ios
pod install
cd ..
flutter run

Hi these solutions aren't working for me. Is there any other solution. Why has this suddenly started appearing?

@DotSyndicate Can you file a new issue, completely fill out the template, and attach the full logs from a flutter run with the --verbose flag?

Yes. I will file a new issue but apparently, everyone will point to this and other issues filed here. However, I will file a new issue.


New line leads to more annotation tasks in "Named Entity Recognition" in "Natural Language Processing" template

Describe the bug
A new line split a text to be annotated in more tasks
To Reproduce
Drag and Drop a file including \n character
Expected behavior
Do not split text into multiple tasks or have an ID that allows a task to be traced back to the original text from which it was derived
Environment (please complete the following information):

OS: macOS Big Sur
Label Studio Version 1.8.0

Hello morettif,
How are you importing the files? On UI there should be option to load whole text file

Hi @AbubakarSaad,
Sorry for the terrible delay in replying.
The problem I described occurs when I load the file (a .txt to be precise) as a list of tasks. I chose this upload mode because if I select "Time Series or Whole Text File", the text displayed is /data/upload/248/06c9a425-doc1105.txt, where doc1105 is the name of the file.
The problem does not occur uploading a json file created from the dictionary dict = {"data": {"text": content}}, where "content" is the same text in the txt file including the \n.
Thank you in advance for your support.

Hi @AbubakarSaad,
Sorry for the terrible delay in replying. The problem I described occurs when I load the file (a .txt to be precise) as a list of tasks. I chose this upload mode because if I select "Time Series or Whole Text File", the text displayed is /data/upload/248/06c9a425-doc1105.txt, where doc1105 is the name of the file. The problem does not occur uploading a json file created from the dictionary dict = {"data": {"text": content}}, where "content" is the same text in the txt file including the \n.
Thank you in advance for your support.

I encounter thesame problem, is any solution or workaround available please ?


0.25

Allow components to register custom frontend panels (@balloob)
New component panel_iframe allows adding other sites to sidebar (@balloob)
Add example custom_component react_panel showing custom panels (@balloob)
Added RFXTRX tests (@DanielHiversen)
New IMAP sensor to monitor your inbox (@danieljkemp)
Switch - GPIO: Fix incorrect initialization state when logic inverted (@zeroDenial)
Telldus Live: Add support for luminance value to Fibaro Motion Sensor
Script syntax: allow using templates for delay (@Teagan42)
Z-Wave fixes (@turbokongen)
input_slider will now allow float values (@ngraziano)
Media player: Russound RNET now supported (@laf)
Add type checking using mypy to the core (@fabianhjr)
Thermostat: KNX based thermostat now supported (@open-homeautomation)
Recorder stability fixes (@kellerza)
Qwikswitch stability fixes (@kellerza)
Thermostat - Nest: allow setting HVAC mode (@vladonemo)
Remote classes: allow specifying custom timeout when calling Home Assistant API (@n8henrie)
InfluxDB: option to specify additional tags (@open-homeautomation)
Media Player: DirecTV now supported (@cbulock)
Remote: add method to fetch config (@fabaff)
Device Tracker - iCloud: stability fixes (@kellerza)
Use browser timezone for frontend history and logbook dates (@armills)
Light: X10 is now supported (@fotoetienne)
Light - Hyperion: keep track of active color (@schneefux)
Sensor - Speedtest: improved error handling and state restoring (@nkgilley)
Sonos: added tests to improve code quality (@americanwookie)
Media Player: Media Player Classic - Home Cinema now supported (@abcminiuser)
Telegram: photo bug fixed (@pvizeli)
Groups: lock states will now be properly grouped (@jwl17330536)

Breaking Changes

Removed Google Voice SMS notify platform because the library no longer works.

Release notes: https://github.com/home-assistant/home-assistant.io/blob/next/source/_posts/2016-07-30-tbd.markdown

@americanwookie you managed to sneak in some PEP257 failures 😦

Awesome work @balloob 👍


Could not download symbols. Please see the Visual Studio Code output log for more details.

AL Extension Version:

Server Version:

Could not download symbols. Please see the Visual Studio Code output log for more details.

You're gonna need to give people more info than that...

Closing this issue as it does not follow the required template and does not provide information on how to reproduce the issue.


storage: read and write in-memory pessimistic locks in the scheduler

[x] Based on #11481

What is changed and how it works?
Ref #11452
What's Changed:
This PR supports reading and writing pessimistic locks in the transaction layer.
Check List
Tests

Unit test

Release note
None

/merge

/test

/test


Fix zone affinity merge

How to categorize this PR?

/area high-availability
/kind bug
What this PR does / why we need it:
This PR fixes an issue in the HighAvailabilityConfig-Webhook which caused node affinities being duplicated on every statefulset or deployment update.
Special notes for your reviewer:
This only happened when the resource defined multiple nodeSelectorTerms:
Before Update:
 spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: foo
                operator: In
                values:
                - bar
              - key: topology.kubernetes.io/zone
                operator: In
                values:
                - eu-west-1a
                - eu-west-1b
                - eu-west-1c

After Update:
spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: foo
                operator: In
                values:
                - bar
              - key: topology.kubernetes.io/zone
                operator: In
                values:
                - eu-west-1a
                - eu-west-1b
                - eu-west-1c
              - key: topology.kubernetes.io/zone
                operator: In
                values:
                - eu-west-1a
                - eu-west-1b
                - eu-west-1c

Thanks for reporting @shreyas-s-rao and @unmarshall.
Release note:

A bug has been fixed in the [HighAvailabilityConfig-Webhook](https://github.com/gardener/gardener/blob/master/docs/concepts/resource-manager.md#high-availability-config) which caused duplicated entries for zone affinities.

/cherry-pick relase-v1.72

/cherry-pick relase-v1.71

/retest-required

/test pull-gardener-e2e-kind

/cherry-pick release-v1.72

/cherry-pick release-v1.71

/cherry-pick release-v1.70


”Gârbovățu de Jos”, ”Imoasa”, ”Jirov”, ”Măru Roșu” are listed in the drop-down menu

Description:
When user writes ”Gârbovățu de Jos”, ”Imoasa”, ”Jirov”, ”Măru Roșu” the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Gârbovățu de Jos"

Expected results
The location appears in the drop-down menu as "Sat Gârbovățu de Jos, MEHEDINȚI (Corcova)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Imoasa"

Expected results
The location appears in the drop-down menu as "Sat Imoasa, MEHEDINȚI (Corcova)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Jirov"

Expected results
The location appears in the drop-down menu as "Sat Jirov, MEHEDINȚI (Corcova)".

Step 6
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 7
Write in the search bar "Măru Roșu"

Expected results
The location appears in the drop-down menu as "Sat Măru Roșu, MEHEDINȚI (Corcova)".


Bug 2214023: added Rack info for the topology details screen

fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2214023
when only zone is present

when only rack is present

just in case we have both of them

LGTM (but we are now maintaining  RACK_LABEL and getRack at 2 diff packages, should be always under shared and be removed from other place)

LGTM (but we are now maintaining RACK_LABEL and getRack at 2 diff packages, should be always under shared and be removed from other place)

True, should I refactor it in this PR itself only?

LGTM (but we are now maintaining RACK_LABEL and getRack at 2 diff packages, should be always under shared and be removed from other place)

True, should I refactor it in this PR itself only?

yup...

plz fix the build tests...

update the PR title correctly as per the guidelines...

/test odf-console-e2e-aws

squash the commits...

/test odf-console-e2e-aws

/cherry-pick release-4.14-compatibility

/cherry-pick release-4.14

/approve
/lgtm


RFC: remove React Transform from examples

Inspired by @thejameskyle’s rant on Twitter (no offense taken :smile: ), I propose to remove babel-preset-react-hmre from examples for the following reasons:

Both plugin transform and proxy wrapping are rather invasive and have edge cases
It’s experimental tech and beginners shouldn’t have to deal with its warts
It doesn’t currently reload functional components or container functions like mapStateToProps
In Redux we rarely care about preserving component local state when hot reloading! Preserving store state is usually enough.

This is a proof of concept of “vanilla” hot reloading (for now, only for a single example).
It has the following traits.
Pros

It is absolutely non-invasive and doesn’t change semantics of your code
It hot reloads any components, whether classes or functions
It preserves the store state on hot reload
It still handles errors on mount and hot reloading “fixes” them
It works for functions like mapStateToProps

Cons

It does not preserve the local state of components
It does not preserve the DOM so the components are remounted

What do you think? Should we proceed with this and do this for every example?

I think this is a good idea - having the transform plugin in the examples sorta gives the impression that it's something that you need to have in order to get hot reloading working with Redux. In fact, I was kinda under that impression myself until reading this!

Yeah a lot of people tend to get that impression.

Given all of this talk about "JavaScript fatigue", the less dependencies you need, the better.
That said, I definitely want to see react-transform advertised heavily as a DX improvement/plugin for redux - once you get comfortable using vanilla redux.

:+1: from me.  I agree that this doesn't belong in these examples, since it's not directly-related to Redux.

Sounds like a good move to me

This is what we've drifted towards as our project has gotten larger. Component HMR is just too finicky to maintain, and all the state we care about preserving is in the store

I like this, it demonstrates there's nothing magic about hmre.

This is 100x better, and handles all the common scenarios for 1/10th of the complexity. I'm in love with it.

:+1: from me, the hmre plugin caused me a lot of headaches a couple of weeks back (mostly documented here: https://gist.github.com/tanepiper/ea41aca1dda6473af738). It was a weird issue I never did resolve in the end, except to switch back to vanilla react-transform-hmr which worked out the box as expected.

@gaearon I just tried your modified example, RedBox shows correctly when an error is thrown, but after removing the error, the following occurs: Uncaught TypeError: Cannot read property '_currentElement' of null, and hot reloading no longer works. Is it a bug or is it not supported?

@dayletter
Good catch, this indeed happens with stable React. I was testing with the master version of React. I checked 0.15.0-alpha.1 and it doesn’t seem to have this problem. I would imagine that this was fixed with the initial pass on adding error boundaries in https://github.com/facebook/react/pull/5602/files#diff-c807d0f5ebbc12c44d9479dea693bef6R379.

Tried with alpha react, the same error happens

Weird. Are you sure it was 0.15 alpha, you installed it in example’s own folder and that you restarted the server?

Sorry my bad, it was some other error that looks the same.

Please let me know if you can reproduce it!

@gaearon Do you have an idea how this would work with apps using reactjs/react-router, e.g. the real-world example? It seems router lost it's replaceRoute function at some point and documents that the routes cannot be replaced with a warning. However that means also all react components inside aren't re-rendered. They do when I add a random key to the Router, but that seems like quite a horrible hack:
const renderApp = () => {
  const routes = require('../app/routes').default;
  const app = (
    <Provider store={store}>
      <Router routes={routes} history={history} key={Math.random()}/>
    </Provider>
  );
  render(app, rootNode);
};

renderApp();

if (module.hot) {
  module.hot.accept('../app/reducer', () => {
    store.replaceReducer(require('../app/reducer').default);
  });
  module.hot.accept('../app/routes', () => {
    setTimeout(() => {
      renderApp();
    });
  });
}

If you have a <Root> component in another file that renders <Provider><Router /></Provider> you should be able to use the approach in this PR without adding a key.

Indeed, thanks :+1:

@gaearon I support this change but have a question:

It does not preserve the DOM so the components are remounted

I am fetching data on componentDidMount() on the top-level component. And when I modify the child component, the top-level component's componentDidMount() gets called. I guess this can't be avoided?

With this approach, it can’t. You can, however, add some logic in the action creator to prevent fetches if the data is already available locally. IMO it is a good thing to do anyway (e.g. for instant Back button when you add routing).

@gaearon thanks so much for a quick reply! Got it. I've added caching in the action creator before but invalidating the cache when data got updated from some other action became hairly, so I just defaulted to fetching every time. Thanks!

I'm failing to get this working with react-router. Below is the source of my Root component. The Dummy is just a function returning a span with some text. If I remove the Router+Route and place Dummy directly under Provider, it updates with HMR. When the Router and Route components are there I get the The following modules couldn't be hot updated....
Then I inline the Dummy function in the Root file like function Dummy() {   return <span>"Update me x"</span> }, editing it will update the display too.
I feel I've tried everything by now :/ What could possibly to wrong?
import { PropTypes } from 'react'
import { Provider } from 'react-redux'
import { Router, Route } from 'react-router'
import Dummy from './Dummy'

Root.propTypes = {
  history: PropTypes.object.isRequired,
  routes: PropTypes.element.isRequired,
  store: PropTypes.object.isRequired
}

export default function Root ({store, history}) {
  return (
    <Provider store={store}>
      <Router history={history}>
        <Route path='/' component={Dummy}/>
      </Router>
    </Provider>
  )
}

It’s impossible to say what goes wrong if you provide a project reproducing the issue :wink: .

I've managed to work it out by putting the routes in a separate file and importing it in the Root module.
import { PropTypes } from 'react'
import { Provider } from 'react-redux'
import { Router, Route } from 'react-router'
import routes from '../routes'

Root.propTypes = {
  history: PropTypes.object.isRequired,
  store: PropTypes.object.isRequired
}

export default function Root ({store, history}) {
  return (
    <Provider store={store}>
      <Router history={history}>
        {routes}
      </Router>
    </Provider>
  )
}

Before, I passed the routes as a prop into Root at the dom render function like @c089 did in his example, but that doesn't seem to work for me. And passing the routes to module.hot.accept displays a warning on update that routes can't be hot updated as discussed here https://github.com/reactjs/react-router/issues/2704.
So although I can work around it for now, I still don't quite understand how to handle routes properly in relation to HMR.

Before, I passed the routes as a prop into Root at the dom render function like @c089 did in his example, but that doesn't seem to work for me.

Yes, that wouldn’t work. Hot updates follow the import chain. If you import routes from Root, and index.js calls module.hot.accept('./Root', ...), it will work because this update is handled. If you import routes from index.js and don’t explicitly handle them with something like module.hot.accept('./routes', ...), it will not work.

Thanks @gaearon for explaining! I did try module.hot.accept('./routes', ...) from index.js, but then received the error from react-router saying it couldn't hot update the routes. Maybe I missed something. I will give it another try later.

I think we’re talking past each other :smile: . I did not mean for you to actually do module.hot.accept('./routes' because indeed, React Router doesn’t know what to do with updated routes anyway. This is exactly why instead I suggested you to import routes in Root component and import a Root component in index.js so it is always different on every hot reload, and the router doesn’t try to reconcile new props—it is just replaced because Root type changed.

Haha ok I will NOT try that again then! :+1:

Hi, so with this new update, do you still need a separate server.js to run an express server with webpack-dev-middleware and webpack-hot-middleware? Or can you revert back to webpack-dev-server?

@sunyang713 It only relies on standard webpack hmr. You can use both the hot middleware and the standard dev server with hmr enabled.

Guys,so what is the most current way to use react hot reload with redux? Do you have any boilerplace project? https://github.com/gaearon/react-transform-boilerplate seems to be kind of deprecated.

What you see in this PR is what I recommend for Redux apps after React 15 comes out. I hope to work on a more complete solution that would replace RT later.

@sunyang713
Dev server vs express middleware is completely irrelevant to hot reloading. The only reason I prefer middleware in new examples is because it's easier to show how to combine it with server rendering than when you have two separate servers. You can use WebpackDevServer absolutely fine with either this setup or React Transform. This choice is completely unrelated.

I really benefit from React Transform even though I'm Redux, because lots of times I'm using state for things that are awkward to keep in the Redux store, like toggling a modal. A modal is an example where React Transform shines, because sometimes you need a few clicks to open a modal again, so without it you would have to do that every time you save a file.

I wan't to build isomorphic app with react-router async routes, failed with function component too. I found this hmr solution, but it's hart to implement Root for async routes. I write code below, it works fine, but ugly.  need some advise for better solutions.
hot wrapper
const hot = (r, a) => {
  if (module.hot) {
    let Inner = r();

    const wrapped = class Wrapped extends Component {
      constructor(props) {
        super(props);

        a(() => {
          Inner = r();
          this.forceUpdate();
        });
      }

      render() {
        return <Inner {...this.props} />;
      }
    };

    return wrapped;
  }

  return r();
};

routes
{
    path: '/',
    component: hot(
      () => require('./containers/Application/Application'),
      (update) => module.hot.accept('./containers/Application/Application', update)
    ),
    indexRoute: {
      getComponent(nextState, cb) {
        require.ensure([], require => {
          cb(null, hot(
            () => require('./containers/Home/Home'),
            (update) => module.hot.accept('./containers/Home/Home', update)
          ));
        });
      }
    },
    childRoutes: [
      {
        path: 'about',
        getComponent(nextState, cb) {
          require.ensure([], require => {
            cb(null, hot(
              () => require('./containers/About/About'),
              (update) => module.hot.accept('./containers/About/About', update)
            ));
          });
        },
        onEnter: requireLogin
      }
    ]
  }

A note:
I think it's better to also wrap the reducer  with try catch block to avoid broken HMR.
if (module.hot) {
  // Enable Webpack hot module replacement for reducers
  module.hot.accept('../reducers', () => {
    try {
      const nextRootReducer = require('../reducers').default;
      store.replaceReducer(nextRootReducer);
    } catch (error) {
      /* eslint-disable no-console */
      console.error('error: ', error);
      /* eslint-enable no-console */
    }
  });
}

Hey everyone!
While I’m still probably going to keep vanilla HMR in Redux examples for simplicity, I just released an alpha of React Hot Loader 3 which handles functional components, needs very little configuration (especially with regards to server rendering or production builds), works great with higher order components (so you can hot reload mapStateToProps) and contains other improvements. It’s not 100% ready yet but I encourage you to check it out!

@gaearon Can we close this out then?

Superceded by #1883

I saw a comment here about react-router being supported only with synchronous routes:
https://github.com/gaearon/react-hot-boilerplate/blob/next/src/App.js
Is it possible it works with async routes now? I moved my code into a separate root.jsx file to match the examples, and it works so long as I swap my <Router /> component for a <div />. This works with async routes in 1.3.0.
Sadly, on-save with the code as-is, it refreshes the page :/.
client.jsx (entry)
import React from 'react'
import { render } from 'react-dom'
import { match } from 'react-router'
import { AppContainer } from 'react-hot-loader'

// Root Component
import Root from 'root'

// Polyfills
import 'react-fastclick'
import 'utilities/polyfills'

// Store and Routes
import { history } from 'utilities/store'
import routes from './routes'

// Router
match({ history, routes }, (error, redirectLocation, renderProps) => {
	if (redirectLocation) {
		window.location = redirectLocation.pathname
	}

	render(
		<AppContainer>
			<Root renderProps={renderProps} />
		</AppContainer>
	, document.getElementById('root'))

	if (module.hot) {
		module.hot.accept('./root', () => {
			const RootContainer = require('./root').default
			render(
				<AppContainer>
					<RootContainer renderProps={renderProps} />
				</AppContainer>
			, document.getElementById('root'))
		})
	}
})

root.jsx
import React, { Component } from 'react'
import { Provider } from 'react-redux'
import { browserHistory, Router } from 'react-router'

// Store and Routes
import { store } from 'utilities/store'

export default class Root extends Component {
	render() { return (
		<Provider store={store}>
			<Router history={browserHistory} {...this.props.renderProps} />
		</Provider>
	)}
}

Repo w/ Update Branch:
https://github.com/Sawtaytoes/Ghadyani-Framework-Webpack-React-Redux/tree/feature/update-react-hot-loader
Update Commit:
https://github.com/Sawtaytoes/Ghadyani-Framework-Webpack-React-Redux/commit/c675c42301e20f83abd8f1cdb1ba8b7978f3fe04


Missing ECDHE Ciphers in 8-jdk-alpine

What are you trying to do?
Confirm that JDK 8 termurin alpine image has same set of ciphers as other JDK 8 temurin operating system versions. Seeing SSL handshake errors in code when using latest JDK 8 termurin alpine image that were not seen when using the same code with the older AdoptOpenJDK 8 alpine image.
Expected behaviour:
No SSL handshake errors when relying on ECDHE Ciphers in using an image derived from the JDK 8 termurin alpine image
Expect to see the same list of ciphers in the Alpine 8 JDK image as seen in non-Alpine 8 JDK images.
Observed behaviour:
darkedges reported this issue succinctly in https://github.com/adoptium/temurin-build/issues/2963 but decided to close the issue. I've opened this so that the community can find a resolution in the code base.
Any other comments:

The list of ciphers seen in the (legacy) adoptopenjdk alpine 8 image shows a fuller set of ciphers (using https://confluence.atlassian.com/stashkb/list-ciphers-used-by-jvm-679609085.html to list the ciphers):
docker run -it adoptopenjdk/openjdk8 sh
apt-get update
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:3 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [27.5 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1,331 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1,275 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1,979 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:11 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [881 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [30.3 kB]
Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2,420 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1,161 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [1,411 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [27.1 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [54.2 kB]
Fetched 22.8 MB in 5s (4,211 kB/s)
Reading package lists... Done
apt-get install vim
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
alsa-topology-conf alsa-ucm-conf file libasound2 libasound2-data libcanberra0 libgpm2 libltdl7 libmagic-mgc libmagic1 libmpdec2 libogg0 libpython3.8
libpython3.8-minimal libpython3.8-stdlib libreadline8 libtdb1 libvorbis0a libvorbisfile3 mime-support readline-common sound-theme-freedesktop vim-common
vim-runtime xxd xz-utils
Suggested packages:
libasound2-plugins alsa-utils libcanberra-gtk0 libcanberra-pulse gpm readline-doc ctags vim-doc vim-scripts
The following NEW packages will be installed:
alsa-topology-conf alsa-ucm-conf file libasound2 libasound2-data libcanberra0 libgpm2 libltdl7 libmagic-mgc libmagic1 libmpdec2 libogg0 libpython3.8
libpython3.8-minimal libpython3.8-stdlib libreadline8 libtdb1 libvorbis0a libvorbisfile3 mime-support readline-common sound-theme-freedesktop vim vim-common
vim-runtime xxd xz-utils
0 upgraded, 27 newly installed, 0 to remove and 7 not upgraded.
Need to get 13.0 MB of archives.
After this operation, 64.7 MB of additional disk space will be used.
Do you want to continue?
(Reading database ... 7341 files and directories currently installed.)
Preparing to unpack .../00-libmagic-mgc_1%3a5.38-4_amd64.deb ...
Unpacking libmagic-mgc (1:5.38-4) ...
Selecting previously unselected package libmagic1:amd64.
Preparing to unpack .../01-libmagic1_1%3a5.38-4_amd64.deb ...
Unpacking libmagic1:amd64 (1:5.38-4) ...
Selecting previously unselected package file.
Preparing to unpack .../02-file_1%3a5.38-4_amd64.deb ...
Unpacking file (1:5.38-4) ...
Selecting previously unselected package libmpdec2:amd64.
Preparing to unpack .../03-libmpdec2_2.4.2-3_amd64.deb ...
Unpacking libmpdec2:amd64 (2.4.2-3) ...
Selecting previously unselected package libpython3.8-minimal:amd64.
Preparing to unpack .../04-libpython3.8-minimal_3.8.10-0ubuntu1~20.04.4_amd64.deb ...
Unpacking libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04.4) ...
Selecting previously unselected package mime-support.
Preparing to unpack .../05-mime-support_3.64ubuntu1_all.deb ...
Unpacking mime-support (3.64ubuntu1) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../06-readline-common_8.0-4_all.deb ...
Unpacking readline-common (8.0-4) ...
Selecting previously unselected package libreadline8:amd64.
Preparing to unpack .../07-libreadline8_8.0-4_amd64.deb ...
Unpacking libreadline8:amd64 (8.0-4) ...
Selecting previously unselected package libpython3.8-stdlib:amd64.
Preparing to unpack .../08-libpython3.8-stdlib_3.8.10-0ubuntu1~20.04.4_amd64.deb ...
Unpacking libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04.4) ...
Selecting previously unselected package xxd.
Preparing to unpack .../09-xxd_2%3a8.1.2269-1ubuntu5.7_amd64.deb ...
Unpacking xxd (2:8.1.2269-1ubuntu5.7) ...
Selecting previously unselected package vim-common.
Preparing to unpack .../10-vim-common_2%3a8.1.2269-1ubuntu5.7_all.deb ...
Unpacking vim-common (2:8.1.2269-1ubuntu5.7) ...
Selecting previously unselected package xz-utils.
Preparing to unpack .../11-xz-utils_5.2.4-1ubuntu1.1_amd64.deb ...
Unpacking xz-utils (5.2.4-1ubuntu1.1) ...
Selecting previously unselected package alsa-topology-conf.
Preparing to unpack .../12-alsa-topology-conf_1.2.2-1_all.deb ...
Unpacking alsa-topology-conf (1.2.2-1) ...
Selecting previously unselected package alsa-ucm-conf.
Preparing to unpack .../13-alsa-ucm-conf_1.2.2-1ubuntu0.13_all.deb ...
Unpacking alsa-ucm-conf (1.2.2-1ubuntu0.13) ...
Selecting previously unselected package libasound2-data.
Preparing to unpack .../14-libasound2-data_1.2.2-2.1ubuntu2.5_all.deb ...
Unpacking libasound2-data (1.2.2-2.1ubuntu2.5) ...
Selecting previously unselected package libasound2:amd64.
Preparing to unpack .../15-libasound2_1.2.2-2.1ubuntu2.5_amd64.deb ...
Unpacking libasound2:amd64 (1.2.2-2.1ubuntu2.5) ...
Selecting previously unselected package libltdl7:amd64.
Preparing to unpack .../16-libltdl7_2.4.6-14_amd64.deb ...
Unpacking libltdl7:amd64 (2.4.6-14) ...
Selecting previously unselected package libtdb1:amd64.
Preparing to unpack .../17-libtdb1_1.4.3-0ubuntu<IP_ADDRESS>_amd64.deb ...
Unpacking libtdb1:amd64 (1.4.3-0ubuntu<IP_ADDRESS>) ...
Selecting previously unselected package libogg0:amd64.
Preparing to unpack .../18-libogg0_1.3.4-0ubuntu1_amd64.deb ...
Unpacking libogg0:amd64 (1.3.4-0ubuntu1) ...
Selecting previously unselected package libvorbis0a:amd64.
Preparing to unpack .../19-libvorbis0a_1.3.6-2ubuntu1_amd64.deb ...
Unpacking libvorbis0a:amd64 (1.3.6-2ubuntu1) ...
Selecting previously unselected package libvorbisfile3:amd64.
Preparing to unpack .../20-libvorbisfile3_1.3.6-2ubuntu1_amd64.deb ...
Unpacking libvorbisfile3:amd64 (1.3.6-2ubuntu1) ...
Selecting previously unselected package sound-theme-freedesktop.
Preparing to unpack .../21-sound-theme-freedesktop_0.8-2ubuntu1_all.deb ...
Unpacking sound-theme-freedesktop (0.8-2ubuntu1) ...
Selecting previously unselected package libcanberra0:amd64.
Preparing to unpack .../22-libcanberra0_0.30-7ubuntu1_amd64.deb ...
Unpacking libcanberra0:amd64 (0.30-7ubuntu1) ...
Selecting previously unselected package libgpm2:amd64.
Preparing to unpack .../23-libgpm2_1.20.7-5_amd64.deb ...
Unpacking libgpm2:amd64 (1.20.7-5) ...
Selecting previously unselected package libpython3.8:amd64.
Preparing to unpack .../24-libpython3.8_3.8.10-0ubuntu1~20.04.4_amd64.deb ...
Unpacking libpython3.8:amd64 (3.8.10-0ubuntu1~20.04.4) ...
Selecting previously unselected package vim-runtime.
Preparing to unpack .../25-vim-runtime_2%3a8.1.2269-1ubuntu5.7_all.deb ...
Adding 'diversion of /usr/share/vim/vim81/doc/help.txt to /usr/share/vim/vim81/doc/help.txt.vim-tiny by vim-runtime'
Adding 'diversion of /usr/share/vim/vim81/doc/tags to /usr/share/vim/vim81/doc/tags.vim-tiny by vim-runtime'
Unpacking vim-runtime (2:8.1.2269-1ubuntu5.7) ...
Selecting previously unselected package vim.
Preparing to unpack .../26-vim_2%3a8.1.2269-1ubuntu5.7_amd64.deb ...
Unpacking vim (2:8.1.2269-1ubuntu5.7) ...
Setting up libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04.4) ...
Setting up libgpm2:amd64 (1.20.7-5) ...
Setting up libogg0:amd64 (1.3.4-0ubuntu1) ...
Setting up mime-support (3.64ubuntu1) ...
Setting up alsa-ucm-conf (1.2.2-1ubuntu0.13) ...
Setting up libmagic-mgc (1:5.38-4) ...
Setting up libtdb1:amd64 (1.4.3-0ubuntu<IP_ADDRESS>) ...
Setting up libmagic1:amd64 (1:5.38-4) ...
Setting up file (1:5.38-4) ...
Setting up xxd (2:8.1.2269-1ubuntu5.7) ...
Setting up libasound2-data (1.2.2-2.1ubuntu2.5) ...
Setting up vim-common (2:8.1.2269-1ubuntu5.7) ...
Setting up xz-utils (5.2.4-1ubuntu1.1) ...
update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/lzma.1.gz because associated file /usr/share/man/man1/xz.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/unlzma.1.gz because associated file /usr/share/man/man1/unxz.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzcat.1.gz because associated file /usr/share/man/man1/xzcat.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzmore.1.gz because associated file /usr/share/man/man1/xzmore.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzless.1.gz because associated file /usr/share/man/man1/xzless.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzdiff.1.gz because associated file /usr/share/man/man1/xzdiff.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzcmp.1.gz because associated file /usr/share/man/man1/xzcmp.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzgrep.1.gz because associated file /usr/share/man/man1/xzgrep.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzegrep.1.gz because associated file /usr/share/man/man1/xzegrep.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzfgrep.1.gz because associated file /usr/share/man/man1/xzfgrep.1.gz (of link group lzma) doesn't exist
Setting up libvorbis0a:amd64 (1.3.6-2ubuntu1) ...
Setting up libltdl7:amd64 (2.4.6-14) ...
Setting up alsa-topology-conf (1.2.2-1) ...
Setting up sound-theme-freedesktop (0.8-2ubuntu1) ...
Setting up libasound2:amd64 (1.2.2-2.1ubuntu2.5) ...
Setting up libmpdec2:amd64 (2.4.2-3) ...
Setting up vim-runtime (2:8.1.2269-1ubuntu5.7) ...
Setting up readline-common (8.0-4) ...
Setting up libreadline8:amd64 (8.0-4) ...
Setting up libvorbisfile3:amd64 (1.3.6-2ubuntu1) ...
Setting up libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04.4) ...
Setting up libcanberra0:amd64 (0.30-7ubuntu1) ...
Setting up libpython3.8:amd64 (3.8.10-0ubuntu1~20.04.4) ...
Setting up vim (2:8.1.2269-1ubuntu5.7) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/vi.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/vi.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/vi.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/vi.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/vi.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/vi.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/vi.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/vi.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group vi) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/view.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/view.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/view.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/view.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/view.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/view.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/view.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/view.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group view) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/ex.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/ex.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/ex.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/ex.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/ex.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/ex.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/ex.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/ex.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group ex) doesn't exist
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/da/man1/editor.1.gz because associated file /usr/share/man/da/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/de/man1/editor.1.gz because associated file /usr/share/man/de/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/fr/man1/editor.1.gz because associated file /usr/share/man/fr/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/it/man1/editor.1.gz because associated file /usr/share/man/it/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ja/man1/editor.1.gz because associated file /usr/share/man/ja/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/pl/man1/editor.1.gz because associated file /usr/share/man/pl/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/ru/man1/editor.1.gz because associated file /usr/share/man/ru/man1/vim.1.gz (of link group editor) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/editor.1.gz because associated file /usr/share/man/man1/vim.1.gz (of link group editor) doesn't exist
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
cd /tmp
vi Ciphers.java
javac Ciphers.java
java Ciphers
Default	Cipher

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
TLS_EMPTY_RENEGOTIATION_INFO_SCSV
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384

exit

Added to PMC agenda

maybe related to this one https://github.com/alpinelinux/aports/pull/1697

build team will look into this.

The ciphers are also missing in the newly created alpine image (JDK8u342).

I was wondering if there is any update to this request and, if possible, any potential ETA to provide an Alpine Java 8 version with the mission ciphers?

Thinking out loud.  We currently download and integrate the same cipher suite as Mozilla.  I'm not sure if ECDHE is supported in that set, that would be my next step for investigation.  Will ping the build team

@karianna
Thank you for the update.
Bouncy Castle license is similar to MIT License.
https://www.bouncycastle.org/licence.html
The following simple script is adding bouncy castle jar file to JAVA_HOME - resolving the missing ciphers issue.
update_bouncy_castle_in_java_security.sh
#!/bin/sh
if [[ ! -z "${JAVA_HOME}" ]]; then
export JAVA_PATH=which java
export JAVA_RESOLVED_PATH=readlink -fn $JAVA_PATH
export JAVA_HOME=echo $JAVA_RESOLVED_PATH | sed 's/\/bin\/java$//'
fi
export JAVA_LIB_FOLDER=$JAVA_HOME/lib
export JAVA_LIB_SECURITY_FOLDER=$JAVA_LIB_FOLDER/security
export JAVA_SECURITY_FILE=$JAVA_LIB_SECURITY_FOLDER/java.security
chmod 777 "$JAVA_SECURITY_FILE"
/bin/mv "$JAVA_SECURITY_FILE" "$JAVA_SECURITY_FILE.$$"
cat "$JAVA_SECURITY_FILE.$$" | awk 'BEGIN{x=0}{if ($1 ~ /^security.provider./) {split($1,c,"=") ; split(c[1],d,".") ; if (d[3]==2) {x=1 ; print "security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider"} ; print "security.provider."d[3]+x"="c[2]} else {print $0}}' > "$JAVA_SECURITY_FILE"
chmod 644 "$JAVA_SECURITY_FILE"
export BOUNCY_CASTLE_DOWNLOAD_BASE_URL=https://www.bouncycastle.org/download
export BOUNCY_CASTLE_JAVA_VERSION=jdk18on
export BOUNCY_CASTLE_VERSION_NUMBER=171
export BOUNCY_CASTLE_VERSION=$BOUNCY_CASTLE_JAVA_VERSION-$BOUNCY_CASTLE_VERSION_NUMBER
export BOUNCY_CASTLE_JAR_FILE=bcprov-$BOUNCY_CASTLE_VERSION.jar
export BOUNCY_CASTLE_DOWNLOAD_URL=$BOUNCY_CASTLE_DOWNLOAD_BASE_URL/$BOUNCY_CASTLE_JAR_FILE
export BOUNCY_CASTLE_PATH=$JAVA_LIB_FOLDER/ext/$BOUNCY_CASTLE_JAR_FILE
wget -O $BOUNCY_CASTLE_PATH $BOUNCY_CASTLE_DOWNLOAD_URL
chmod 644 "$BOUNCY_CASTLE_PATH"

I found that sun.security.ec.SunEC provider initializes in !useFullImplementation mode due to:
java.lang.UnsatisfiedLinkError: /opt/java/openjdk/lib/amd64/libsunec.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /opt/java/openjdk/lib/amd64/libsunec.so)

Once I installed libgcc package through:
# apk add libgcc
(1/1) Installing libgcc (11.2.1_git20220219-r2)
OK: 31 MiB in 29 packages

the issue went away.

Quite possibly @jerboaa, I'll do some testing

I guess the question becomes should we ship libgcc as part of our alpine Docker image?

probably should move this issue into https://github.com/adoptium/containers to continue discussion.

I guess the question becomes should we ship libgcc as part of our alpine Docker image?

Would be something to consider, yes. Or find a way for libsunec.so to not require it. https://github.com/adoptium/containers/issues/319 indicates that this breaks some TLS 1.3 use cases too.

I thought the idea of Alpine was to avoid shipping libgcc :-), hopefully we can fix libsunec.so here.

I used some ugly (but working) hack:
FROM eclipse-temurin:11-alpine as jdk-cipher-hack
COPY --from=jdk-cipher-hack /opt/java/openjdk/lib/libsunec.so /opt/java/openjdk/jre/lib/amd64/libsunec.so

When the image itself uses FROM eclipse-temurin:8-alpine
The key to solve the issue may be to check how libsunec.so from v11 is linked since it does not depend on libgcc_s.so

https://bugs.openjdk.org/browse/JDK-8306037 is the upstream issue.

I found that sun.security.ec.SunEC provider initializes in !useFullImplementation mode due to:
java.lang.UnsatisfiedLinkError: /opt/java/openjdk/lib/amd64/libsunec.so: Error loading shared library libgcc_s.so.1: No such file or directory (needed by /opt/java/openjdk/lib/amd64/libsunec.so)

Once I installed libgcc package through:
# apk add libgcc
(1/1) Installing libgcc (11.2.1_git20220219-r2)
OK: 31 MiB in 29 packages

the issue went away.

perfect solution

Yup as per @codeseedr's comment:
Without libgcc installed:
SSLServerSocketFactory -> sun.security.ssl.SSLServerSocketFactoryImpl
1 TLS_AES_256_GCM_SHA384
2 TLS_AES_128_GCM_SHA256
3 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
4 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
5 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
6 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
7 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
8 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
9 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
10 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
11 TLS_DHE_RSA_WITH_AES_256_CBC_SHA
12 TLS_DHE_DSS_WITH_AES_256_CBC_SHA
13 TLS_DHE_RSA_WITH_AES_128_CBC_SHA
14 TLS_DHE_DSS_WITH_AES_128_CBC_SHA
15 TLS_RSA_WITH_AES_256_GCM_SHA384
16 TLS_RSA_WITH_AES_128_GCM_SHA256
17 TLS_RSA_WITH_AES_256_CBC_SHA256
18 TLS_RSA_WITH_AES_128_CBC_SHA256
19 TLS_RSA_WITH_AES_256_CBC_SHA
20 TLS_RSA_WITH_AES_128_CBC_SHA
21 TLS_EMPTY_RENEGOTIATION_INFO_SCSV

With libgcc installed:
SSLServerSocketFactory -> sun.security.ssl.SSLServerSocketFactoryImpl
1 TLS_AES_256_GCM_SHA384
2 TLS_AES_128_GCM_SHA256
3 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
4 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
5 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
6 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
7 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
8 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
9 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
10 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
11 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
12 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
13 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
14 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
15 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
16 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
17 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
18 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
19 TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
20 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
21 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
22 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
23 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
24 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
25 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
26 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
27 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
28 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
29 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
30 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
31 TLS_DHE_RSA_WITH_AES_256_CBC_SHA
32 TLS_DHE_DSS_WITH_AES_256_CBC_SHA
33 TLS_DHE_RSA_WITH_AES_128_CBC_SHA
34 TLS_DHE_DSS_WITH_AES_128_CBC_SHA
35 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
36 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
37 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
38 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
39 TLS_RSA_WITH_AES_256_GCM_SHA384
40 TLS_RSA_WITH_AES_128_GCM_SHA256
41 TLS_RSA_WITH_AES_256_CBC_SHA256
42 TLS_RSA_WITH_AES_128_CBC_SHA256
43 TLS_RSA_WITH_AES_256_CBC_SHA
44 TLS_RSA_WITH_AES_128_CBC_SHA
45 TLS_EMPTY_RENEGOTIATION_INFO_SCSV

Thank you so much, this is exactly the solution I needed for my situation.


ChimeraOS version is not displayed under Settings/System/About

Doing some test and research the client seems to be reading /etc/os-release to set those strings.
Reference: https://www.freedesktop.org/software/systemd/man/os-release.html
For the codename use VERSION_CODENAME, for variant use VARIANT_ID and for version use VERSION_ID.


appgate-sdp: add missing xdg-utils

Motivation for this change
Fixes #118675
Things done

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

[x] NixOS
[ ] 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 nixpkgs-review --run "nixpkgs-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)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 118676 at f1b7ee84 run on x86_64-linux 1

1 package built successfully:

appgate-sdp

1 suggestion:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/networking/appgate-sdp/default.nix:125:3:
    |
125 |   installPhase = ''
    |   ^


[T3A3][W10-A4]Inaba Kazuhiro

ready for review

Good effort @inaba1231
Some comments added. Please close the PR after reading comments.

@inaba1231 this a reminder to close this PR after reading comments. If PRs remain open, we will assume you are not interested in reading our comments and therefore we will stop reviewing your PRs.


nixos/vault: implement RFC0042

Description of changes

this PR contributes to #144575 by migrating the vault module to RFC42
i intended this change to be as minimally intrusive as possible, though one might argue i'm breaking stuff willy nilly because i removed 4 options: listenerExtraConfig, storageConfig, telemetryConfig, and extraConfig
while i feel bad about breaking things the added maintenance burden in generating a configuration file that preserves these removed options isn't worth the hassle for people who work on this module
remaining tasks:

[ ] gather some feedback
[ ] test this module on my vault instance which uses the raft storage protocol
[ ] write release notes

cc @jelle-bigbridge as someone who somewhat recently contributed to the module... maybe you want to test this :smile:
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Thank you for tagging me (@jelle-bigbridge is my old account). Unfortunately I'm unable to test this as we migrated off of vault at work. The changes do seem good to me however. I recommend merging when the module is tested properly

@ofborg test vault

@ofborg build vault

unfree so i don't think anything will go here... i ran all tests locally, though

unfree so i don't think anything will go here

It is distributable and source available fwiw. In my opinion, ofborg should build it.

https://github.com/NixOS/ofborg/issues/687

Perhaps OpenBao support could be added; that's proper open source, and would run in ofborg without any changes.

Perhaps OpenBao support could be added

yeah, i am sure someone will package it soon enough 👍

unfree so i don't think anything will go here

It is distributable and source available fwiw. In my opinion, ofborg should build it.
* [Allow unfree redistributable builds? ofborg#687](https://github.com/NixOS/ofborg/issues/687)

Does hydra build unfreeRedistributable? Maybe we need to change license to this.

given the work @roberth and @MattSturgeon have done on a record type i no longer feel great about moving forward with this PR, despite how the module has some serious shortcomings
if you ever feel inclined to continue the great work you were doing please ping me @MattSturgeon, as the vault module would greatly benefit from it (as would many other modules!) :bowing_man:


Large aggregated result

Summary
What happened/what you expected to happen?
Hello. I’m running a workflow that fans out quite a few parallel tasks, each of which outputs a parameter and then aggregates the parameters with {{tasks.task-name.outputs.parameters.output-name}} in the next step. However, the wait and the main container seems to be crashing with the following error: standard_init_linux.go:228: exec user process caused: argument list too long . Looks like this is because the size of the aggregated result is too huge (136 KB) to fit into the ARGO_TEMPLATE environment variable. Any idea how can I fix this? Thanks!
What version of Argo Workflows are you running?
v3.2.4 with the PNS executor

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

@gandeevan you can store it as artifacts for aggregated output and pass it to downstream steps.

I did try storing the aggregated output as an artifact for the downstream step using the raw field. But that causes the same issue, since the entire template including the value of the raw field is populated into the ARGO_TEMPLATE environment variable.
To the best of my knowledge there's no workflow variable to aggregate the aggregate the artifacts of the previous step (which uses withParams) -  the artifact equivalent of steps.<STEPNAME>.outputs.parameters. Is that correct?

yes,   there  is  one  more workaround you can  try  using   PVC for all fanout  steps to store  the output  and downstream step can read from the  same PVC

We use GKE, which doesn't support simultaneous mounting of a volume on multiple nodes in the read-write mode. Using a PVC for storing the output would thus serialize the fanned-out steps.

Just thinking out loud here - would it be a good idea to add the support to expose the aggregated result as an artifact, to solve for when the aggregated result is too big to fit into a parameter? I can probably take a shot at this.

@gandeevan good idea. I will change the label to enhancement

We've started running into the same problem after upgrading from 3.1.10 to 3.2.6.
It seems to have been caused by the switch to from debian slim to alpine in #6006:
docker run -it docker.io/library/debian:10.7-slim /bin/sh -c "getconf ARG_MAX"
2097152
docker run -it alpine:3 /bin/sh -c "getconf ARG_MAX"
131072

Running into similar issues here. We are using Argo Workflows to consume events from several webhooks. Sometimes the payload seems to too large for a workflow to be able to start:
standard_init_linux.go:228: exec user process caused: argument list too long

@gandeevan, @evax , we just managed to come up with a solution. Maybe this would work for you as well.
You should enable archival of workflows. Basically you then write all workflows to a database for later retrieval: https://jira-eu-aholddelhaize.atlassian.net/browse/ENBL-8579. This feature creates a couple of tables in a SQL-database including the table argo_archived_workflows, which contains the actual kubernetes manifest for all the workflows.
Fetch the dynamic content from that field and rerun whatever you intended to run!

It is not possible to fix this is the current architecture due to limitations on the size or argument.s

This is actually a regression and should not have been closed.