github nodejs/node v20.18.3
2025-02-10, Version 20.18.3 'Iron' (LTS), @marco-ippolito

latest release: v22.14.0
one day ago

Notable Changes

  • [030f155986] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
  • [b9b006331f] - doc: add LJHarb to collaborators (Jordan Harband) #56132
  • [39b89e90b4] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732
  • [247fa1959f] - crypto: update root certificates to NSS 3.104 (Richard Lau) #55681
  • [adfc2f993a] - tools: fix root certificate updater (Richard Lau) #55681
  • [29862ae105] - doc: add jazelly to collaborators (Jason Zhang) #55531

Commits

  • [b4f5da18a5] - benchmark: add test-reporters (Aviv Keller) #55757
  • [407992e272] - benchmark: add test_runner/mock-fn (Aviv Keller) #55771
  • [17abec4367] - benchmark: add nodeTiming.uvmetricsinfo bench (RafaelGSS) #55614
  • [43f7050338] - benchmark: add --runs support to run.js (Rafael Gonzaga) #55158
  • [470789a981] - benchmark: adjust byte size for buffer-copy (Rafael Gonzaga) #55295
  • [ea1c97ac16] - buffer: document concat zero-fill (Duncan) #55562
  • [ae683a9e1f] - build: set DESTCPU correctly for 'make binary' on loongarch64 (吴小白) #56271
  • [af020edf96] - build: fix missing fp16 dependency in d8 builds (Joyee Cheung) #56266
  • [d6a1b74404] - build: add major release action (Rafael Gonzaga) #56199
  • [bc92a96a5a] - build: allow overriding clang usage (Shelley Vohr) #56016
  • [f370ec0989] - build: remove defaults for create-release-proposal (Rafael Gonzaga) #56042
  • [25e1862e87] - build: set node_arch to target_cpu in GN (Shelley Vohr) #55967
  • [55c205e5f6] - build: add create release proposal action (Rafael Gonzaga) #55690
  • [9f14ba808d] - build: implement node_use_amaro flag in GN build (Cheng) #55798
  • [046430c47e] - build: fix building with system icu 76 (Michael Cho) #55563
  • [0b6d62c812] - build: fix GN arg used in generate_config_gypi.py (Shelley Vohr) #55530
  • [8f9c642369] - build: fix GN build for cares/uv deps (Cheng) #55477
  • [284e932326] - build: fix uninstall script for AIX 7.1 (Cloorc) #55438
  • [2f71f168ef] - build: tidy up cares.gyp (Richard Lau) #55445
  • [e89e807522] - build: synchronize list of c-ares source files (Richard Lau) #55445
  • [5eb6c94851] - build: fix path concatenation (Mohammed Keyvanzadeh) #55387
  • [720d23f3ac] - build: fix make errors that occur in Makefile (minkyu_kim) #55287
  • [dc552c6739] - build,win: enable pch for clang-cl (Stefan Stojanovic) #55249
  • [64b140d484] - cli: add --heap-prof flag available to NODE_OPTIONS (Juan José) #54259
  • [23fb644037] - crypto: ensure CryptoKey usages and algorithm are cached objects (Filip Skokan) #56108
  • [247fa1959f] - crypto: update root certificates to NSS 3.104 (Richard Lau) #55681
  • [3c4262a171] - deps: V8: cherry-pick 26fd1dfa9cd6 (Shu-yu Guo) #55961
  • [558e6588a4] - deps: V8: backport ae5a4db8ad86 (Shu-yu Guo) #55961
  • [169bc58447] - deps: update simdutf to 5.6.4 (Node.js GitHub Bot) #56255
  • [bc7bb1e269] - deps: update c-ares to v1.34.4 (Node.js GitHub Bot) #56256
  • [782bb6cac4] - deps: update zlib to 1.3.0.1-motley-82a5fec (Node.js GitHub Bot) #55980
  • [f7131cf178] - deps: update corepack to 0.30.0 (Node.js GitHub Bot) #55977
  • [b09f6abcd3] - deps: update simdutf to 5.6.3 (Node.js GitHub Bot) #55973
  • [d63ccb60ea] - deps: update zlib to 1.3.0.1-motley-7e2e4d7 (Node.js GitHub Bot) #54432
  • [a2f315ef8b] - deps: update simdutf to 5.6.2 (Node.js GitHub Bot) #55889
  • [afed723b6c] - deps: update simdutf to 5.6.1 (Node.js GitHub Bot) #55850
  • [753c3b322f] - deps: update c-ares to v1.34.3 (Node.js GitHub Bot) #55803
  • [4f89af8a6f] - deps: update acorn to 8.14.0 (Node.js GitHub Bot) #55699
  • [07359ec14f] - deps: update acorn to 8.13.0 (Node.js GitHub Bot) #55558
  • [c6236571fc] - deps: update googletest to df1544b (Node.js GitHub Bot) #55465
  • [f63413c6f3] - deps: update c-ares to v1.34.2 (Node.js GitHub Bot) #55463
  • [ad725c766d] - deps: update ada to 2.9.1 (Node.js GitHub Bot) #54679
  • [33367cbd62] - deps: update simdutf to 5.6.0 (Node.js GitHub Bot) #55379
  • [f2a55d9d2d] - deps: update c-ares to v1.34.1 (Node.js GitHub Bot) #55369
  • [1d14886266] - dgram: check udp buffer size to avoid fd leak (theanarkh) #56084
  • [de265b9558] - diagnostics_channel: fix unsubscribe during publish (simon-id) #55116
  • [22e0d17097] - dns: stop using deprecated ares_query (Aviv Keller) #55430
  • [44f3b23749] - dns: honor the order option (Luigi Pinca) #55392
  • [f78508cd30] - doc: add history info for Permission Model (Antoine du Hamel) #56707
  • [f07be5e3cd] - doc: add note for features using InternalWorker with permission model (Antoine du Hamel) #56706
  • [618e005672] - doc: add history entries for JSON modules stabilization (Antoine du Hamel) #55855
  • [f89f4ff856] - doc: fix color contrast issue in light mode (Rich Trott) #56272
  • [a51ef9d829] - doc: clarify util.aborted resource usage (Kunal Kumar) #55780
  • [2d88c4b425] - doc: add esm examples to node:repl (Alfredo González) #55432
  • [722dada673] - doc: add esm examples to node:readline (Alfredo González) #55335
  • [090c7a3b01] - doc: fix 'which' to 'that' and add commas (Selveter Senitro) #56216
  • [ae3f6fbe59] - doc: sea.getRawAsset(key) always returns an ArrayBuffer (沈鸿飞) #56206
  • [d103917d92] - doc: update announce documentation for releases (Rafael Gonzaga) #56200
  • [80e5bb87c4] - doc: update blog link to /vulnerability (Rafael Gonzaga) #56198
  • [b739c2a926] - doc: call out import.meta is only supported in ES modules (Anton Kastritskii) #56186
  • [bbd0222a10] - doc: add ambassador message - benefits of Node.js (Michael Dawson) #56085
  • [0e9abf2754] - doc: fix incorrect link to style guide (Yuan-Ming Hsu) #56181
  • [1dbc7e87d7] - doc: fix c++ addon hello world sample (Edigleysson Silva (Edy)) #56172
  • [026f0198c8] - doc: update blog release-post link (Ruy Adorno) #56123
  • [c2fa359f7a] - doc: mention -a flag for the release script (Ruy Adorno) #56124
  • [b9b006331f] - doc: add LJHarb to collaborators (Jordan Harband) #56132
  • [7a1365ba62] - doc: add create-release-action to process (Rafael Gonzaga) #55993
  • [51262ec84e] - doc: rename file to advocacy-ambassador-program.md (Tobias Nießen) #56046
  • [6fc7328831] - doc: remove unused import from sample code (Blended Bram) #55570
  • [9f3ef4a434] - doc: add FAQ to releases section (Rafael Gonzaga) #55992
  • [1dcf8dfedb] - doc: move history entry to class description (Luigi Pinca) #55991
  • [e016f68c73] - doc: add history entry for textEncoder.encodeInto() (Luigi Pinca) #55990
  • [1b31638262] - doc: improve GN build documentation a bit (Shelley Vohr) #55968
  • [d25bcfd0b2] - doc: remove confusing and outdated sentence (Luigi Pinca) #55988
  • [65c1784337] - doc: add doc for PerformanceObserver.takeRecords() (skyclouds2001) #55786
  • [682ae41f86] - doc: add vetted courses to the ambassador benefits (Matteo Collina) #55934
  • [9b6cc54b50] - doc: doc how to add message for promotion (Michael Dawson) #55843
  • [db5378c8b9] - doc: add esm example for zlib (Leonardo Peixoto) #55946
  • [58a6fbb9cf] - doc: document approach for building wasm in deps (Michael Dawson) #55940
  • [41e3bcd752] - doc: add esm examples to node:timers (Alfredo González) #55857
  • [61de8f9b04] - doc: include git node release --promote to steps (Rafael Gonzaga) #55835
  • [559a0bfa2e] - doc: add a note on console stream behavior (Gireesh Punathil) #55616
  • [3d11a85fe5] - doc: add -S flag release preparation example (Antoine du Hamel) #55836
  • [955690e6cf] - doc: clarify UV_THREADPOOL_SIZE env var usage (Preveen P) #55832
  • [d6738e919a] - doc: add notable-change mention to sec release (Rafael Gonzaga) #55830
  • [79876f0dfd] - doc: fix history info for URL.prototype.toJSON (Antoine du Hamel) #55818
  • [c14776fbaa] - doc: correct max-semi-space-size statement (Joe Bowbeer) #55812
  • [83b415e8f3] - doc: run license-builder (github-actions[bot]) #55813
  • [07f53b1d75] - doc: clarify triager role (Gireesh Punathil) #55775
  • [2abfdefcf3] - doc: clarify removal of experimental API does not require a deprecation (Antoine du Hamel) #55746
  • [39b89e90b4] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732
  • [d0417eaec9] - doc: add esm example in path.md (Aviv Keller) #55745
  • [032ff07a2d] - doc: consistent use of word child process (Gireesh Punathil) #55654
  • [16eef6461e] - doc: clarity to available addon options (Preveen P) #55715
  • [a7ce82e3cc] - doc: update --max-semi-space-size description (Joe Bowbeer) #55495
  • [1bb461e2b6] - doc: add write flag when open file as the demo code's intention (robberfree) #54626
  • [8cd619f8d7] - doc: remove mention of ECDH-ES in crypto.diffieHellman (Filip Skokan) #55611
  • [4576d14d0f] - doc: improve c++ embedder API doc (Gireesh Punathil) #55597
  • [12bd57fbaa] - doc: capitalize "MIT License" (Aviv Keller) #55575
  • [362b01b275] - doc: add esm examples to node:string_decoder (Alfredo González) #55507
  • [29862ae105] - doc: add jazelly to collaborators (Jason Zhang) #55531
  • [c1b63e5e6b] - doc: changed the command used to verify SHASUMS256 (adriancuadrado) #55420
  • [9db657532b] - doc: add note about stdio streams in child_process (Ederin (Ed) Igharoro) #55322
  • [475e478713] - doc: add isBigIntObject to documentation (leviscar) #55450
  • [0487e70475] - doc: remove outdated remarks about highWaterMark in fs (Ian Kerins) #55462
  • [e9a8feb44a] - doc: move Danielle Adams key to old gpg keys (RafaelGSS) #55399
  • [bfbe651626] - doc: move Bryan English key to old gpg keys (RafaelGSS) #55399
  • [c1cab9b4d7] - doc: move Beth Griggs keys to old gpg keys (RafaelGSS) #55399
  • [85d8eb397c] - doc: spell out condition restrictions (Jan Martin) #55187
  • [de8de542b5] - doc: add missing return values in buffer docs (Karl Horky) #55273
  • [a5df7087fd] - doc: fix ambasador markdown list (Rafael Gonzaga) #55361
  • [fbfcb0cc08] - doc: edit onboarding guide to clarify when mailmap addition is needed (Antoine du Hamel) #55334
  • [e70abce96a] - doc: fix the return type of outgoingMessage.setHeaders() (Jimmy Leung) #55290
  • [030f155986] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
  • [86cb697b81] - esm: add a fallback when importer in not a file (Antoine du Hamel) #55471
  • [8c8de30680] - esm: fix inconsistency with importAssertion in resolve hook (Wei Zhu) #55365
  • [a41b0e1247] - events: optimize EventTarget.addEventListener (Robert Nagy) #55312
  • [2c6dcf7209] - fs: make mutating options in Promises readdir() not affect results (LiviaMedeiros) #56057
  • [9317feb829] - fs: lazily load ReadFileContext (Gürgün Dayıoğlu) #55998
  • [739ee18430] - http2: support ALPNCallback option (ZYSzys) #56187
  • [7ba6dcf180] - http2: fix memory leak caused by premature listener removing (ywave620) #55966
  • [4c15bd44a0] - http2: fix client async storage persistence (Orgad Shaneh) #55460
  • [ac57dadd9a] - lib: add validation for options in compileFunction (Taejin Kim) #56023
  • [a5b0d8900a] - lib: remove startsWith/endsWith primordials for char checks (Gürgün Dayıoğlu) #55407
  • [f10857828f] - lib: test_runner#mock:timers respeced timeout_max behaviour (BadKey) #55375
  • [1a193bf256] - meta: bump github/codeql-action from 3.27.0 to 3.27.5 (dependabot[bot]) #56103
  • [23f319803d] - meta: bump actions/checkout from 4.1.7 to 4.2.2 (dependabot[bot]) #56102
  • [a953301a1c] - meta: bump step-security/harden-runner from 2.10.1 to 2.10.2 (dependabot[bot]) #56101
  • [c58065ae77] - meta: bump actions/setup-node from 4.0.3 to 4.1.0 (dependabot[bot]) #56100
  • [12b0cecc20] - meta: add releasers as CODEOWNERS to proposal action (Rafael Gonzaga) #56043
  • [070aa9d6a5] - meta: bump actions/setup-python from 5.2.0 to 5.3.0 (dependabot[bot]) #55688
  • [7a46ffd18a] - meta: bump actions/setup-node from 4.0.4 to 4.1.0 (dependabot[bot]) #55687
  • [8b4f2e0c6a] - meta: bump rtCamp/action-slack-notify from 2.3.0 to 2.3.2 (dependabot[bot]) #55686
  • [024c5b2ab3] - meta: bump actions/upload-artifact from 4.4.0 to 4.4.3 (dependabot[bot]) #55685
  • [3d06971a15] - meta: bump actions/cache from 4.0.2 to 4.1.2 (dependabot[bot]) #55684
  • [c33de63a86] - meta: bump actions/checkout from 4.2.0 to 4.2.2 (dependabot[bot]) #55683
  • [ccc1ea0576] - meta: bump github/codeql-action from 3.26.10 to 3.27.0 (dependabot[bot]) #55682
  • [9c2d0fd242] - meta: make review-wanted message minimal (Aviv Keller) #55607
  • [0c14cae2b2] - meta: show PR/issue title on review-wanted (Aviv Keller) #55606
  • [aeae7e1e6f] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #55381
  • [6d7b78c3d8] - meta: change color to blue notify review-wanted (Rafael Gonzaga) #55423
  • [7441e289db] - meta: bump codecov/codecov-action from 4.5.0 to 4.6.0 (dependabot[bot]) #55222
  • [158c8ad77c] - meta: bump github/codeql-action from 3.26.6 to 3.26.10 (dependabot[bot]) #55221
  • [8d3d4a9fab] - meta: bump step-security/harden-runner from 2.9.1 to 2.10.1 (dependabot[bot]) #55220
  • [6797a35a5b] - module: prevent main thread exiting before esm worker ends (Shima Ryuhei) #56183
  • [bd99bf109f] - node-api: allow napi_delete_reference in finalizers (Chengzhong Wu) #55620
  • [6308c18dbb] - report: fix network queries in getReport libuv with exclude-network (Adrien Foulon) #55602
  • [ff2eec7275] - sea: only assert snapshot main function for main threads (Joyee Cheung) #56120
  • [f9f3003de7] - src: fix outdated js2c.cc references (Chengzhong Wu) #56133
  • [a882536596] - src: fix kill signal on Windows (Hüseyin Açacak) #55514
  • [df1002438a] - src: improve node:os userInfo performance (Yagiz Nizipli) #55719
  • [f17416ec3e] - src: fix dns crash when failed to create NodeAresTask (theanarkh) #55521
  • [8d5b8c31d8] - src: use NewFromUtf8Literal in NODE_DEFINE_CONSTANT (Charles Kerr) #55581
  • [0977bb6c1d] - src: remove icu based ToASCII and ToUnicode (Yagiz Nizipli) #55156
  • [72817072e2] - src: fix winapi_strerror error string (Hüseyin Açacak) #55207
  • [6f47f53f90] - src,lib: optimize nodeTiming.uvMetricsInfo (RafaelGSS) #55614
  • [ac583d4549] - stream: propagate AbortSignal reason (Marvin ROGER) #55473
  • [1c8b474319] - test: skip test-buffer-tostring-range on smartos (Marco Ippolito) #56727
  • [39d608f9d8] - test: mark test-http-server-request-timeouts-mixed as flaky (Joyee Cheung) #56503
  • [5c3f18be04] - test: temporary remove resource check from fs read-write (Rafael Gonzaga) #56789
  • [4196aaf033] - test: remove exludes for sea tests on PPC (Michael Dawson) #56217
  • [3ea738fc26] - test: remove hasOpenSSL3x utils (Antoine du Hamel) #56164
  • [21e21a270e] - test: remove test-fs-utimes flaky designation (Luigi Pinca) #56052
  • [e464c6f7a5] - test: move test-worker-arraybuffer-zerofill to parallel (Luigi Pinca) #56053
  • [e99584cd57] - test: make HTTP/1.0 connection test more robust (Arne Keller) #55959
  • [2d03f87ef7] - test: convert readdir test to use test runner (Thomas Chetwin) #55750
  • [207562fa3d] - test: make x509 crypto tests work with BoringSSL (Shelley Vohr) #55927
  • [a17d9e1acf] - test: fix determining lower priority (Livia Medeiros) #55908
  • [50b6729d8c] - test: increase coverage of pathToFileURL (Antoine du Hamel) #55493
  • [0aa9e74027] - test: improve test coverage for child process message sending (Juan José) #55710
  • [ebdbbc3ec8] - test: ensure that test priority is not higher than current priority (Livia Medeiros) #55739
  • [b40789e085] - test: add buffer to fs_permission tests (Rafael Gonzaga) #55734
  • [a9998799be] - test: improve test coverage for ServerResponse (Juan José) #55711
  • [d2421f3c92] - test: ignore unrelated events in FW watch tests (Carlos Espa) #55605
  • [0ac0afc4a9] - test: refactor some esm tests (Antoine du Hamel) #55472
  • [0f8b8269d1] - test: split up test-runner-mock-timers test (Julian Gassner) #55506
  • [8f6462f40b] - test: avoid apply() calls with large amount of elements (Livia Medeiros) #55501
  • [e9b0ff482b] - test: increase test coverage for http.OutgoingMessage.appendHeader() (Juan José) #55467
  • [d5ad060073] - test: fix addons and node-api test assumptions (Antoine du Hamel) #55441
  • [a28376bb85] - test: deflake test-cluster-shared-handle-bind-privileged-port (Aviv Keller) #55378
  • [22c07867d1] - test: remove duplicate tests (Luigi Pinca) #55393
  • [5489656b35] - test: update test_util.cc for coverage (minkyu_kim) #55291
  • [ceafb3250d] - test,crypto: make crypto tests work with BoringSSL (Shelley Vohr) #55491
  • [7021b3b276] - test_runner: simplify hook running logic (Colin Ihrig) #55963
  • [d9fd632f56] - test_runner: error on mocking an already mocked date (Aviv Keller) #55858
  • [3fcca16374] - test_runner: add support for scheduler.wait on mock timers (Erick Wendel) #55244
  • [f67147ec47] - tools: update github_reporter to 1.7.2 (Node.js GitHub Bot) #56205
  • [5c819f1043] - tools: add REPLACEME check to workflow (Mert Can Altin) #56251
  • [b24a85b00b] - tools: use github.actor instead of bot username for release proposals (Antoine du Hamel) #56232
  • [33cd7d3d8c] - tools: fix release proposal linter to support more than 1 folk preparing (Antoine du Hamel) #56203
  • [10d55e3d73] - tools: use commit title as PR title when creating release proposal (Antoine du Hamel) #56165
  • [b3d40e3be5] - tools: improve release proposal PR opening (Antoine du Hamel) #56161
  • [13455ca9ce] - tools: update create-release-proposal workflow (Antoine du Hamel) #56054
  • [851a3d7d8d] - tools: fix update-undici script (Michaël Zasso) #56069
  • [e1635fbd4e] - tools: allow dispatch of tools.yml from forks (Antoine du Hamel) #56008
  • [5f15d8b3f5] - tools: fix nghttp3 updater script (Antoine du Hamel) #56007
  • [bbf39b8c46] - tools: filter release keys to reduce interactivity (Antoine du Hamel) #55950
  • [954e60b87d] - tools: update WPT updater (Antoine du Hamel) #56003
  • [1e09d258da] - tools: add WPT updater for specific subsystems (Mert Can Altin) #54460
  • [b95c4f5bf0] - tools: use tokenless Codecov uploads (Michaël Zasso) #55943
  • [6327554706] - tools: add linter for release commit proposals (Antoine du Hamel) #55923
  • [aad478e58d] - tools: fix exclude labels for commit-queue (Richard Lau) #55809
  • [1c8c881aef] - tools: make commit-queue check blocked label (Marco Ippolito) #55781
  • [c3913f9c87] - tools: fix c-ares updater script for Node.js 18 (Richard Lau) #55717
  • [adfc2f993a] - tools: fix root certificate updater (Richard Lau) #55681
  • [d336f8de15] - tools: compact jq output in daily-wpt-fyi.yml action (Filip Skokan) #55695
  • [cdb7839a0c] - tools: run daily WPT.fyi report on all supported releases (Filip Skokan) #55619
  • [274d0b4062] - tools: update lint-md-dependencies (Node.js GitHub Bot) #55470
  • [3dceeb8b15] - tools: add script to synch c-ares source lists (Richard Lau) #55445
  • [bd0ec907da] - url: handle "unsafe" characters properly in pathToFileURL (Antoine du Hamel) #54545
  • [83137bceb6] - util: fix Latin1 decoding to return string output (Mert Can Altin) #56222
  • [195cc42935] - util: do not rely on mutable Object and Function' constructor prop (Antoine du Hamel) #56188
  • [cca7c518de] - util: add fast path for Latin1 decoding (Mert Can Altin) #55275
  • [7ed346d8fd] - util: do not catch on circular @@toStringTag errors (Aviv Keller) #55544
  • [aa031b3eec] - worker: fix crash when a worker joins after exit (Stephen Belanger) #56191

Don't miss a new node release

NewReleases is sending notifications on new releases.