7e6d92c485
Closes: https://github.com/nodejs/node/issues/52567 PR-URL: https://github.com/nodejs/node/pull/52780 Fixes: https://github.com/nodejs/node/issues/52567 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> |
||
---|---|---|
.. | ||
README.md | ||
update-acorn-walk.sh | ||
update-acorn.sh | ||
update-ada.sh | ||
update-brotli.sh | ||
update-c-ares.sh | ||
update-cjs-module-lexer.sh | ||
update-eslint.sh | ||
update-github-reporter.sh | ||
update-googletest.sh | ||
update-gyp-next.sh | ||
update-histogram.sh | ||
update-icu.sh | ||
update-libuv.sh | ||
update-llhttp.sh | ||
update-minimatch.sh | ||
update-nghttp2.sh | ||
update-nghttp3.sh | ||
update-ngtcp2.sh | ||
update-npm.sh | ||
update-openssl.sh | ||
update-postject.sh | ||
update-root-certs.mjs | ||
update-simdjson.sh | ||
update-simdutf.sh | ||
update-undici.sh | ||
update-uvwasi.sh | ||
update-v8-patch.sh | ||
update-zlib.sh | ||
utils.sh |
Dependency update scripts
This folder contains scripts used to automatically update a Node.js dependency.
These scripts are usually run by CI (see .github/workflows/tools.yml
) in order
to download a new dependency version, and replace the old version with it.
Since these scripts only update to the upstream code, changes might be needed in this repository in order to successfully update (e.g: changing API calls to conform to upstream changes, updating GYP build files, etc.)
libuv
The update-libuv.sh
script takes the target version to update as its only
argument, downloads it from the GitHub repo
and uses it to replace the contents of deps/uv/
. The contents are replaced
entirely except for the *.gyp
and *.gypi
build files, which are part of the
Node.js build definitions and are not present in the upstream repo.
For example, in order to update to version 1.44.2
, the following command can
be run:
./tools/dep_updaters/update-libuv.sh 1.44.2
Once the script has run (either manually, or by CI in which case a PR will have been created with the changes), do the following:
- Check the changelog for things that might require changes in Node.js.
- If necessary, update
common.gypi
anduv.gyp
with build-related changes. - Check that Node.js compiles without errors and the tests pass.
- Create a commit for the update and in the commit message include the
important/relevant items from the changelog (see
c61870c
for an example).
simdutf
The update-simdutf.sh
script takes the target version to update as its only
argument, downloads it from the GitHub repo
and uses it to replace the contents of deps/simdutf/
. The contents are replaced
entirely except for the *.gyp
and *.gypi
build files, which are part of the
Node.js build definitions and are not present in the upstream repo.
For example, in order to update to version 2.0.7
, the following command can
be run:
./tools/dep_updaters/update-simdutf.sh 2.0.7
Once the script has run (either manually, or by CI in which case a PR will have been created with the changes), do the following:
- Check the changelog for things that might require changes in Node.js.
- If necessary, update
simdutf.gyp
with build-related changes. - Check that Node.js compiles without errors and the tests pass.
- Create a commit for the update and in the commit message include the important/relevant items from the changelog.
OpenSSL
The update-openssl.sh
script automates the steps described in
maintaining-openssl.md
. The main difference is that the script downloads
the release tarball from GitHub, instead of cloning the repo and using that as
the source code. This is useful since the release tarball does not include
development-specific files and directories (e.g the .github
folder).
The script has to be run in two steps. The first one (using the download
sub-command) replaces the OpenSSL source code with the new version. The second
one (using the regenerate
sub-command) regenerates the platform-specific
files. This makes it easier to create two separate git commits, making the git
history more descriptive.
For example, in order to update to version 3.0.7+quic1
, the following commands
should be run:
./tools/dep_updaters/update-openssl.sh download 3.0.7+quic1
git add -A deps/openssl/openssl
git commit -m "deps: upgrade openssl sources to quictls/openssl-3.0.7+quic1"
./tools/dep_updaters/update-openssl.sh regenerate 3.0.7+quic1
git add -A deps/openssl/config/archs deps/openssl/openssl
git commit -m "deps: update archs files for openssl"
Once the script has run (either manually, or by CI in which case a PR will have been created with the changes), do the following:
- Check the
CHANGES.md
file in the repo for things that might require changes in Node.js. - Check the diffs to ensure the changes are right. Even if there are no changes
in the source,
buildinf.h
files will be updated because they have timestamp data in them. - Check that Node.js compiles without errors and the tests pass.
- Create a commit for the update and in the commit message include the important/relevant items from the changelog.
postject
The update-postject.sh
script downloads postject from the npm package
and uses it to replace the contents of test/fixtures/postject-copy
.
In order to update, the following command can be run:
./tools/dep_updaters/update-postject.sh
Once the script has run (either manually, or by CI in which case a PR will have been created with the changes), do the following:
- Check the changelog for things that might require changes in Node.js.
- Check that Node.js compiles without errors and the tests pass.
- Create a commit for the update and in the commit message include the important/relevant items from the changelog.