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

Open
wants to merge 202 commits into
base: v22.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
807f34f
module: add `findPackageJSON` util
JakobJingleheimer Oct 25, 2024
4f85047
module: simplify `findPackageJSON` implementation
aduh95 Nov 2, 2024
0aee9af
src: add cli option to preserve env vars on dr
RafaelGSS Nov 8, 2024
803cc3b
doc: sort --report-exclude alphabetically
RafaelGSS Nov 9, 2024
ba63702
doc: add report version and history section
legendecas Dec 6, 2024
5e4cdd1
build: use glob for dependencies of out/Makefile
richardlau Nov 10, 2024
aa6b0e8
permission: ignore internalModuleStat on module loading
RafaelGSS Nov 11, 2024
025f057
http: don't emit error after destroy
ronag Oct 28, 2024
b6bef39
doc: add a note on console stream behavior
gireeshpunathil Nov 2, 2024
5826993
tools: bump cross-spawn from 7.0.3 to 7.0.5 in /tools/eslint
dependabot[bot] Nov 18, 2024
d9284ac
tools: fix riscv64 build failed
luyahan Nov 18, 2024
8f91622
doc: add history entry for import assertion removal
aduh95 Nov 18, 2024
50faa64
build: compile bundled ada conditionally
jirutka Nov 16, 2024
e309310
build: compile bundled simdjson conditionally
jirutka Nov 16, 2024
f557c0e
build: compile bundled simdutf conditionally
jirutka Nov 16, 2024
0bd1d3f
deps: update simdutf to 5.6.2
nodejs-github-bot Nov 19, 2024
695f582
doc,lib,src,test: unflag sqlite module
cjihrig Nov 19, 2024
618d451
test_runner: mark snapshot testing as stable
cjihrig Nov 19, 2024
478fe36
doc: include git node release --promote to steps
RafaelGSS Nov 19, 2024
02d4504
doc: fix relative path mention in --allow-fs
RafaelGSS Nov 19, 2024
bdae1b2
src: fix kill signal on Windows
huseyinacacak-janea Nov 20, 2024
12ebb56
test: fix determining lower priority
LiviaMedeiros Nov 20, 2024
41e5cab
doc: add esm examples to node:timers
mfdebian Nov 20, 2024
d3b6510
build: fix GN build for sqlite
zcbenz Nov 21, 2024
4b96875
deps: update simdjson to 3.10.1
nodejs-github-bot Nov 21, 2024
6db9d0d
doc: remove RedYetiDev from triagers team
Nov 21, 2024
30628eb
sqlite: add `StatementSync.prototype.iterate` method
tpoisseau Nov 21, 2024
2f3298a
test: make x509 crypto tests work with BoringSSL
codebytere Nov 22, 2024
267c8f8
tools: add linter for release commit proposals
aduh95 Nov 22, 2024
123aae0
doc: document approach for building wasm in deps
mhdawson Nov 22, 2024
0a819a6
build: use variable for crypto dep path
codebytere Nov 23, 2024
802601c
test_runner: mark context.plan() as stable
cjihrig Nov 19, 2024
64fdfa9
doc: fix typo
himself65 Dec 4, 2024
94105c0
tools: lint js in `doc/**/*.md`
LiviaMedeiros Nov 20, 2024
a83378b
doc: add esm example for zlib
peixotoleonardo Nov 23, 2024
fac2b7f
deps: update zlib to 1.3.0.1-motley-7e2e4d7
nodejs-github-bot Aug 18, 2024
bee73f9
crypto: allow non-multiple of 8 in SubtleCrypto.deriveBits
panva Oct 6, 2024
7859172
doc: doc how to add message for promotion
mhdawson Nov 13, 2024
15b0ffb
doc: order `node:crypto` APIs alphabetically
badkeyy Nov 23, 2024
a35ce92
assert: add partialDeepStrictEqual
puskin94 Nov 23, 2024
d1b7404
test: convert readdir test to use test runner
tchetwin Nov 23, 2024
bf78498
deps: upgrade npm to 10.9.1
npm-cli-bot Nov 24, 2024
3c1b0dc
test: make HTTP/1.0 connection test more robust
FliegendeWurst Nov 24, 2024
7608306
test_runner: simplify hook running logic
cjihrig Nov 25, 2024
0e36fd9
lib: avoid excluding symlinks in recursive fs.readdir with filetypes
juanarbol Nov 25, 2024
09234cc
test_runner: refactor build Promise in Suite()
cjihrig Nov 22, 2024
14c35bb
test_runner: refactor Promise chain in run()
cjihrig Nov 22, 2024
ad2060f
tools: use tokenless Codecov uploads
targos Nov 25, 2024
5808a07
doc: add vetted courses to the ambassador benefits
mcollina Nov 25, 2024
b5181ed
doc: add doc for PerformanceObserver.takeRecords()
skyclouds2001 Nov 25, 2024
2117a70
assert: optimize partial comparison of two `Set`s
aduh95 Nov 25, 2024
42ce29c
doc: deprecate passing invalid types in `fs.existsSync`
Ceres6 Nov 25, 2024
9a6a51c
quic: multiple updates to quic impl
jasnell Nov 23, 2024
7a6b6ab
deps: update simdutf to 5.6.3
nodejs-github-bot Nov 26, 2024
935b105
deps: update ngtcp2 to 1.9.0
nodejs-github-bot Nov 26, 2024
ab693c3
deps: update corepack to 0.30.0
nodejs-github-bot Nov 26, 2024
930e26b
http2: fix memory leak caused by premature listener removing
ywave620 Nov 26, 2024
216a785
build: set node_arch to target_cpu in GN
codebytere Nov 26, 2024
009bf6f
src: safely remove the last line from dotenv
islandryu Nov 26, 2024
9f59af9
tools: add WPT updater for specific subsystems
mertcanaltin Nov 26, 2024
03118a7
tools: update WPT updater
aduh95 Nov 26, 2024
ca41743
process: deprecate `features.{ipv6,uv}` and `features.tls_*`
Renegade334 Nov 27, 2024
91b6cbc
cli: implement --trace-env and --trace-env-[js|native]-stack
joyeecheung Nov 27, 2024
717531d
doc: remove confusing and outdated sentence
lpinca Nov 27, 2024
109cb12
doc: fix deprecation codes
panva Nov 27, 2024
20e62e3
doc: improve GN build documentation a bit
codebytere Nov 27, 2024
3558a19
doc: add history entry for textEncoder.encodeInto()
lpinca Nov 27, 2024
2e6306a
doc: move history entry to class description
lpinca Nov 27, 2024
2762c52
doc: add FAQ to releases section
RafaelGSS Nov 27, 2024
51b29cc
tools: filter release keys to reduce interactivity
aduh95 Nov 27, 2024
495a624
doc: remove unused import from sample code
blended-bram Nov 27, 2024
8807e55
test,crypto: update WebCryptoAPI WPT
panva Nov 28, 2024
900edd8
fs: lazily load ReadFileContext
gurgunday Nov 28, 2024
afc7fb3
test: update WPT for url to 67880a4eb83ca9aa732eec4b35a1971ff5bf37ff
nodejs-github-bot Nov 28, 2024
b5ddedb
src: fix check fd
theanarkh Nov 28, 2024
cfcce15
quic: update more QUIC implementation
jasnell Nov 24, 2024
9812e90
tools: fix nghttp3 updater script
aduh95 Nov 28, 2024
beb0ba4
tools: allow dispatch of `tools.yml` from forks
aduh95 Nov 28, 2024
b6ca859
deps: update zlib to 1.3.0.1-motley-82a5fec
nodejs-github-bot Nov 29, 2024
3195af2
tools: fix update-undici script
targos Nov 29, 2024
535317e
sqlite: deps include `sqlite3ext.h`
himself65 Nov 29, 2024
ca41980
meta: add releasers as CODEOWNERS to proposal action
RafaelGSS Nov 29, 2024
6ff4043
build: remove defaults for create-release-proposal
RafaelGSS Nov 30, 2024
b8ce636
doc: rename file to advocacy-ambassador-program.md
tniessen Nov 30, 2024
f4615da
test: move test-worker-arraybuffer-zerofill to parallel
lpinca Dec 1, 2024
f759aa4
src: avoid copy on getV8FastApiCallCount
anonrig Dec 1, 2024
4f4756e
src: remove dead code in async_wrap
Flarna Dec 1, 2024
76ba37f
dgram: check udp buffer size to avoid fd leak
theanarkh Dec 2, 2024
ab35059
src: use std::string_view for process emit fns
anonrig Dec 2, 2024
5f80f99
net: support blocklist for net.Server
theanarkh Dec 2, 2024
8f98c5f
deps: update sqlite to 3.47.1
nodejs-github-bot Dec 3, 2024
5100350
doc: add create-release-action to process
RafaelGSS Dec 3, 2024
21704d0
src: add missing qualifiers to env.cc
anonrig Dec 3, 2024
cf8a2d9
build: allow overriding clang usage
codebytere Dec 3, 2024
a37d759
src: use spaceship operator in SocketAddress
jasnell Nov 28, 2024
f38f18d
meta: bump actions/setup-node from 4.0.3 to 4.1.0
dependabot[bot] Dec 3, 2024
d411a1e
meta: bump step-security/harden-runner from 2.10.1 to 2.10.2
dependabot[bot] Dec 3, 2024
809d1a1
meta: bump actions/checkout from 4.1.7 to 4.2.2
dependabot[bot] Dec 3, 2024
b99b779
meta: bump github/codeql-action from 3.27.0 to 3.27.5
dependabot[bot] Dec 3, 2024
4f0b456
crypto: ensure CryptoKey usages and algorithm are cached objects
panva Dec 4, 2024
6effe48
test: update WPT for WebCryptoAPI to 76dfa54e5d
nodejs-github-bot Dec 1, 2024
f97ecef
test: update WPT for WebCryptoAPI to 3e3374efde
nodejs-github-bot Dec 2, 2024
92a6c56
net: add net.BlockList.isBlockList(value)
jasnell Nov 29, 2024
a0a5fe8
net: add SocketAddress.parse
jasnell Nov 29, 2024
e8f5a5d
doc: add LJHarb to collaborators
ljharb Dec 4, 2024
c794234
test: ensure `cli.md` is in alphabetical order
aduh95 Nov 27, 2024
7073e97
deps: upgrade npm to 10.9.2
npm-cli-bot Dec 5, 2024
e8ca171
module: mark evaluation rejection in require(esm) as handled
joyeecheung Dec 5, 2024
1d6cbc1
lib: fix `fs.readdir` recursive async
RafaelGSS Dec 5, 2024
eab17d4
tools: update `create-release-proposal` workflow
aduh95 Dec 5, 2024
624568b
doc: mention `-a` flag for the release script
ruyadorno Dec 5, 2024
26e7612
net: support blocklist in net.connect
theanarkh Dec 6, 2024
9852480
test: remove test-fs-utimes flaky designation
lpinca Dec 6, 2024
31e5037
lib: add validation for options in compileFunction
kimtaejin3 Dec 6, 2024
fc0e238
deps: update ngtcp2 to 1.9.1
nodejs-github-bot Dec 6, 2024
0b1b6fd
src,build: add no user defined deduction guides of CTAD check
legendecas Dec 6, 2024
5d92a5f
util: add sourcemap support to getCallSites
marco-ippolito Nov 4, 2024
420d599
module: simplify ts under node_modules check
marco-ippolito Oct 20, 2024
7ed5aad
module: add module.stripTypeScriptTypes
marco-ippolito Oct 24, 2024
016d609
doc: move typescript support to active development
marco-ippolito Oct 27, 2024
99eddec
util: add fast path for Latin1 decoding
mertcanaltin Dec 3, 2024
6101383
doc: fix module.md headings
legendecas Dec 6, 2024
bda545d
doc: update blog release-post link
ruyadorno Dec 6, 2024
1691e62
stream: commit pull-into descriptors after filling from queue
MattiasBuelens Nov 27, 2024
b6d8925
test: update streams wpt
MattiasBuelens Nov 28, 2024
2146841
lib: disable default memory leak warning for AbortSignal
phryneas Dec 7, 2024
6630ccc
crypto: graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable
panva Dec 5, 2024
d1809c0
sea: only assert snapshot main function for main threads
joyeecheung Dec 7, 2024
9ef8d38
lib: handle Float16Array in node:v8 serdes
bartlomieju Dec 7, 2024
3920a5c
v8,tools: expose experimental wasm revectorize feature
yolanda15 Dec 7, 2024
9d515f3
lib: clean up persisted signals when they are settled
geeksilva97 Dec 8, 2024
cc861ad
tools: improve release proposal PR opening
aduh95 Dec 8, 2024
e7b9e19
assert: make partialDeepStrictEqual work with ArrayBuffers
puskin94 Dec 8, 2024
35feb6c
tools: bump the eslint group in /tools/eslint with 4 updates
dependabot[bot] Dec 9, 2024
f7e9bbb
tools: update gyp-next to 0.19.0
nodejs-github-bot Dec 9, 2024
e241de3
test: remove `hasOpenSSL3x` utils
aduh95 Dec 9, 2024
379fc40
tools: use commit title as PR title when creating release proposal
aduh95 Dec 9, 2024
f699375
doc: fix c++ addon hello world sample
geeksilva97 Dec 9, 2024
4e5e356
tools: enable linter for `tools/icu/**`
LiviaMedeiros Dec 9, 2024
668f6a9
test: update WPT for url to 6fa3fe8a92
nodejs-github-bot Dec 10, 2024
2f594ca
deps: update sqlite to 3.47.2
nodejs-github-bot Dec 10, 2024
72db184
lib: remove redundant global regexps
gurgunday Dec 10, 2024
437021d
fs,win: fix readdir for named pipe
huseyinacacak-janea Dec 10, 2024
ed29f0a
doc: fix incorrect link to style guide
technic960183 Dec 10, 2024
aac85eb
doc: add ambassador message - benefits of Node.js
mhdawson Nov 29, 2024
ad4275b
test: move localizationd data from `test-icu-env` to external file
LiviaMedeiros Dec 10, 2024
f99075a
module: prevent main thread exiting before esm worker ends
islandryu Dec 10, 2024
16b1ad8
doc: call out import.meta is only supported in ES modules
antonk52 Dec 11, 2024
c365263
util: do not rely on mutable `Object` and `Function`' `constructor` prop
aduh95 Dec 11, 2024
18fb548
http2: support ALPNCallback option
ZYSzys Dec 11, 2024
1d865b2
worker: fix crash when a worker joins after exit
Qard Dec 11, 2024
0a21f30
module: only emit require(esm) warning under --trace-require-module
joyeecheung Dec 9, 2024
088d985
assert: make Maps be partially compared in partialDeepStrictEqual
puskin94 Dec 11, 2024
e470079
build: use variable for simdutf path
codebytere Dec 11, 2024
2f2316a
sqlite: support `db.loadExtension`
himself65 Dec 3, 2024
06ad4ac
src: fix outdated js2c.cc references
legendecas Dec 11, 2024
80fa854
doc: update blog link to /vulnerability
RafaelGSS Dec 11, 2024
632171a
doc: update announce documentation for releases
RafaelGSS Dec 11, 2024
94a6564
tools: fix release proposal linter to support more than 1 folk preparing
aduh95 Dec 12, 2024
e90fbaf
doc: `sea.getRawAsset(key)` always returns an ArrayBuffer
ShenHongFei Dec 12, 2024
428a9d8
src,lib: stabilize permission model
RafaelGSS Dec 12, 2024
1b35f72
http2: remove duplicate codeblock
AVVS Dec 12, 2024
53e0c59
http: add setDefaultHeaders option to http.request
pimterry Dec 12, 2024
86e4b1c
sqlite: add support for custom functions
cjihrig Dec 12, 2024
a5fa657
tools: update gyp-next to 0.19.1
addaleax Dec 10, 2024
626959a
build: fix C string encoding for `PRODUCT_DIR_ABS`
addaleax Dec 2, 2024
3fc6e2e
test: fix test-abortsignal-drop-settled-signals flakiness
geeksilva97 Dec 12, 2024
6450560
fs: make mutating `options` in Promises `readdir()` not affect results
LiviaMedeiros Nov 28, 2024
9364d7b
fs: make mutating `options` in Callback `readdir()` not affect results
LiviaMedeiros Dec 7, 2024
dacf91f
doc: add esm examples to node:perf_hooks
mfdebian Dec 12, 2024
43fa7ef
test: remove exludes for sea tests on PPC
mhdawson Dec 12, 2024
b404399
Revert "tools: disable automated libuv updates"
lpinca Dec 13, 2024
2d06c8b
report: fix typos in report keys and bump the version
technic960183 Dec 13, 2024
3742b75
node-api: allow napi_delete_reference in finalizers
legendecas Dec 13, 2024
eafbb9f
doc: add esm examples to node:tls
mfdebian Dec 13, 2024
cdb15d9
tools: use `github.actor` instead of bot username for release proposals
aduh95 Dec 13, 2024
94a7282
doc: fix winget config path
himself65 Dec 13, 2024
e910c39
doc: fix 'which' to 'that' and add commas
selveter Dec 14, 2024
6a12323
test: use --permission over --experimental-permission
RafaelGSS Dec 14, 2024
597a78e
util: fix Latin1 decoding to return string output
mertcanaltin Dec 14, 2024
4676607
doc: add esm examples to node:readline
mfdebian Dec 14, 2024
28d3ce3
doc: add esm examples to node:repl
mfdebian Dec 14, 2024
2c406a5
dgram: support blocklist in udp
theanarkh Dec 15, 2024
f5c2f67
buffer: document concat zero-fill
duncpro Dec 15, 2024
d48c57f
doc: clarify util.aborted resource usage
KunalKumar-1 Dec 15, 2024
929df7d
deps: define V8_PRESERVE_MOST as no-op on Windows
StefanStojanovic Dec 16, 2024
fbc2830
util: harden more built-in classes against prototype pollution
aduh95 Dec 16, 2024
db9a3b2
build: add major release action
RafaelGSS Dec 16, 2024
591bf96
deps: update c-ares to v1.34.4
nodejs-github-bot Dec 17, 2024
0b317c9
tools: add REPLACEME check to workflow
mertcanaltin Dec 17, 2024
3fec5e3
test: remove test-sqlite-statement-sync flaky designation
lpinca Dec 17, 2024
f327d47
deps: update libuv to 1.49.2
lpinca Dec 17, 2024
8fb515e
deps: update simdutf to 5.6.4
nodejs-github-bot Dec 17, 2024
ff8852d
deps: update nghttp3 to 1.6.0
nodejs-github-bot Dec 17, 2024
318bab4
tools: update github_reporter to 1.7.2
nodejs-github-bot Dec 17, 2024
a5702a0
tools: fix `node:` enforcement for docs
aduh95 Dec 17, 2024
d4aabcf
sqlite: aggregate constants in a single property
geeksilva97 Dec 17, 2024
753829f
doc: stabilize util.styleText
RafaelGSS Dec 17, 2024
7621805
build: fix missing fp16 dependency in d8 builds
joyeecheung Dec 17, 2024
fe468a6
build: set DESTCPU correctly for 'make binary' on loongarch64
wojiushixiaobai Dec 18, 2024
c1b78da
doc: fix color contrast issue in light mode
Trott Dec 18, 2024
7d849ab
2025-01-07, Version 22.13.0 'Jod' (LTS)
ruyadorno Dec 21, 2024
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
Validating CODEOWNERS rules …
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