-
Notifications
You must be signed in to change notification settings - Fork 29.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deps: bundle full sources of undici and not just precompiled blob #42199
Comments
What would be the advantage(s) of doing it? |
For distributions, we always like to have the sources available so we can build from them. For example, in the future maybe a fix needs to be applied and just upgrading the entire package to the latest version may be no longer compatible. I guess for Debian, the bundled .js + wasm is not even distributable since it's not preferred source format for modifications. |
can yo clarify what you mean by that? |
On 3/4/22 00:18, Michael Dawson wrote:
I guess for Debian, the bundled .js + wasm is not even distributable
since it's not preferred source format for modifications.
can yo clarify what you mean by that?
I hope I don't have to re-introduce Free Open Source definition now? :-)
But for quick summary, a compiled blob, even if it's portable across
platforms, is not free software source since it does not contains the
source part. The compilation/compression/bundling (etc) step, takes
multiple source files and makes them into a format that is easier to
distribute and run, and no longer easier to edit.
Any patches or modifications are preferred to by applied on the original
sources and recompiled/bundled/etc.
Another example of pre-compiled binary is `yarn` or `tsc` npm package --
the github repository where development can take place does not consist
of one massive JS file.
Anyway, similar discussion on Debian Legal more than a decade ago and I
thing I remember that from earlier,
https://lists.debian.org/debian-legal/2010/04/msg00003.html
- Adam
|
I think this is a reasonable ask to make floating patches easier but I'm hesitant to sacrifice the developer experience somewhat for it. For what it's worth and just to be clear undici is open source too and you can change stuff in the "wasm bits" (llhttp, another dep that is also open source), build it and then tell Node.js to use it by updating undici in the deps folder. Would a process that makes that change easier help or is avoiding having any blobs the important bit? Note (funnily) Node.js already builds llhttp since it also uses it internally, I wonder how much work it would be to just get that to produce the wasm for undici. @dnlup worked on the wasm build if I am reading the llhttp repo correctly, maybe he can weigh in? |
This also adds a script to automate the update and includes the sources included in the npm tarball. Closes: nodejs#42199
I opened #42246 which includes a copy of the undici sources in deps/undici/src. |
@AdamMajer does #42246 address your concern? |
@mhdawson yes, thank you. |
@AdamMajer thanks, great to hear wanted to be sure there were not other concerns. |
This also adds a script to automate the update and includes the sources included in the npm tarball. PR-URL: #42246 Fixes: #42199 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Tierney Cyren <[email protected]>
This also adds a script to automate the update and includes the sources included in the npm tarball. PR-URL: nodejs#42246 Fixes: nodejs#42199 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Tierney Cyren <[email protected]>
This also adds a script to automate the update and includes the sources included in the npm tarball. PR-URL: nodejs#42246 Fixes: nodejs#42199 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Tierney Cyren <[email protected]>
This also adds a script to automate the update and includes the sources included in the npm tarball. PR-URL: #42246 Backport-PR-URL: #42727 Fixes: #42199 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Tierney Cyren <[email protected]>
This also adds a script to automate the update and includes the sources included in the npm tarball. PR-URL: nodejs#42246 Fixes: nodejs#42199 Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Tierney Cyren <[email protected]>
What is the problem this feature will solve?
Current Nodejs is bundling undici but instead of the sources, we only have a pre-compiled blob.
What is the feature you are proposing to solve the problem?
Bundle the entire indici snapshot in nodejs versions. In sources maybe this could be done with
git submodules
but also just an outright copy of specific checkout.What alternatives have you considered?
No response
The text was updated successfully, but these errors were encountered: