Skip to content
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

2025-01-07, Version 22.13.0 'Jod' (LTS) #56329

Merged
merged 200 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
2e3ca1b
src: add cli option to preserve env vars on dr
RafaelGSS Nov 8, 2024
8cb3c20
doc: sort --report-exclude alphabetically
RafaelGSS Nov 9, 2024
5263086
doc: add report version and history section
legendecas Dec 6, 2024
77e2869
build: use glob for dependencies of out/Makefile
richardlau Nov 10, 2024
2beb4f1
permission: ignore internalModuleStat on module loading
RafaelGSS Nov 11, 2024
1978285
http: don't emit error after destroy
ronag Oct 28, 2024
c842146
doc: add a note on console stream behavior
gireeshpunathil Nov 2, 2024
f4f777f
tools: bump cross-spawn from 7.0.3 to 7.0.5 in /tools/eslint
dependabot[bot] Nov 18, 2024
22d7017
tools: fix riscv64 build failed
luyahan Nov 18, 2024
5bdfde8
doc: add history entry for import assertion removal
aduh95 Nov 18, 2024
1015b22
build: compile bundled ada conditionally
jirutka Nov 16, 2024
826fd35
build: compile bundled simdjson conditionally
jirutka Nov 16, 2024
8d70b99
build: compile bundled simdutf conditionally
jirutka Nov 16, 2024
ccc9b10
deps: update simdutf to 5.6.2
nodejs-github-bot Nov 19, 2024
55239a4
doc,lib,src,test: unflag sqlite module
cjihrig Nov 19, 2024
8ff082c
test_runner: mark snapshot testing as stable
cjihrig Nov 19, 2024
3e6b3a9
doc: include git node release --promote to steps
RafaelGSS Nov 19, 2024
3ba9b57
doc: fix relative path mention in --allow-fs
RafaelGSS Nov 19, 2024
2ca9f4b
src: fix kill signal on Windows
huseyinacacak-janea Nov 20, 2024
97458ad
test: fix determining lower priority
LiviaMedeiros Nov 20, 2024
20be5e2
doc: add esm examples to node:timers
mfdebian Nov 20, 2024
e47ccd2
build: fix GN build for sqlite
zcbenz Nov 21, 2024
d714367
deps: update simdjson to 3.10.1
nodejs-github-bot Nov 21, 2024
0b3ac05
doc: remove RedYetiDev from triagers team
Nov 21, 2024
b4041e5
sqlite: add `StatementSync.prototype.iterate` method
tpoisseau Nov 21, 2024
b296b5a
test: make x509 crypto tests work with BoringSSL
codebytere Nov 22, 2024
7b476f6
tools: add linter for release commit proposals
aduh95 Nov 22, 2024
6e7e9a1
doc: document approach for building wasm in deps
mhdawson Nov 22, 2024
9f48ca2
build: use variable for crypto dep path
codebytere Nov 23, 2024
8c065dc
test_runner: mark context.plan() as stable
cjihrig Nov 19, 2024
352daac
doc: fix typo
himself65 Dec 4, 2024
312bb4d
tools: lint js in `doc/**/*.md`
LiviaMedeiros Nov 20, 2024
12b2ad4
doc: add esm example for zlib
peixotoleonardo Nov 23, 2024
bfe7982
deps: update zlib to 1.3.0.1-motley-7e2e4d7
nodejs-github-bot Aug 18, 2024
9ee9f52
crypto: allow non-multiple of 8 in SubtleCrypto.deriveBits
panva Oct 6, 2024
36080b7
doc: doc how to add message for promotion
mhdawson Nov 13, 2024
6352604
doc: order `node:crypto` APIs alphabetically
badkeyy Nov 23, 2024
05d6227
assert: add partialDeepStrictEqual
puskin94 Nov 23, 2024
ff7b144
test: convert readdir test to use test runner
tchetwin Nov 23, 2024
f61dcc4
deps: upgrade npm to 10.9.1
npm-cli-bot Nov 24, 2024
1a78bde
test: make HTTP/1.0 connection test more robust
FliegendeWurst Nov 24, 2024
bf3967f
test_runner: simplify hook running logic
cjihrig Nov 25, 2024
0571d55
lib: avoid excluding symlinks in recursive fs.readdir with filetypes
juanarbol Nov 25, 2024
18c9496
test_runner: refactor build Promise in Suite()
cjihrig Nov 22, 2024
fb98fa4
test_runner: refactor Promise chain in run()
cjihrig Nov 22, 2024
6190137
tools: use tokenless Codecov uploads
targos Nov 25, 2024
a6ef0f6
doc: add vetted courses to the ambassador benefits
mcollina Nov 25, 2024
e529cf6
doc: add doc for PerformanceObserver.takeRecords()
skyclouds2001 Nov 25, 2024
a4fa31a
assert: optimize partial comparison of two `Set`s
aduh95 Nov 25, 2024
5738107
doc: deprecate passing invalid types in `fs.existsSync`
Ceres6 Nov 25, 2024
43c25e2
quic: multiple updates to quic impl
jasnell Nov 23, 2024
fc36262
deps: update simdutf to 5.6.3
nodejs-github-bot Nov 26, 2024
d98bf0b
deps: update ngtcp2 to 1.9.0
nodejs-github-bot Nov 26, 2024
f61a045
deps: update corepack to 0.30.0
nodejs-github-bot Nov 26, 2024
2616f12
http2: fix memory leak caused by premature listener removing
ywave620 Nov 26, 2024
a8fb1a0
build: set node_arch to target_cpu in GN
codebytere Nov 26, 2024
d894cb7
src: safely remove the last line from dotenv
islandryu Nov 26, 2024
f89bd2b
tools: add WPT updater for specific subsystems
mertcanaltin Nov 26, 2024
1893be4
tools: update WPT updater
aduh95 Nov 26, 2024
ea48918
process: deprecate `features.{ipv6,uv}` and `features.tls_*`
Renegade334 Nov 27, 2024
a933103
cli: implement --trace-env and --trace-env-[js|native]-stack
joyeecheung Nov 27, 2024
474bf80
doc: remove confusing and outdated sentence
lpinca Nov 27, 2024
78b6aef
doc: fix deprecation codes
panva Nov 27, 2024
e239382
doc: improve GN build documentation a bit
codebytere Nov 27, 2024
6d02bd6
doc: add history entry for textEncoder.encodeInto()
lpinca Nov 27, 2024
4bb0f30
doc: move history entry to class description
lpinca Nov 27, 2024
e64cef8
doc: add FAQ to releases section
RafaelGSS Nov 27, 2024
1af3599
tools: filter release keys to reduce interactivity
aduh95 Nov 27, 2024
8efa240
doc: remove unused import from sample code
blended-bram Nov 27, 2024
bb4aa7a
test,crypto: update WebCryptoAPI WPT
panva Nov 28, 2024
3a55bd9
fs: lazily load ReadFileContext
gurgunday Nov 28, 2024
c52bc5d
test: update WPT for url to 67880a4eb83ca9aa732eec4b35a1971ff5bf37ff
nodejs-github-bot Nov 28, 2024
c188660
src: fix check fd
theanarkh Nov 28, 2024
c907b2f
quic: update more QUIC implementation
jasnell Nov 24, 2024
1e628d1
tools: fix nghttp3 updater script
aduh95 Nov 28, 2024
ed635c9
tools: allow dispatch of `tools.yml` from forks
aduh95 Nov 28, 2024
669c722
deps: update zlib to 1.3.0.1-motley-82a5fec
nodejs-github-bot Nov 29, 2024
e6e1495
tools: fix update-undici script
targos Nov 29, 2024
9a60bea
sqlite: deps include `sqlite3ext.h`
himself65 Nov 29, 2024
2e3fdfd
meta: add releasers as CODEOWNERS to proposal action
RafaelGSS Nov 29, 2024
97bb8f7
build: remove defaults for create-release-proposal
RafaelGSS Nov 30, 2024
71f6263
doc: rename file to advocacy-ambassador-program.md
tniessen Nov 30, 2024
211f058
test: move test-worker-arraybuffer-zerofill to parallel
lpinca Dec 1, 2024
e42e4b2
src: avoid copy on getV8FastApiCallCount
anonrig Dec 1, 2024
4559fac
src: remove dead code in async_wrap
Flarna Dec 1, 2024
7ddbf94
dgram: check udp buffer size to avoid fd leak
theanarkh Dec 2, 2024
974b7b6
src: use std::string_view for process emit fns
anonrig Dec 2, 2024
b47888d
net: support blocklist for net.Server
theanarkh Dec 2, 2024
d7eb41b
deps: update sqlite to 3.47.1
nodejs-github-bot Dec 3, 2024
2feb078
doc: add create-release-action to process
RafaelGSS Dec 3, 2024
a32fa30
src: add missing qualifiers to env.cc
anonrig Dec 3, 2024
126ae15
build: allow overriding clang usage
codebytere Dec 3, 2024
5ce020b
src: use spaceship operator in SocketAddress
jasnell Nov 28, 2024
0fba3a3
meta: bump actions/setup-node from 4.0.3 to 4.1.0
dependabot[bot] Dec 3, 2024
8e265de
meta: bump step-security/harden-runner from 2.10.1 to 2.10.2
dependabot[bot] Dec 3, 2024
1529027
meta: bump actions/checkout from 4.1.7 to 4.2.2
dependabot[bot] Dec 3, 2024
843943d
meta: bump github/codeql-action from 3.27.0 to 3.27.5
dependabot[bot] Dec 3, 2024
fe2b344
crypto: ensure CryptoKey usages and algorithm are cached objects
panva Dec 4, 2024
a0b1e8f
test: update WPT for WebCryptoAPI to 76dfa54e5d
nodejs-github-bot Dec 1, 2024
d0302e7
test: update WPT for WebCryptoAPI to 3e3374efde
nodejs-github-bot Dec 2, 2024
ed7eab1
net: add net.BlockList.isBlockList(value)
jasnell Nov 29, 2024
566f0a1
net: add SocketAddress.parse
jasnell Nov 29, 2024
dd14b80
doc: add LJHarb to collaborators
ljharb Dec 4, 2024
e15c5da
test: ensure `cli.md` is in alphabetical order
aduh95 Nov 27, 2024
22b453b
deps: upgrade npm to 10.9.2
npm-cli-bot Dec 5, 2024
28a11ad
module: mark evaluation rejection in require(esm) as handled
joyeecheung Dec 5, 2024
d2007ae
lib: fix `fs.readdir` recursive async
RafaelGSS Dec 5, 2024
12baefb
tools: update `create-release-proposal` workflow
aduh95 Dec 5, 2024
c4a97d8
doc: mention `-a` flag for the release script
ruyadorno Dec 5, 2024
bacfe6d
net: support blocklist in net.connect
theanarkh Dec 6, 2024
ad107ca
test: remove test-fs-utimes flaky designation
lpinca Dec 6, 2024
68dda61
lib: add validation for options in compileFunction
kimtaejin3 Dec 6, 2024
17b6931
deps: update ngtcp2 to 1.9.1
nodejs-github-bot Dec 6, 2024
359fff1
src,build: add no user defined deduction guides of CTAD check
legendecas Dec 6, 2024
bcfe9c8
util: add sourcemap support to getCallSites
marco-ippolito Nov 4, 2024
0794861
module: simplify ts under node_modules check
marco-ippolito Oct 20, 2024
6575b76
module: add module.stripTypeScriptTypes
marco-ippolito Oct 24, 2024
34c6882
doc: move typescript support to active development
marco-ippolito Oct 27, 2024
374eb41
util: add fast path for Latin1 decoding
mertcanaltin Dec 3, 2024
b667cc4
doc: fix module.md headings
legendecas Dec 6, 2024
19c72c4
doc: update blog release-post link
ruyadorno Dec 6, 2024
d352b04
stream: commit pull-into descriptors after filling from queue
MattiasBuelens Nov 27, 2024
381e705
test: update streams wpt
MattiasBuelens Nov 28, 2024
81c94a3
lib: disable default memory leak warning for AbortSignal
phryneas Dec 7, 2024
72e8e06
crypto: graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable
panva Dec 5, 2024
1cfa31f
sea: only assert snapshot main function for main threads
joyeecheung Dec 7, 2024
11144ab
lib: handle Float16Array in node:v8 serdes
bartlomieju Dec 7, 2024
2aa77c8
v8,tools: expose experimental wasm revectorize feature
yolanda15 Dec 7, 2024
a3c8739
lib: clean up persisted signals when they are settled
geeksilva97 Dec 8, 2024
c5b1cf4
tools: improve release proposal PR opening
aduh95 Dec 8, 2024
4c13d8e
assert: make partialDeepStrictEqual work with ArrayBuffers
puskin94 Dec 8, 2024
bd0760e
tools: bump the eslint group in /tools/eslint with 4 updates
dependabot[bot] Dec 9, 2024
a88e4ce
tools: update gyp-next to 0.19.0
nodejs-github-bot Dec 9, 2024
0e24eeb
test: remove `hasOpenSSL3x` utils
aduh95 Dec 9, 2024
d6e1efc
tools: use commit title as PR title when creating release proposal
aduh95 Dec 9, 2024
39ce902
doc: fix c++ addon hello world sample
geeksilva97 Dec 9, 2024
9fa0e41
tools: enable linter for `tools/icu/**`
LiviaMedeiros Dec 9, 2024
02383b4
test: update WPT for url to 6fa3fe8a92
nodejs-github-bot Dec 10, 2024
9f8f3c9
deps: update sqlite to 3.47.2
nodejs-github-bot Dec 10, 2024
598fe04
lib: remove redundant global regexps
gurgunday Dec 10, 2024
0331b3f
fs,win: fix readdir for named pipe
huseyinacacak-janea Dec 10, 2024
bb880dd
doc: fix incorrect link to style guide
technic960183 Dec 10, 2024
a83de32
doc: add ambassador message - benefits of Node.js
mhdawson Nov 29, 2024
4adf518
test: move localizationd data from `test-icu-env` to external file
LiviaMedeiros Dec 10, 2024
8a5429c
module: prevent main thread exiting before esm worker ends
islandryu Dec 10, 2024
5e5b4b0
doc: call out import.meta is only supported in ES modules
antonk52 Dec 11, 2024
9e98e86
util: do not rely on mutable `Object` and `Function`' `constructor` prop
aduh95 Dec 11, 2024
d2f8222
http2: support ALPNCallback option
ZYSzys Dec 11, 2024
bfd11d7
worker: fix crash when a worker joins after exit
Qard Dec 11, 2024
7cbe3de
module: only emit require(esm) warning under --trace-require-module
joyeecheung Dec 9, 2024
e902477
assert: make Maps be partially compared in partialDeepStrictEqual
puskin94 Dec 11, 2024
376561c
build: use variable for simdutf path
codebytere Dec 11, 2024
f5c6955
sqlite: support `db.loadExtension`
himself65 Dec 3, 2024
2889e8d
src: fix outdated js2c.cc references
legendecas Dec 11, 2024
44c4e57
doc: update blog link to /vulnerability
RafaelGSS Dec 11, 2024
7a94100
doc: update announce documentation for releases
RafaelGSS Dec 11, 2024
2e76cd2
tools: fix release proposal linter to support more than 1 folk preparing
aduh95 Dec 12, 2024
ea53c4b
doc: `sea.getRawAsset(key)` always returns an ArrayBuffer
ShenHongFei Dec 12, 2024
57bb983
src,lib: stabilize permission model
RafaelGSS Dec 12, 2024
8494512
http2: remove duplicate codeblock
AVVS Dec 12, 2024
79152b5
http: add setDefaultHeaders option to http.request
pimterry Dec 12, 2024
2268c1e
sqlite: add support for custom functions
cjihrig Dec 12, 2024
98ea499
tools: update gyp-next to 0.19.1
addaleax Dec 10, 2024
27cc90f
build: fix C string encoding for `PRODUCT_DIR_ABS`
addaleax Dec 2, 2024
c5d0472
test: fix test-abortsignal-drop-settled-signals flakiness
geeksilva97 Dec 12, 2024
92bcd52
fs: make mutating `options` in Promises `readdir()` not affect results
LiviaMedeiros Nov 28, 2024
04d7c7a
fs: make mutating `options` in Callback `readdir()` not affect results
LiviaMedeiros Dec 7, 2024
7d8c1e7
doc: add esm examples to node:perf_hooks
mfdebian Dec 12, 2024
9c68d4f
test: remove exludes for sea tests on PPC
mhdawson Dec 12, 2024
3e89384
Revert "tools: disable automated libuv updates"
lpinca Dec 13, 2024
01eb308
report: fix typos in report keys and bump the version
technic960183 Dec 13, 2024
481770a
node-api: allow napi_delete_reference in finalizers
legendecas Dec 13, 2024
7a8071b
doc: add esm examples to node:tls
mfdebian Dec 13, 2024
4e3cab4
tools: use `github.actor` instead of bot username for release proposals
aduh95 Dec 13, 2024
5331df7
doc: fix winget config path
himself65 Dec 13, 2024
a11ac1c
doc: fix 'which' to 'that' and add commas
selveter Dec 14, 2024
8718135
test: use --permission over --experimental-permission
RafaelGSS Dec 14, 2024
4a1b51b
util: fix Latin1 decoding to return string output
mertcanaltin Dec 14, 2024
d6a84cf
doc: add esm examples to node:readline
mfdebian Dec 14, 2024
b1cec2c
doc: add esm examples to node:repl
mfdebian Dec 14, 2024
ba9d539
dgram: support blocklist in udp
theanarkh Dec 15, 2024
5e1321a
buffer: document concat zero-fill
duncpro Dec 15, 2024
9436c3c
doc: clarify util.aborted resource usage
KunalKumar-1 Dec 15, 2024
5c2e061
deps: define V8_PRESERVE_MOST as no-op on Windows
StefanStojanovic Dec 16, 2024
a648e4c
util: harden more built-in classes against prototype pollution
aduh95 Dec 16, 2024
dbb7557
build: add major release action
RafaelGSS Dec 16, 2024
88589b8
deps: update c-ares to v1.34.4
nodejs-github-bot Dec 17, 2024
5306819
tools: add REPLACEME check to workflow
mertcanaltin Dec 17, 2024
eef9bd1
test: remove test-sqlite-statement-sync flaky designation
lpinca Dec 17, 2024
04230be
deps: update libuv to 1.49.2
lpinca Dec 17, 2024
c7ff2ea
deps: update simdutf to 5.6.4
nodejs-github-bot Dec 17, 2024
76f242d
deps: update nghttp3 to 1.6.0
nodejs-github-bot Dec 17, 2024
0b48911
tools: update github_reporter to 1.7.2
nodejs-github-bot Dec 17, 2024
7ae125c
tools: fix `node:` enforcement for docs
aduh95 Dec 17, 2024
97c3835
sqlite: aggregate constants in a single property
geeksilva97 Dec 17, 2024
f6d0c01
doc: stabilize util.styleText
RafaelGSS Dec 17, 2024
38cf37e
build: fix missing fp16 dependency in d8 builds
joyeecheung Dec 17, 2024
be5ba7c
build: set DESTCPU correctly for 'make binary' on loongarch64
wojiushixiaobai Dec 18, 2024
360d68d
doc: fix color contrast issue in light mode
Trott Dec 18, 2024
48726ac
2025-01-07, Version 22.13.0 'Jod' (LTS)
ruyadorno Jan 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@
# Actions

/.github/workflows/* @nodejs/actions
/.github/workflows/create-release-proposal.yml @nodejs/releasers
/tools/actions/* @nodejs/actions

# Test runner
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/coverage-linux-without-intl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ jobs:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
- name: Upload
uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
with:
directory: ./coverage
token: ${{ secrets.CODECOV_TOKEN }}
3 changes: 1 addition & 2 deletions .github/workflows/coverage-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ jobs:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
- name: Upload
uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
with:
directory: ./coverage
token: ${{ secrets.CODECOV_TOKEN }}
3 changes: 1 addition & 2 deletions .github/workflows/coverage-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ jobs:
- name: Clean tmp
run: npx rimraf ./coverage/tmp
- name: Upload
uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0
uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
with:
directory: ./coverage
token: ${{ secrets.CODECOV_TOKEN }}
38 changes: 17 additions & 21 deletions .github/workflows/create-release-proposal.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# This action requires the following secrets to be set on the repository:
# GH_USER_NAME: GitHub user whose Jenkins and GitHub token are defined below
# GH_USER_TOKEN: GitHub user token, to be used by ncu and to push changes
# JENKINS_TOKEN: Jenkins token, to be used to check CI status

name: Create Release Proposal

Expand All @@ -11,12 +9,10 @@ on:
release-line:
required: true
type: number
default: 23
description: 'The release line (without dots or prefix). e.g: 22'
release-date:
required: true
type: string
default: YYYY-MM-DD
description: The release date in YYYY-MM-DD format

concurrency: ${{ github.workflow }}
Expand All @@ -26,6 +22,7 @@ env:

permissions:
contents: write
pull-requests: write

jobs:
releasePrepare:
Expand All @@ -36,16 +33,14 @@ jobs:
RELEASE_LINE: ${{ inputs.release-line }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ env.STAGING_BRANCH }}
# Needs the whole git history for ncu to work
# See https://github.com/nodejs/node-core-utils/pull/486
fetch-depth: 0
persist-credentials: false

# Install dependencies
- name: Install Node.js
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: ${{ env.NODE_VERSION }}

Expand All @@ -56,31 +51,32 @@ jobs:
run: |
ncu-config set branch "${RELEASE_BRANCH}"
ncu-config set upstream origin
ncu-config set username "$USERNAME"
ncu-config set username "$GITHUB_ACTOR"
ncu-config set token "$GH_TOKEN"
ncu-config set jenkins_token "$JENKINS_TOKEN"
ncu-config set repo "$(echo "$GITHUB_REPOSITORY" | cut -d/ -f2)"
ncu-config set owner "${GITHUB_REPOSITORY_OWNER}"
env:
USERNAME: ${{ secrets.JENKINS_USER }}
GH_TOKEN: ${{ secrets.GH_USER_TOKEN }}
JENKINS_TOKEN: ${{ secrets.JENKINS_TOKEN }}
GH_TOKEN: ${{ github.token }}

- name: Set up ghauth config (Ubuntu)
run: |
mkdir -p ~/.config/changelog-maker/
echo '{
"user": "'$(ncu-config get username)'",
"token": "'$(ncu-config get token)'"
}' > ~/.config/changelog-maker/config.json
mkdir -p "${XDG_CONFIG_HOME:-~/.config}/changelog-maker"
echo '{}' | jq '{user: env.GITHUB_ACTOR, token: env.TOKEN}' > "${XDG_CONFIG_HOME:-~/.config}/changelog-maker/config.json"
env:
TOKEN: ${{ github.token }}

- name: Setup git author
run: |
git config --local user.email "[email protected]"
git config --local user.name "Node.js GitHub Bot"

- name: Start git node release prepare
# The curl command is to make sure we run the version of the script corresponding to the current workflow.
run: |
./tools/actions/create-release.sh "${RELEASE_DATE}" "${RELEASE_LINE}"
git update-index --assume-unchanged tools/actions/create-release.sh
curl -fsSLo tools/actions/create-release.sh https://github.com/${GITHUB_REPOSITORY}/raw/${GITHUB_SHA}/tools/actions/create-release.sh
./tools/actions/create-release.sh "${RELEASE_DATE}" "${RELEASE_LINE}" "${GITHUB_ACTOR}"
env:
GH_TOKEN: ${{ secrets.GH_USER_TOKEN }}
GH_TOKEN: ${{ github.token }}
# We want the bot to push the push the release commit so CI runs on it.
BOT_TOKEN: ${{ secrets.GH_USER_TOKEN }}
62 changes: 62 additions & 0 deletions .github/workflows/lint-release-proposal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Linters (release proposals)

on:
push:
branches:
- v[0-9]+.[0-9]+.[0-9]+-proposal

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

env:
PYTHON_VERSION: '3.12'
NODE_VERSION: lts/*

permissions:
contents: read

jobs:
lint-release-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Lint release commit title format
run: |
EXPECTED_TITLE='^[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}, Version [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+ (\(Current|'.+' \(LTS)\)$'
echo "Expected commit title format: $EXPECTED_TITLE"
COMMIT_SUBJECT="$(git --no-pager log -1 --format=%s)"
echo "Actual: $ACTUAL"
echo "$COMMIT_SUBJECT" | grep -q -E "$EXPECTED_TITLE"
echo "COMMIT_SUBJECT=$COMMIT_SUBJECT" >> "$GITHUB_ENV"
- name: Lint release commit message trailers
run: |
EXPECTED_TRAILER="^PR-URL: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pull/[[:digit:]]+\$"
echo "Expected trailer format: $EXPECTED_TRAILER"
ACTUAL="$(git --no-pager log -1 --format=%b | git interpret-trailers --parse --no-divider)"
echo "Actual: $ACTUAL"
echo "$ACTUAL" | grep -E -q "$EXPECTED_TRAILER"

PR_URL="${ACTUAL:8}"
PR_HEAD="$(gh pr view "$PR_URL" --json headRefOid -q .headRefOid)"
echo "Head of $PR_URL: $PR_HEAD"
echo "Current commit: $GITHUB_SHA"
[ "$PR_HEAD" = "$GITHUB_SHA" ]
env:
GH_TOKEN: ${{ github.token }}
- name: Validate CHANGELOG
id: releaser-info
run: |
EXPECTED_CHANGELOG_TITLE_INTRO="## $COMMIT_SUBJECT, @"
echo "Expected CHANGELOG section title: $EXPECTED_CHANGELOG_TITLE_INTRO"
CHANGELOG_TITLE="$(grep "$EXPECTED_CHANGELOG_TITLE_INTRO" "doc/changelogs/CHANGELOG_V${COMMIT_SUBJECT:20:2}.md")"
echo "Actual: $CHANGELOG_TITLE"
[ "${CHANGELOG_TITLE%%@*}@" = "$EXPECTED_CHANGELOG_TITLE_INTRO" ]
- name: Verify NODE_VERSION_IS_RELEASE bit is correctly set
run: |
grep -q '^#define NODE_VERSION_IS_RELEASE 1$' src/node_version.h
- name: Check for placeholders in documentation
run: |
! grep "REPLACEME" doc/api/*.md
48 changes: 48 additions & 0 deletions .github/workflows/major-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Major Release

on:
schedule:
- cron: 0 0 15 2,8 * # runs at midnight UTC every 15 February and 15 August

permissions:
contents: read

jobs:
create-issue:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Check for release schedule
id: check-date
run: |
# Get the current month and day
MONTH=$(date +'%m')
DAY=$(date +'%d')
# We'll create the reminder issue two months prior the release
if [[ "$MONTH" == "02" || "$MONTH" == "08" ]] && [[ "$DAY" == "15" ]]; then
echo "create_issue=true" >> "$GITHUB_ENV"
fi
- name: Retrieve next major release info from nodejs/Release
if: env.create_issue == 'true'
run: |
curl -L https://github.com/nodejs/Release/raw/HEAD/schedule.json | \
jq -r 'to_entries | map(select(.value.start | strptime("%Y-%m-%d") | mktime > now)) | first | "VERSION=" + .key + "\nRELEASE_DATE=" + .value.start' >> "$GITHUB_ENV"
- name: Compute max date for landing semver-major PRs
if: env.create_issue == 'true'
run: |
echo "PR_MAX_DATE=$(date -d "$RELEASE_DATE -1 month" +%Y-%m-%d)" >> "$GITHUB_ENV"
- name: Create release announcement issue
if: env.create_issue == 'true'
run: |
gh issue create --repo "${GITHUB_REPOSITORY}" \
--title "Upcoming Node.js Major Release ($VERSION)" \
--body-file -<<EOF
A reminder that the next Node.js **SemVer Major release** is scheduled for **${RELEASE_DATE}**.
All commits that were landed until **${PR_MAX_DATE}** (one month prior to the release) will be included in the next semver major release. Please ensure that any necessary preparations are made in advance.
For more details on the release process, consult the [Node.js Release Working Group repository](https://github.com/nodejs/release).

cc: @nodejs/collaborators
EOF
env:
GH_TOKEN: ${{ github.token }}
4 changes: 2 additions & 2 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2
with:
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs

Expand Down Expand Up @@ -73,6 +73,6 @@ jobs:

# Upload the results to GitHub's code scanning dashboard.
- name: Upload to code-scanning
uses: github/codeql-action/upload-sarif@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0
uses: github/codeql-action/upload-sarif@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
with:
sarif_file: results.sarif
23 changes: 10 additions & 13 deletions .github/workflows/tools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ on:
- gyp-next
- histogram
- icu
# - libuv
- libuv
- llhttp
- minimatch
- nbytes
Expand All @@ -51,7 +51,7 @@ permissions:

jobs:
tools-deps-update:
if: github.repository == 'nodejs/node'
if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
strategy:
fail-fast: false # Prevent other jobs from aborting if one fails
Expand Down Expand Up @@ -175,17 +175,14 @@ jobs:
cat temp-output
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
rm temp-output
# libuv update was disabled because of Feb 14, 2024 security release
# modified the bundled version of libuv, we cannot automatically update
# libuv without potentially undoing those changes.
# - id: libuv
# subsystem: deps
# label: dependencies
# run: |
# ./tools/dep_updaters/update-libuv.sh > temp-output
# cat temp-output
# tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
# rm temp-output
- id: libuv
subsystem: deps
label: dependencies
run: |
./tools/dep_updaters/update-libuv.sh > temp-output
cat temp-output
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
rm temp-output
- id: llhttp
subsystem: deps
label: dependencies
Expand Down
83 changes: 83 additions & 0 deletions .github/workflows/update-wpt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: WPT update

on:
schedule:
# Run once a week at 12:00 AM UTC on Sunday.
- cron: 0 0 * * *
workflow_dispatch:
inputs:
subsystems:
description: Subsystem to run the update for
required: false
default: '["url", "WebCryptoAPI"]'

permissions:
contents: read

env:
NODE_VERSION: lts/*

jobs:
wpt-subsystem-update:
if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
subsystem: ${{ fromJSON(github.event.inputs.subsystems || '["url", "WebCryptoAPI"]') }}

steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false

- name: Install Node.js
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: ${{ env.NODE_VERSION }}

- name: Install @node-core/utils
run: npm install -g @node-core/utils

- name: Setup @node-core/utils
run: |
ncu-config set username "$USERNAME"
ncu-config set token "$GH_TOKEN"
ncu-config set owner "${GITHUB_REPOSITORY_OWNER}"
ncu-config set repo "$(echo "$GITHUB_REPOSITORY" | cut -d/ -f2)"
env:
USERNAME: ${{ secrets.JENKINS_USER }}
GH_TOKEN: ${{ secrets.GH_USER_TOKEN }}

- name: Update WPT for subsystem ${{ matrix.subsystem }}
run: |
git node wpt "$SUBSYSTEM"
env:
SUBSYSTEM: ${{ matrix.subsystem }}

- name: Retrieve new version commit
run: |
new_version="$(
node -p 'require("./test/fixtures/wpt/versions.json")[process.argv[1]].commit' "$SUBSYSTEM"
)"
{
echo "long_version=$new_version"
echo "short_version=${new_version:0:10}"
} >> "$GITHUB_ENV"
env:
SUBSYSTEM: ${{ matrix.subsystem }}

- name: Open or update PR for the subsystem update
uses: gr2m/create-or-update-pull-request-action@77596e3166f328b24613f7082ab30bf2d93079d5
with:
branch: actions/update-wpt-${{ matrix.subsystem }}
author: Node.js GitHub Bot <[email protected]>
title: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.short_version }}'
commit-message: 'test: update WPT for ${{ matrix.subsystem }} to ${{ env.short_version }}'
labels: test
update-pull-request-title-and-body: true
body: >
This is an automated update of the WPT for ${{ matrix.subsystem }} to
https://github.com/web-platform-tests/wpt/commit/${{ env.long_version }}.
env:
GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }}
2 changes: 1 addition & 1 deletion BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -686,7 +686,7 @@ easily. These files will install the following
To install Node.js prerequisites from Powershell Terminal:

```powershell
winget configure .\configuration.dsc.yaml
winget configure .\configurations\configuration.dsc.yaml
```

Alternatively, you can use [Dev Home](https://learn.microsoft.com/en-us/windows/dev-home/)
Expand Down
Loading
Loading