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

2024-12-03, Version 22.12.0 'Jod' (LTS) #56040

Open
wants to merge 223 commits into
base: v22.x
Choose a base branch
from

Conversation

nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot nodejs-github-bot commented Nov 27, 2024

2024-12-03, Version 22.12.0 'Jod' (LTS), @ruyadorno

Notable Changes

Unflagged --experimental-require-module

Enables require(esm) by default for Node.js applications.

One caveat to note is that esm modules using top-level await can't be required using require(esm).

Contributed by Joyee Cheung in #55085

Added resizable ArrayBuffer support in Buffer

When a Buffer is created using a resizable ArrayBuffer, the Buffer length will now correctly change as the underlying ArrayBuffer size is changed.

const ab = new ArrayBuffer(10, { maxByteLength: 20 });
const buffer = Buffer.from(ab);
console.log(buffer.byteLength); 10
ab.resize(15);
console.log(buffer.byteLength); 15
ab.resize(5);
console.log(buffer.byteLength); 5

Contributed by James Snell in #55377

Update root certificates to NSS 3.104

This is the version of NSS that shipped in Firefox 131.0 on 2024-10-01.

Certificates added:

  • FIRMAPROFESIONAL CA ROOT-A WEB
  • TWCA CYBER Root CA
  • SecureSign Root CA12
  • SecureSign Root CA14
  • SecureSign Root CA15

Contributed by Richard Lau in #55681

Other Notable Changes

  • [4920869935] - (SEMVER-MINOR) assert: make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862
  • [ccffd3b819] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732
  • [acc6806900] - doc: add jazelly to collaborators (Jason Zhang) #55531
  • [88d91e8bc2] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
  • [98bfc7dce5] - (SEMVER-MINOR) http: add diagnostic channel http.client.request.created (Marco Ippolito) #55586
  • [337f61fb25] - (SEMVER-MINOR) lib: add UV_UDP_REUSEPORT for udp (theanarkh) #55403
  • [1628c48ad6] - (SEMVER-MINOR) net: add UV_TCP_REUSEPORT for tcp (theanarkh) #55408
  • [457e73f4c9] - (SEMVER-MINOR) sqlite: add support for SQLite Session Extension (Bart Louwers) #54181

Commits

  • [f6885e1c68] - assert: fix the string length check for printing the simple diff (Giovanni Bucci) #55474
  • [907484f04d] - assert: fix deepEqual always return true on URL (Xuguang Mei) #50853
  • [301844e249] - assert: differentiate cases where cause is undefined or missing (Antoine du Hamel) #55738
  • [89ccd3e3f4] - assert: fix deepStrictEqual on errors when cause is not undefined (Edigleysson Silva (Edy)) #55406
  • [4920869935] - (SEMVER-MINOR) assert: make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862
  • [c67aec368e] - benchmark: add test-reporters (Aviv Keller) #55757
  • [49774cc2c0] - benchmark: add test_runner/mock-fn (Aviv Keller) #55771
  • [4caaeb47b2] - benchmark: add nodeTiming.uvmetricsinfo bench (RafaelGSS) #55614
  • [cac58564a1] - benchmark: add --runs support to run.js (Rafael Gonzaga) #55158
  • [5c3ee886fc] - benchmark: adjust byte size for buffer-copy (Rafael Gonzaga) #55295
  • [6023e1bdb2] - (SEMVER-MINOR) buffer: make Buffer work with resizable ArrayBuffer (James M Snell) #55377
  • [a6c00c2204] - build: add create release proposal action (Rafael Gonzaga) #55690
  • [b4e413933b] - build: implement node_use_amaro flag in GN build (Cheng) #55798
  • [d1db202d4a] - build: apply cpp linting and formatting to ncrypto (Aviv Keller) #55362
  • [8c670496da] - build: use rclone instead of aws CLI (Michaël Zasso) #55617
  • [827e2065bd] - build: stop pre-compiling lint-md (Aviv Keller) #55266
  • [c3ca978d9c] - build: fix building with system icu 76 (Michael Cho) #55563
  • [23e3287bbe] - build: fix GN arg used in generate_config_gypi.py (Shelley Vohr) #55530
  • [2b561abb0d] - build: fix GN build for sqlite and nghttp2 (Shelley Vohr) #55529
  • [7008f29d79] - build: fix GN build for cares/uv deps (Cheng) #55477
  • [6ee94a394f] - build: fix uninstall script for AIX 7.1 (Cloorc) #55438
  • [edbbd4a374] - build: conditionally compile bundled sqlite (Richard Lau) #55409
  • [3d8e3a657c] - build: tidy up cares.gyp (Richard Lau) #55445
  • [f0c12e8fcb] - build: synchronize list of c-ares source files (Richard Lau) #55445
  • [8daa8a62f8] - build: fix path concatenation (Mohammed Keyvanzadeh) #55387
  • [12faf0466e] - build: fix make errors that occur in Makefile (minkyu_kim) #55287
  • [a21be0294d] - build,win: enable pch for clang-cl (Stefan Stojanovic) #55249
  • [7ed058cd00] - cli: add --heap-prof flag available to NODE_OPTIONS (Juan José) #54259
  • [c26b1bfe6a] - crypto: allow length=0 for HKDF and PBKDF2 in SubtleCrypto.deriveBits (Filip Skokan) #55866
  • [a1201d0392] - crypto: update root certificates to NSS 3.104 (Richard Lau) #55681
  • [20483aab7a] - crypto: fix RSA_PKCS1_PADDING error message (Richard Lau) #55629
  • [d345662d50] - crypto: include openssl/rand.h explicitly (Shelley Vohr) #55425
  • [166ab3209d] - deps: update simdutf to 5.6.1 (Node.js GitHub Bot) #55850
  • [934979e12e] - deps: update undici to 6.21.0 (Node.js GitHub Bot) #55851
  • [af77f66424] - deps: update c-ares to v1.34.3 (Node.js GitHub Bot) #55803
  • [948a88d2f4] - deps: update icu to 76.1 (Node.js GitHub Bot) #55551
  • [fa4c58a983] - deps: update acorn to 8.14.0 (Node.js GitHub Bot) #55699
  • [c91155f22e] - deps: update sqlite to 3.47.0 (Node.js GitHub Bot) #55557
  • [d1cb7af95c] - deps: update amaro to 0.2.0 (Node.js GitHub Bot) #55601
  • [655e5600cb] - deps: update nghttp2 to 1.64.0 (Node.js GitHub Bot) #55559
  • [992450c469] - deps: update acorn to 8.13.0 (Node.js GitHub Bot) #55558
  • [abd2bd4f64] - deps: update undici to 6.20.1 (Node.js GitHub Bot) #55503
  • [7dc2c2edad] - deps: update googletest to df1544b (Node.js GitHub Bot) #55465
  • [fa9329c024] - deps: update c-ares to v1.34.2 (Node.js GitHub Bot) #55463
  • [41a2bcd335] - deps: update ada to 2.9.1 (Node.js GitHub Bot) #54679
  • [a3b793defd] - deps: update simdutf to 5.6.0 (Node.js GitHub Bot) #55379
  • [551b8f897d] - deps: update c-ares to v1.34.1 (Node.js GitHub Bot) #55369
  • [26861eaf4e] - Revert "deps: disable io_uring support in libuv by default" (Santiago Gimeno) #55114
  • [41c50bc15e] - deps: update libuv to 1.49.1 (Santiago Gimeno) #55114
  • [26fcc04084] - deps: update amaro to 0.1.9 (Node.js GitHub Bot) #55348
  • [0ee6715921] - diagnostics_channel: fix unsubscribe during publish (simon-id) #55116
  • [bf68733e7f] - dns: stop using deprecated ares_query (Aviv Keller) #55430
  • [ef6707eb9b] - dns: honor the order option (Luigi Pinca) #55392
  • [0f3810f3e5] - doc: add added tag and fix typo sqlite.md (Bart Louwers) #56012
  • [d1bd0ef1b7] - doc: remove non-working example (Antoine du Hamel) #55856
  • [824ac650ed] - doc: add node:sqlite to mandatory node: prefix list (翠 / green) #55846
  • [b3ea42d887] - doc: add -S flag release preparation example (Antoine du Hamel) #55836
  • [0bd5d8b9d9] - doc: clarify UV_THREADPOOL_SIZE env var usage (Preveen P) #55832
  • [27b0236a99] - doc: add notable-change mention to sec release (Rafael Gonzaga) #55830
  • [476075bada] - doc: fix history info for URL.prototype.toJSON (Antoine du Hamel) #55818
  • [2743b7b1d3] - doc: correct max-semi-space-size statement (Joe Bowbeer) #55812
  • [3013870093] - doc: update unflag info of import.meta.resolve (skyclouds2001) #55810
  • [27bcd103e7] - doc: run license-builder (github-actions[bot]) #55813
  • [72d4b30ead] - doc: clarify triager role (Gireesh Punathil) #55775
  • [a30defe9dd] - doc: clarify removal of experimental API does not require a deprecation (Antoine du Hamel) #55746
  • [ccffd3b819] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732
  • [b6d2a4e816] - doc: add path aliases typescript doc (Carlos Espa) #55766
  • [a435affa11] - doc: add esm example in path.md (Aviv Keller) #55745
  • [91443c2711] - doc: consistent use of word child process (Gireesh Punathil) #55654
  • [83fb0079d4] - doc: clarity to available addon options (Preveen P) #55715
  • [6ca851457a] - doc: update --max-semi-space-size description (Joe Bowbeer) #55495
  • [e17fffc0ff] - doc: broken PerformanceObserver code sample (Dom Harrington) #54227
  • [8bd5777f0f] - doc: add write flag when open file as the demo code's intention (robberfree) #54626
  • [f1e0e0ba55] - doc: remove mention of ECDH-ES in crypto.diffieHellman (Filip Skokan) #55611
  • [1d60b7ec97] - doc: improve c++ embedder API doc (Gireesh Punathil) #55597
  • [bbf51d7000] - doc: capitalize "MIT License" (Aviv Keller) #55575
  • [0e69f6d123] - doc: add suggested tsconfig for type stripping (Marco Ippolito) #55534
  • [67beb37f50] - doc: add esm examples to node:string_decoder (Alfredo González) #55507
  • [acc6806900] - doc: add jazelly to collaborators (Jason Zhang) #55531
  • [a6b3ed54ae] - doc: changed the command used to verify SHASUMS256 (adriancuadrado) #55420
  • [0ad7ca4f1d] - doc: move dual package shipping docs to separate repo (Joyee Cheung) #55444
  • [e99a98ddfd] - doc: add note about stdio streams in child_process (Ederin (Ed) Igharoro) #55322
  • [20302851a9] - doc: add isBigIntObject to documentation (leviscar) #55450
  • [50d983e80b] - doc: remove outdated remarks about highWaterMark in fs (Ian Kerins) #55462
  • [07c2fb2045] - doc: move Danielle Adams key to old gpg keys (RafaelGSS) #55399
  • [41b045170d] - doc: move Bryan English key to old gpg keys (RafaelGSS) #55399
  • [13724dcc20] - doc: move Beth Griggs keys to old gpg keys (RafaelGSS) #55399
  • [0230fb1ead] - doc: spell out condition restrictions (Jan Martin) #55187
  • [66e41f044d] - doc: add instructions for WinGet build (Hüseyin Açacak) #55356
  • [23d89da3f1] - doc: add missing return values in buffer docs (Karl Horky) #55273
  • [6e7b33a0ef] - doc: fix ambasador markdown list (Rafael Gonzaga) #55361
  • [d8c552a060] - doc: edit onboarding guide to clarify when mailmap addition is needed (Antoine du Hamel) #55334
  • [c7f82ec978] - doc: fix the return type of outgoingMessage.setHeaders() (Jimmy Leung) #55290
  • [f1b9791694] - doc: update require(ESM) history and stability status (Antoine du Hamel) #55199
  • [9ffd2dd43b] - doc: consolidate history table of CustomEvent (Edigleysson Silva (Edy)) #55758
  • [64fb9e6516] - doc: add history entries for JSON modules stabilization (Antoine du Hamel) #55855
  • [ae2ae2fef1] - esm: fix import.meta.resolve crash (Marco Ippolito) #55777
  • [15dd43dd6e] - esm: add a fallback when importer in not a file (Antoine du Hamel) #55471
  • [aed758d270] - esm: fix inconsistency with importAssertion in resolve hook (Wei Zhu) #55365
  • [88d91e8bc2] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
  • [a2c8de7fba] - events: add hasEventListener util for validate (Sunghoon) #55230
  • [4f84cdc8a2] - events: optimize EventTarget.addEventListener (Robert Nagy) #55312
  • [c17601557b] - fs: prevent unwanted dependencyOwners removal (Carlos Espa) #55565
  • [4dd609c685] - fs: fix bufferSize option for opendir recursive (Ethan Arrowood) #55744
  • [d695bd4c4f] - fs: pass correct path to DirentFromStats during glob (Aviv Keller) #55071
  • [5357338b8e] - fs: use wstring on Windows paths (jazelly) #55171
  • [0a7f301a36] - http: add diagnostic channel http.server.response.created (Marco Ippolito) #55622
  • [98bfc7dce5] - (SEMVER-MINOR) http: add diagnostic channel http.client.request.created (Marco Ippolito) #55586
  • [d2430ee363] - http2: fix client async storage persistence (Orgad Shaneh) #55460
  • [753cbede2a] - lib: remove startsWith/endsWith primordials for char checks (Gürgün Dayıoğlu) #55407
  • [6e3e99c81e] - lib: prefer logical assignment (Aviv Keller) #55044
  • [03902ebb74] - lib: replace createDeferredPromise util with Promise.withResolvers (Yagiz Nizipli) #54836
  • [ee17fcd6f3] - lib: prefer symbol to number in webidl type function (Antoine du Hamel) #55737
  • [18f0f07e92] - lib: implement webidl dictionary converter and use it in structuredClone (Jason Zhang) #55489
  • [bcead24e24] - lib: prefer number to string in webidl type function (Jason Zhang) #55489
  • [d48c5da039] - lib: convert transfer sequence to array in js (Jason Zhang) #55317
  • [cefce4cbb0] - lib: remove unnecessary optional chaining (Gürgün Dayıoğlu) #55728
  • [f2561fdeec] - lib: use Promise.withResolvers() in timers (Yagiz Nizipli) #55720
  • [337f61fb25] - (SEMVER-MINOR) lib: add UV_UDP_REUSEPORT for udp (theanarkh) #55403
  • [4f89059f63] - lib: add flag to drop connection when running in cluster mode (theanarkh) #54927
  • [29f7325e73] - lib: test_runner#mock:timers respeced timeout_max behaviour (BadKey) #55375
  • [68bcec64b8] - lib: remove settled dependant signals when they are GCed (Edigleysson Silva (Edy)) #55354
  • [3f8a5d8a28] - meta: bump actions/setup-python from 5.2.0 to 5.3.0 (dependabot[bot]) #55688
  • [644ad5d60d] - meta: bump actions/setup-node from 4.0.4 to 4.1.0 (dependabot[bot]) #55687
  • [334fa69c31] - meta: bump rtCamp/action-slack-notify from 2.3.0 to 2.3.2 (dependabot[bot]) #55686
  • [fb3fa8bee2] - meta: bump actions/upload-artifact from 4.4.0 to 4.4.3 (dependabot[bot]) #55685
  • [1aca3a8289] - meta: bump actions/cache from 4.0.2 to 4.1.2 (dependabot[bot]) #55684
  • [a6c73eb9c2] - meta: bump actions/checkout from 4.2.0 to 4.2.2 (dependabot[bot]) #55683
  • [06445bc4e3] - meta: bump github/codeql-action from 3.26.10 to 3.27.0 (dependabot[bot]) #55682
  • [37bafce2d8] - meta: make review-wanted message minimal (Aviv Keller) #55607
  • [4cca54b161] - meta: show PR/issue title on review-wanted (Aviv Keller) #55606
  • [68decbf935] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #55381
  • [07fc40d823] - meta: assign CODEOWNERS for /deps/ncrypto/* (Filip Skokan) #55426
  • [139e8f1579] - meta: change color to blue notify review-wanted (Rafael Gonzaga) #55423
  • [c0614dc92c] - meta: bump codecov/codecov-action from 4.5.0 to 4.6.0 (dependabot[bot]) #55222
  • [47b6c6748b] - meta: bump github/codeql-action from 3.26.6 to 3.26.10 (dependabot[bot]) #55221
  • [6c836aa97e] - meta: bump step-security/harden-runner from 2.9.1 to 2.10.1 (dependabot[bot]) #55220
  • [c81c818a21] - module: throw ERR_NO_TYPESCRIPT when compiled without amaro (Marco Ippolito) #55332
  • [d6d1479fcc] - module: simplify --inspect-brk handling (Joyee Cheung) #55679
  • [91fdec3a52] - module: fix error thrown from require(esm) hitting TLA repeatedly (Joyee Cheung) #55520
  • [cb527a925d] - module: do not warn when require(esm) comes from node_modules (Joyee Cheung) #55960
  • [16119f206f] - module: trim off internal stack frames for require(esm) warnings (Joyee Cheung) #55496
  • [28b5b9a57d] - module: allow ESM that failed to be required to be re-imported (Joyee Cheung) #55502
  • [6ac3400960] - module: include module information in require(esm) warning (Joyee Cheung) #55397
  • [fcdd6167d8] - module: check --experimental-require-module separately from detection (Joyee Cheung) #55250
  • [d8c34ced43] - module: use kNodeModulesRE to detect node_modules (Joyee Cheung) #55243
  • [545c069eb5] - module: support 'module.exports' interop export in require(esm) (Guy Bedford) #54563
  • [58d6871c45] - (SEMVER-MINOR) module: unflag --experimental-require-module (Joyee Cheung) #55085
  • [1628c48ad6] - (SEMVER-MINOR) net: add UV_TCP_REUSEPORT for tcp (theanarkh) #55408
  • [a5590083cd] - node-api: add napi_create_buffer_from_arraybuffer method (Mert Can Altin) #54505
  • [21ec855feb] - os: improve path check with direct index access (Mert Can Altin) #55434
  • [1fdaa15226] - report: fix network queries in getReport libuv with exclude-network (Adrien Foulon) #55602
  • [457e73f4c9] - (SEMVER-MINOR) sqlite: add support for SQLite Session Extension (Bart Louwers) #54181
  • [428701a6d8] - sqlite: improve error handling using MaybeLocal (Tobias Nießen) #55571
  • [4e5878536a] - sqlite: add readOnly option (Tobias Nießen) #55567
  • [8c35ad12de] - sqlite: refactor open options (Tobias Nießen) #55442
  • [c3c403040a] - sqlite: cache column names in stmt.all() (Fedor Indutny) #55373
  • [6858f7a4d3] - src: use env strings to create sqlite results (Michaël Zasso) #55785
  • [db01eaf318] - src: improve node:os userInfo performance (Yagiz Nizipli) #55719
  • [383d28489d] - src: provide workaround for container-overflow (Daniel Lemire) #55591
  • [3477b6b4a5] - src: move more key related stuff to ncrypto (James M Snell) #55368
  • [38c047e38f] - src: refactor ECDHBitsJob signature (Filip Skokan) #55610
  • [acbb62902a] - src: fix dns crash when failed to create NodeAresTask (theanarkh) #55521
  • [547cab9433] - src: use NewFromUtf8Literal in NODE_DEFINE_CONSTANT (Charles Kerr) #55581
  • [231fe7b953] - src: do not run IsWindowsBatchFile on non-windows (Yagiz Nizipli) #55560
  • [bde374ee6a] - src: remove icu based ToASCII and ToUnicode (Yagiz Nizipli) #55156
  • [6ad23e74be] - src: fix winapi_strerror error string (Hüseyin Açacak) #55207
  • [63bc40550b] - src: remove uv__node_patch_is_using_io_uring (Santiago Gimeno) #55114
  • [2af72a7671] - src: implement IsInsideNodeModules() in C++ (Joyee Cheung) #55286
  • [e14fb2defb] - src,lib: optimize nodeTiming.uvMetricsInfo (RafaelGSS) #55614
  • [e14dba3ee5] - src,lib: introduce util.getSystemErrorMessage(err) (Juan José) #54075
  • [8f59c41d52] - stream: propagate AbortSignal reason (Marvin ROGER) #55473
  • [7acb96362c] - test: increase coverage of pathToFileURL (Antoine du Hamel) #55493
  • [5861135ddb] - test: improve test coverage for child process message sending (Juan José) #55710
  • [554d4ace2f] - test: ensure that test priority is not higher than current priority (Livia Medeiros) #55739
  • [b0ce62a9bd] - test: add buffer to fs_permission tests (Rafael Gonzaga) #55734
  • [9d9ad81d54] - test: improve test coverage for ServerResponse (Juan José) #55711
  • [273f84e01c] - test: update performance-timeline wpt (RedYetiDev) #55197
  • [89c9c46185] - test: ignore unrelated events in FW watch tests (Carlos Espa) #55605
  • [fc69080669] - test: refactor some esm tests (Antoine du Hamel) #55472
  • [a80c166733] - test: split up test-runner-mock-timers test (Julian Gassner) #55506
  • [8c2fc11f7c] - test: remove unneeded listeners (Luigi Pinca) #55486
  • [1c5872dbde] - test: avoid apply() calls with large amount of elements (Livia Medeiros) #55501
  • [2194eb4909] - test: increase test coverage for http.OutgoingMessage.appendHeader() (Juan José) #55467
  • [ad7e81379a] - test: make test-node-output-v8-warning more flexible (Shelley Vohr) #55401
  • [6aeeaa719b] - test: fix addons and node-api test assumptions (Antoine du Hamel) #55441
  • [73ab14fd8f] - test: update wpt test for webmessaging/broadcastchannel (devstone) #55205
  • [ded1b68d10] - test: deflake test-cluster-shared-handle-bind-privileged-port (Aviv Keller) #55378
  • [0e873c3031] - test: update console wpt (Aviv Keller) #55192
  • [832300533b] - test: remove duplicate tests (Luigi Pinca) #55393
  • [310a734c1b] - test: update test_util.cc for coverage (minkyu_kim) #55291
  • [254badd480] - test: update compression wpt (Aviv Keller) #55191
  • [c52a808ac9] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #55703
  • [445d117b67] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #55512
  • [cd0d748ede] - test,crypto: make crypto tests work with BoringSSL (Shelley Vohr) #55491
  • [8bac7c27c8] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #55427
  • [363e7d5a76] - test_runner: error on mocking an already mocked date (Aviv Keller) #55858
  • [f41d329e98] - test_runner: add support for scheduler.wait on mock timers (Erick Wendel) #55244
  • [b9200c33ae] - test_runner: require --enable-source-maps for sourcemap coverage (Aviv Keller) #55359
  • [f11d93d8ef] - tools: enforce ordering of error codes in errors.md (Antoine du Hamel) #55324
  • [85ca31a90a] - tools: bump @eslint/plugin-kit from 0.2.0 to 0.2.3 in /tools/eslint (dependabot[bot]) #55875
  • [506aac567b] - tools: fix exclude labels for commit-queue (Richard Lau) #55809
  • [14ffac9995] - tools: make commit-queue check blocked label (Marco Ippolito) #55781
  • [eb22ec87e6] - tools: remove non-existent file from eslint config (Aviv Keller) #55772
  • [5844565fb2] - tools: fix c-ares updater script for Node.js 18 (Richard Lau) #55717
  • [0a79ebd257] - tools: update ESLint to 9.14.0 (dependabot[bot]) #55689
  • [12543d560a] - tools: use util.parseArgs in lint-md (Aviv Keller) #55694
  • [d95aa244c2] - tools: fix root certificate updater (Richard Lau) #55681
  • [3626891f8e] - tools: compact jq output in daily-wpt-fyi.yml action (Filip Skokan) #55695
  • [02c902e68a] - tools: run daily WPT.fyi report on all supported releases (Filip Skokan) #55619
  • [456b02351b] - tools: lint README lists more strictly (Antoine du Hamel) #55625
  • [83a5983c7d] - tools: update lint-md-dependencies (Node.js GitHub Bot) #55470
  • [72b4a8df6a] - tools: update gyp-next to 0.18.3 (Node.js GitHub Bot) #55464
  • [6b6e6a5590] - tools: add script to synch c-ares source lists (Richard Lau) #55445
  • [a6c444291b] - tools: fix typos (Nathan Baulch) #55061
  • [d5e915ba5d] - tools: add polyfilled option to prefer-primordials rule (Antoine du Hamel) #55318
  • [c8e7f767b7] - typings: add missing type of ArrayBufferPrototypeGetByteLength (Wuli Zuo) #55439
  • [6317f77942] - url: refactor pathToFileURL to native (Antoine du Hamel) #55476
  • [5418d40256] - url: handle "unsafe" characters properly in pathToFileURL (Antoine du Hamel) #54545
  • [fce8c32c19] - util: do not mark experimental feature as deprecated (Antoine du Hamel) #55740
  • [940d22ffe1] - (SEMVER-MINOR) util: fix util.getCallSites plurality (Chengzhong Wu) #55626
  • [42ac0c2af3] - util: do not catch on circular @@toStringTag errors (Aviv Keller) #55544

nicolo-ribaudo and others added 30 commits November 16, 2024 17:45
The two proposals reached stage 4 at the October 2024 meeting.

PR-URL: #55333
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #55855
Refs: #55333
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
PR-URL: #55758
Backport-PR-URL: #55805
Fixes: #55733
Refs: #55733
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
This unflags --experimental-require-module so require(esm) can be
used without the flag. For now, when require() actually encounters
an ESM, it will still emit an experimental warning. To opt out
of the feature, --no-experimental-require-module can be used.

There are some tests specifically testing ERR_REQUIRE_ESM. Some
of them are repurposed to test --no-experimental-require-module.
Some of them are modified to just expect loading require(esm) to
work, when it's appropriate.

PR-URL: #55085
Backport-PR-URL: #55217
Refs: #52697
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
PR-URL: #54563
Backport-PR-URL: #55217
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Refs: #52697
PR-URL: #55199
Backport-PR-URL: #55217
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Guy Bedford <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Refs: #52697
This is faster and more consistent with other places using the
regular expression to detect node_modules.

PR-URL: #55243
Backport-PR-URL: #55217
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Refs: #52697
Previously we assumed if `--experimental-detect-module` is true, then
`--experimental-require-module` is true, which isn't the case, as
the two can be enabled/disabled separately. This patch fixes the
checks so `--no-experimental-require-module` is still effective when
`--experimental-detect-module` is enabled.

Drive-by: make the assertion messages more informative and remove
obsolete TODO about allowing TLA in entrypoints handled by
require(esm).

PR-URL: #55250
Backport-PR-URL: #55217
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Refs: #52697
This previously compiles a script and run it in a new context
to avoid global pollution, which is more complex than necessary
and can be too slow for it to be reused in other cases. The
new implementation just checks the frames in C++ which is safe
from global pollution, faster and simpler.

The previous implementation also had a bug when the call site
is in a ESM, because ESM have URLs as their script names,
which don't start with '/' or '\' and will be skipped. The new
implementation removes the skipping to fix it for ESM.

PR-URL: #55286
Backport-PR-URL: #55217
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Refs: #52697
When emitting the experimental warning for `require(esm)`, include
information about the parent module and the module being require()-d
to help users locate and update them.

PR-URL: #55397
Backport-PR-URL: #55217
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Stephen Belanger <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Refs: #52697
When a ESM module cannot be loaded by require due to the presence
of TLA, its module status would be stopped at kInstantiated. In
this case, when it's imported again, we should allow it to be
evaluated asynchronously, as it's also a common pattern for users
to retry with dynamic import when require fails.

PR-URL: #55502
Backport-PR-URL: #55217
Fixes: #55500
Refs: #52697
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
Trim off irrelevant internal stack frames for require(esm) warnings
so it's easier to locate where the call comes from when
--trace-warnings is used.

PR-URL: #55496
Backport-PR-URL: #55217
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Paolo Insogna <[email protected]>
Refs: #52697
As part of the standard experimental feature graduation
policy, when we unflagged require(esm) we moved the
experimental warning to be emitted when require() is
actually used to load ESM, which previously was an error.
However, some packages in the ecosystem have already
being using try-catch to load require(esm) to e.g.
resolve optional dependency, and emitting warning from
there instead of throwing directly could break the CLI
output.

To reduce the disruption for releases, as a compromise, this
patch skips the warning if require(esm) comes from
node_modules, where users typically don't have much control
over the code. This warning will be eventually removed
when require(esm) becomes stable.

This patch was originally intended for the LTS releases,
though it seems there's appetite for it on v23.x as
well so it's re-targeted to the main branch.

PR-URL: #55960
Backport-PR-URL: #55217
Refs: #55217
Refs: #52697
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
PR-URL: #55318
Backport-PR-URL: #55421
Reviewed-By: Michaël Zasso <[email protected]>
Fixes: #55208
PR-URL: #55249
Reviewed-By: Yagiz Nizipli <[email protected]>
The actual implementation returns `outgoingMessage` itself, but not
exactly `http.ServerResponse`.

Refs: https://github.com/nodejs/node/blob/20d8b85d3493bec944de541a896e0165dd356345/lib/_http_outgoing.js#L712-L751
PR-URL: #55290
Reviewed-By: Paolo Insogna <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Qingyu Deng <[email protected]>
PR-URL: #55334
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Jake Yuesong Li <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #54505
Fixes: #54440
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Gabriel Schulhof <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: Vladimir Morozov <[email protected]>
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.9.1 to 2.10.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](step-security/harden-runner@5c7944e...91182cc)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
PR-URL: #55220
Reviewed-By: Luigi Pinca <[email protected]>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.6 to 3.26.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@4dd1613...e2b3eaf)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
PR-URL: #55221
Reviewed-By: Luigi Pinca <[email protected]>
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](codecov/codecov-action@e28ff12...b9fd7d1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
PR-URL: #55222
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #55191
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #55348
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
PR-URL: #55361
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #55273
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
fix make errors that occur in
 coverage-clean case and coverage-test in Makefile

PR-URL: #55287
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
update test_util.cc for code coverage src/util-inl.h:PopFront()

PR-URL: #55291
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
As now the `SQPOLL` ring used in the libuv io_uring implementation is
disabled by default.
Also modify `UvMightBeUsingIoUring()` to just handle the case where
`Node.js` is dynamically linked to a `libuv` version which has the
`SQPOLL` ring enabled.

PR-URL: #55114
Refs: https://github.com/libuv/libuv/releases/tag/v1.49.0
Refs: https://github.com/libuv/libuv/releases/tag/v1.49.1
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
meixg and others added 6 commits November 27, 2024 11:03
PR-URL: #50853
Fixes: #50836
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
PR-URL: #55332
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #55044
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
PR-URL: #55407
Reviewed-By: Jacob Smith <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Mattias Buelens <[email protected]>
Reviewed-By: Ethan Arrowood <[email protected]>
PR-URL: #55474
Reviewed-By: Pietro Marchini <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
PR-URL: #55690
Refs: nodejs/security-wg#860
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: James M Snell <[email protected]>
github-actions bot pushed a commit that referenced this pull request Nov 27, 2024
Notable changes:

assert:
  * (SEMVER-MINOR) make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862
buffer:
  * (SEMVER-MINOR) make Buffer work with resizable ArrayBuffer (James M Snell) #55377
crypto:
  * update root certificates to NSS 3.104 (Richard Lau) #55681
doc:
  * enforce strict policy to semver-major releases (Rafael Gonzaga) #55732
  * add jazelly to collaborators (Jason Zhang) #55531
esm:
  * mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
http:
  * (SEMVER-MINOR) add diagnostic channel `http.client.request.created` (Marco Ippolito) #55586
lib:
  * (SEMVER-MINOR) add UV_UDP_REUSEPORT for udp (theanarkh) #55403
module:
  * (SEMVER-MINOR) unflag --experimental-require-module (Joyee Cheung) #55085
net:
  * (SEMVER-MINOR) add UV_TCP_REUSEPORT for tcp (theanarkh) #55408
sqlite:
  * (SEMVER-MINOR) add support for SQLite Session Extension (Bart Louwers) #54181
tools:
  * fix root certificate updater (Richard Lau) #55681
util:
  * (SEMVER-MINOR) fix util.getCallSites plurality (Chengzhong Wu) #55626

PR-URL: #56040
@nodejs-github-bot
Copy link
Collaborator Author

Review requested:

  • @nodejs/actions
  • @nodejs/security-wg
  • @nodejs/tsc
  • @nodejs/v8-update

@nodejs-github-bot nodejs-github-bot added meta Issues and PRs related to the general management of the project. v22.x v22.x Issues that can be reproduced on v22.x or PRs targeting the v22.x-staging branch. labels Nov 27, 2024
@nodejs-github-bot

This comment was marked as outdated.

@RafaelGSS RafaelGSS added release Issues and PRs related to Node.js releases. and removed meta Issues and PRs related to the general management of the project. labels Nov 27, 2024
@ruyadorno ruyadorno changed the title 2024-12-03, Version 22.12.0 'Jod' (LTS), @nodejs-github-bot 2024-12-03, Version 22.12.0 'Jod' (LTS), @ruyadorno Nov 27, 2024
@ruyadorno ruyadorno changed the title 2024-12-03, Version 22.12.0 'Jod' (LTS), @ruyadorno 2024-12-03, Version 22.12.0 'Jod' (LTS) Nov 27, 2024
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

PR-URL: #56012
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

ruyadorno added a commit that referenced this pull request Nov 28, 2024
Notable changes:

assert:
  * (SEMVER-MINOR) make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862
buffer:
  * (SEMVER-MINOR) make Buffer work with resizable ArrayBuffer (James M Snell) #55377
crypto:
  * update root certificates to NSS 3.104 (Richard Lau) #55681
doc:
  * enforce strict policy to semver-major releases (Rafael Gonzaga) #55732
  * add jazelly to collaborators (Jason Zhang) #55531
esm:
  * mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
http:
  * (SEMVER-MINOR) add diagnostic channel `http.client.request.created` (Marco Ippolito) #55586
lib:
  * (SEMVER-MINOR) add UV_UDP_REUSEPORT for udp (theanarkh) #55403
module:
  * (SEMVER-MINOR) unflag --experimental-require-module (Joyee Cheung) #55085
net:
  * (SEMVER-MINOR) add UV_TCP_REUSEPORT for tcp (theanarkh) #55408
sqlite:
  * (SEMVER-MINOR) add support for SQLite Session Extension (Bart Louwers) #54181
tools:
  * fix root certificate updater (Richard Lau) #55681

PR-URL: #56040
Notable changes:

assert:
  * (SEMVER-MINOR) make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862
buffer:
  * (SEMVER-MINOR) make Buffer work with resizable ArrayBuffer (James M Snell) #55377
crypto:
  * update root certificates to NSS 3.104 (Richard Lau) #55681
doc:
  * enforce strict policy to semver-major releases (Rafael Gonzaga) #55732
  * add jazelly to collaborators (Jason Zhang) #55531
esm:
  * mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
http:
  * (SEMVER-MINOR) add diagnostic channel `http.client.request.created` (Marco Ippolito) #55586
lib:
  * (SEMVER-MINOR) add UV_UDP_REUSEPORT for udp (theanarkh) #55403
module:
  * (SEMVER-MINOR) unflag --experimental-require-module (Joyee Cheung) #55085
net:
  * (SEMVER-MINOR) add UV_TCP_REUSEPORT for tcp (theanarkh) #55408
sqlite:
  * (SEMVER-MINOR) add support for SQLite Session Extension (Bart Louwers) #54181
tools:
  * fix root certificate updater (Richard Lau) #55681

PR-URL: #56040
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Issues and PRs related to Node.js releases. v22.x v22.x Issues that can be reproduced on v22.x or PRs targeting the v22.x-staging branch.
Projects
None yet
Development

Successfully merging this pull request may close these issues.