Notable Changes
Updated npm to 9.2.0
Based on the list of guidelines we’ve established on integrating
1 | npm |
and
1 | node |
,
here is a grouped list of the breaking changes with the reasoning as to why they
fit within the guidelines linked above. Note that all the breaking changes were
made in 9.0.0.
All subsequent minor and patch releases after
1 | npm@9.0.0 |
do not contain any
breaking changes.
Engines
Explanation: the node engines supported by
1 npm@9make it safe to allow
1 npm@9as the default in any LTS version of
1 14or
1 16, as well as anything later than or including
1 18.0.0
-
1npm
is now compatible with the following semver range for node:
1^14.17.0 || ^16.13.0 || >=18.0.0
Filesystem
Explanation: when run as root previous versions of npm attempted to manage file ownership automatically on the user’s behalf. this behavior was problematic in many cases and has been removed in favor of allowing users to manage their own filesystem permissions
-
1npm
will no longer attempt to modify ownership of files it creates.
Auth
Explanation: any errors thrown from users having unsupported auth configurations will show
1 npm config fixin the remediation instructions, which will allow the user to automatically have their auth config fixed.
- The presence of auth related settings that are not scoped to a specific
registry found in a config file is no longer supported and will throw errors.
Login
Explanation: the default
1 auth-typehas changed and users can opt back into the old behavior with
1 npm config set auth-type=legacy.
1 loginand
1 adduserhave also been seperated making each command more closely match it’s name instead of being aliases for each other.
- Legacy auth types
1sso
,
1saml&
1legacyhave been consolidated into
1"legacy".
-
1auth-type
defaults to
1"web" -
1login
and
1adduserare now separate commands that send different data to the registry.
-
1auth-type
config values
1weband
1legacyonly try their respective methods,
npm no longer tries them all and waits to see which one doesn’t fail.
Tarball Packing
Explanation: previously using multiple ignore/allow lists when packing was an undefined behavior, and now the order of operations is strictly defined when packing a tarball making it easier to follow and should only affect users relying on the previously undefined behavior.
-
1npm pack
now follows a strict order of operations when applying ignore rules.
If a1filesarray is present in the
1package.json, then rules in
1.gitignoreand
1.npmignorefiles from the root will be ignored.
Display/Debug/Timing Info
Explanation: these changes center around the display of information to the terminal including timing and debug log info. We do not anticipate these changes breaking any existing workflows.
- Links generated from git urls will now use
1HEAD
instead of
1masteras the default ref.
-
1timing
has been removed as a value for
1--loglevel.
-
1--timing
will show timing information regardless of
1--loglevel, except when
1--silent.
- When run with the
1--timing
flag,
1npmnow writes timing data to a file
alongside the debug log data, respecting the1logs-diroption and falling
back to1<CACHE>/_logs/dir, instead of directly inside the cache directory.
- The timing file data is no longer newline delimited JSON, and instead each run
will create a uniquely named1<ID>-timing.jsonfile, with the
1<ID>portion
being the same as the debug log. -
1npm
now outputs some json errors on stdout. Previously
1npmwould output
all json formatted errors on stderr, making it difficult to parse as the
stderr stream usually has logs already written to it.
Config/Command Deprecations or Removals
Explanation:
1 install-linksis the only config or command in the list that has an effect on package installs. We fixed a number of issues that came up during prereleases with this change. It will also only be applied to new package trees created without a package-lock.json file. Any install with an existing lock file will not be changed.
- Deprecate boolean install flags in favor of
1--install-strategy
.
-
1npm config set
will no longer accept deprecated or invalid config options.
-
1install-links
config defaults to
1"true".
-
1node-version
config has been removed.
-
1npm-version
config has been removed.
-
1npm access
subcommands have been renamed.
-
1npm birthday
has been removed.
-
1npm set-script
has been removed.
-
1npm bin
has been removed (use
1npxor
1npm execto execute binaries).
Other notable changes
- [
] – build: disable v8 snapshot compression by default (Joyee Cheung) #45716103db415540
- [
] – doc: add doc-only deprecation for headers/trailers setters (Rich Trott) #4569719f51b9e50d
- [
] – doc: add Rafael Gonzaga to the TSC (Michael Dawson) #456911b010820c4e
- [
] – (SEMVER-MINOR) net: add autoSelectFamily and autoSelectFamilyAttemptTimeout options (Paolo Insogna) #447311b8b13dccd9
- [
] – (SEMVER-MINOR) src: add uvwasi version (Jithil P Ponnan) #4563915d7cd363ab
- [
] – (SEMVER-MINOR) test_runner: add t.after() hook (Colin Ihrig) #4579214165dcddf0
- [
] – (SEMVER-MINOR) test_runner: don’t use a symbol for runHook() (Colin Ihrig) #457921d1bd7796ad
- [
] – tls: remove trustcor root ca certificates (Ben Noordhuis) #457761691f58e76c
Commits
- [
] – benchmark: add variety of inputs to text-encoder (Yagiz Nizipli) #457871382efdf460
- [
] – benchmark: make benchmarks runnable in older versions of Node.js (Joyee Cheung) #457461102c2dc071
- [
] – bootstrap: lazy load non-essential modules (Joyee Cheung) #456591e2caf7ced9
- [
] – buffer: remove unnecessary lazy loading (Antoine du Hamel) #45807149840d443c
- [
] – buffer: make decodeUTF8 params loose (Yagiz Nizipli) #45610117847683dc
- [
] – build: disable v8 snapshot compression by default (Joyee Cheung) #45716103db415540
- [
] – build: add python 3.11 support for android (Mohammed Keyvanzadeh) #45765195a23e24f3
- [
] – build: rework gyp files for zlib (Richard Lau) #45589109bc89daba
- [
] – crypto: simplify lazy loading of internal modules (Antoine du Hamel) #458091b5b56b6b45
- [
] – crypto: fix CipherBase Update int32 overflow (Marco Ippolito) #4576912e4d37e3f0
- [
] – crypto: refactor ArrayBuffer to bigint conversion utils (Antoine du Hamel) #455671573eab9235
- [
] – crypto: refactor verify acceptable key usage functions (Filip Skokan) #455691845f805490
- [
] – crypto: fix ECDH webcrypto public CryptoKey usages (Filip Skokan) #4556917cc9998737
- [
] – crypto: validate CFRG webcrypto JWK import “d” and “x” are a pair (Filip Skokan) #455691d030963f37
- [
] – crypto: use DataError for CFRG webcrypto raw and jwk import key checks (Filip Skokan) #4556919cd106efdc
- [
] – crypto: use DataError for webcrypto keyData import failures (Filip Skokan) #4556919e2e3de6ce
- [
] – crypto: fix X25519 and X448 webcrypto public CryptoKey usages (Filip Skokan) #45569140037b4e79
- [
] – crypto: ensure “x” is present when importing private CFRG webcrypto keys (Filip Skokan) #455691de2b6b97b9
- [
] – deps: upgrade npm to 9.2.0 (npm team) #45780175dbce9a07
- [
] – deps: upgrade npm to 9.1.3 (npm team) #456931677eb62bf2
- [
] – Revert “deps: fix zlib compilation for CPUs without SIMD features” (Luigi Pinca) #4558911d823a6d30
- [
] – deps: update undici to 5.13.0 (Node.js GitHub Bot) #4563416b15994597
- [
] – deps: update corepack to 0.15.2 (Node.js GitHub Bot) #456351fbd2d27789
- [
] – deps: update nghttp2 to 1.51.0 (Yagiz Nizipli) #45537160c9ac5178
- [
] – deps: patch V8 to 10.8.168.21 (Michaël Zasso) #457491c8421204b0
- [
] – diagnostics_channel: fix diagnostics channel memory leak (theanarkh) #456331c5277417c9
- [
] – doc: buffer.fill empty value (Marco Ippolito) #4579418a90f5c784
- [
] – doc: add args of filter option of fs.cp (MURAKAMI Masahiko) #4573919d6af617ea
- [
] – doc: disambiguate18c728d2f021native module
to
1addon(Daeyeon Jeong) #45673
- [
] – doc: using console.error for error cases in crypto and events (emirgoren) #4564017718ff82a4
- [
] – doc: fix actual result of example is different in events (Deokjin Kim) #456561029060e6e4
- [
] – doc: add doc-only deprecation for headers/trailers setters (Rich Trott) #4569719f51b9e50d
- [
] – doc: add detail on how api docs are published (Michael Dawson) #456261801fe30488
- [
] – doc: use console.error for error case in child_process and dgram (Deokjin Kim) #456901e124e2a6ee
- [
] – doc: move streaming instruc to doc/contributing (Michael Dawson) #4558211b920287b6
- [
] – doc: add Rafael to the tsc (Michael Dawson) #456911b010820c4e
- [
] – doc: add missing line in debugger (Deokjin Kim) #4563214fb7cf88e2
- [
] – doc: fix actual result of example is different in stream (Deokjin Kim) #456191c0df265fea
- [
] – doc: add1027e7380641options
parameter to eventTarget.removeEventListener (Deokjin Kim) #45667
- [
] – doc: define “react-native” community condition (Alex Hunt) #45367123ff5057b2
- [
] – doc: move os.machine() docs to sorted position (Colin Ihrig) #4564712e767bf18b
- [
] – doc: use console.error for error case in fs, https, net and process (Deokjin Kim) #456061aabfdef861
- [
] – doc: add link to doc with social processes (Michael Dawson) #4558413a02d50d35
- [
] – fs: fix1e4316124fa1nonNativeWatcher
watching folder with existing files (Moshe Atlow) #45500
- [
] – fs: fix1d272faa54d1nonNativeWatcher
leak of
1StatWatchers(Moshe Atlow) #45501
- [
] – http: make1d64e7731681OutgoingMessage
more streamlike (Robert Nagy) #45672
- [
] – lib: remove unnecessary lazy loading in1ed8ae88f301internal/encoding
(Antoine du Hamel) #45810
- [
] – lib: allow Writeable.toWeb() to work on http.Outgoing message (Debadree Chatterjee) #456421302c5240c5
- [
] – lib: check number of arguments in1e8745083b91EventTarget
‘s function (Deokjin Kim) #45668
- [
] – lib: disambiguate19f7bb5ce0e1native module
to
1binding(Daeyeon Jeong) #45673
- [
] – lib: disambiguate1353339a5521native module
to
1builtin module(Daeyeon Jeong) #45673
- [
] – lib: added SuiteContext class (Debadree Chatterjee) #45687199410efd19
- [
] – lib: add missing type of removeEventListener in question (Deokjin Kim) #456761a79f37a0a7
- [
] – meta: update AUTHORS (Node.js GitHub Bot) #458141e0750467e8
- [
] – meta: update AUTHORS (Node.js GitHub Bot) #457321376f3468b9
- [
] – meta: add .mailmap entry for Stefan Stojanovic (Rich Trott) #457031a6e2cf2d6f
- [
] – meta: update AUTHORS info for nstepien (Nicolas Stepien) #456921eb9a383d2a
- [
] – meta: update AUTHORS (Node.js GitHub Bot) #456371049ef342c6
- [
] – net: check1b9c2fc76231autoSelectFamilyAttemptTimeout
is positive (Deokjin Kim) #45740
- [
] – (SEMVER-MINOR) net: add autoSelectFamily and autoSelectFamilyAttemptTimeout options (Paolo Insogna) #447311b8b13dccd9
- [
] – readline: improve robustness against prototype mutation (Antoine du Hamel) #4561416962ef0df1
- [
] – repl: do not define17892e23e681wasi
on global with no flag (Kohei Ueno) #45595
- [
] – src: add internal isArrayBufferDetached (Yagiz Nizipli) #455681349b4f8817
- [
] – (SEMVER-MINOR) src: add uvwasi version (Jithil P Ponnan) #4563915d7cd363ab
- [
] – src: simplify NodeBIO::GetMethod initialization (Anna Henningsen) #4579918a03684018
- [
] – src: make structuredClone work for process.env (Ben Noordhuis) #456981b35ebebc0e
- [
] – src: mark generated181ab54035f1snapshot_data
as
1const(Anna Henningsen) #45786
- [
] – src: cleanup on disambiguating native modules (Michael Dawson) #45665179edf257bb
- [
] – src: use1c9cba2e8731enum class
instead of
1enumin node_i18n (Deokjin Kim) #45646
- [
] – src: rename internal module declaration as internal bindings (Chengzhong Wu) #455511818028caba
- [
] – src,lib: group properties used as constants from12fbe2f9f0a1util
binding (Daeyeon Jeong) #45539
- [
] – stream: use structuredClone instead of v8 (Yagiz Nizipli) #45611156eee72abb
- [
] – test: remove flaky parallel/test-process-wrap test (Ben Noordhuis) #458061b297dd5393
- [
] – test: order list alphabetically in1924f6ab3a11test-bootstrap-modules
(Antoine du Hamel) #45808
- [
] – test: fix invalid output TAP if there newline in test name (Pulkit Gupta) #4574215c4475dab9
- [
] – test: fix -Wunused-variable on report-fatalerror (Santiago Gimeno) #4574714c51c5c97a
- [
] – test: fix test-watch-mode (Stefan Stojanovic) #455851764725040c
- [
] – test: fix test-watch-mode-inspect (Stefan Stojanovic) #455861cd36250fcb
- [
] – test: fix typos in test/parallel (Deokjin Kim) #455831b55bd6e8c1
- [
] – test,crypto: update WebCryptoAPI WPT (Filip Skokan) #455691358e2fe217
- [
] – test_runner: refactor1424419c2b41tap_lexer
to use more primordials (Antoine du Hamel) #45744
- [
] – test_runner: refactor1ffc0f3d7be1tap_parser
to use more primordials (Antoine du Hamel) #45745
- [
] – (SEMVER-MINOR) test_runner: add t.after() hook (Colin Ihrig) #4579214165dcddf0
- [
] – (SEMVER-MINOR) test_runner: don’t use a symbol for runHook() (Colin Ihrig) #457921d1bd7796ad
- [
] – test_runner: add resetCalls to MockFunctionContext (MURAKAMI Masahiko) #4571016bc7b7e6f4
- [
] – test_runner: don’t parse TAP from stderr (Colin Ihrig) #4561813e485365ec
- [
] – test_runner: add getter and setter to MockTracker (MURAKAMI Masahiko) #455061efc44567c9
- [
] – test_runner: remove stdout and stderr from error (Colin Ihrig) #455921c9cbd1d396
- [
] – tls: remove trustcor root ca certificates (Ben Noordhuis) #457761691f58e76c
- [
] – tools: update lint-md-dependencies (Node.js GitHub Bot) #457301d384b73f76
- [
] – tools: add GitHub token permissions to label flaky-test issues (Gabriela Gutierrez) #453081324ae3d5dd
- [
] – tools: remove dependency vulnerability checker (Facundo Tuesca) #456751418ae9be56
- [
] – tools: update lint-md-dependencies to rollup@3.4.0 (Node.js GitHub Bot) #456381238fc64c38
- [
] – tools: update doc to highlight.js@11.7.0 (Node.js GitHub Bot) #4563611b98f17876
- [
] – util: use private symbols in JS land directly (Joyee Cheung) #453791470384e7be
- [
] – watch: add CLI flag to preserve output (Debadree Chatterjee) #457171cee6f382d8
Windows 32-bit Installer: https://nodejs.org/dist/v19.3.0/node-v19.3.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v19.3.0/node-v19.3.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v19.3.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v19.3.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v19.3.0/node-v19.3.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v19.3.0/node-v19.3.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v19.3.0/node-v19.3.0.tar.gz
Other release files: https://nodejs.org/dist/v19.3.0/
Documentation: https://nodejs.org/docs/v19.3.0/api/
SHASUMS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
a5ff43eab40dfa812eeb804a7e064cc9e549e04347f0a0e2250a2a8253eaee6f node-v19.3.0-aix-ppc64.tar.gz
a50be904794d083fa8ecd4113845cea37968cbe3e5c1e758b0ec6215e1e7495e node-v19.3.0-darwin-arm64.tar.gz
9b4811af441296e61edfca3186bb694d99daa2ba4344041d4de891b9be587782 node-v19.3.0-darwin-arm64.tar.xz
d9692a5f153d2527ec43860e40fa0e77825543f554384aa8d26d33417ffb9069 node-v19.3.0-darwin-x64.tar.gz
3bc9a06f53b48a5bb2f4b3d370d5ad6b53e3c36fada85f6850120130fde2a444 node-v19.3.0-darwin-x64.tar.xz
40db0bd09a0e71f4447f15b485fc66715c55453c8e89c3b25872c1fdcd3ac29d node-v19.3.0-headers.tar.gz
e54e2a91c9959d59b7d27e1fa161a699aeca85da4a736891ca4c946573d9ee77 node-v19.3.0-headers.tar.xz
f892b536b00f780aba42b7ccc8974e57e58c4f1de3f9c85d1bbf13c60c680974 node-v19.3.0-linux-arm64.tar.gz
b9fbcd1d4433c073528abcac3d31347847e5ef229248cbe1dccca1a1379a5d2c node-v19.3.0-linux-arm64.tar.xz
2c2ee707bcb93d5151ff0dbb5825060d364f0966dc5aab3fe58715d0e4527da8 node-v19.3.0-linux-armv7l.tar.gz
494934a42eb76982b5cbbb84bef0726b828287a03fcf6bf05e78eaf2c8dab703 node-v19.3.0-linux-armv7l.tar.xz
d0d34510a7951afe4369876b671678ccd9bb11b7d24b07af10cabe464e371300 node-v19.3.0-linux-ppc64le.tar.gz
662efb12dc05b603ea51b46224b7885a3a56be652282a6234a2a13e081ceb43b node-v19.3.0-linux-ppc64le.tar.xz
24578073d7339f9a6a8763df30e37bbf1caf3dbc44a6c6c6335c58c274d13b76 node-v19.3.0-linux-s390x.tar.gz
17a1582063ad9b6a60aca5323de76df657d08fb3b2018a6786e1fa782f7f29b0 node-v19.3.0-linux-s390x.tar.xz
b525028ae5bb71b5b32cb7fce903ccce261dbfef4c7dd0f3e0ffc27cd6fc0b3f node-v19.3.0-linux-x64.tar.gz
de94d6db26edee92a03512552c8be9db38a7bfefa7b3228328afdfb5094e3a76 node-v19.3.0-linux-x64.tar.xz
335daf080bf4763c42070b01d38159d91cb6ee0dd8cde813bbb99cff01faf23e node-v19.3.0.pkg
4dc4c4e0c510913ed6c4f37b516243ab96a2d98eff1b7d78cf8f8f8b6d415b98 node-v19.3.0.tar.gz
d3189574ef9849c713822e7f31de7a1b9dd8a2c6b5fc78ddb811aaa259a22b1e node-v19.3.0.tar.xz
fdc3f9c0991a9e54640b792ceb758831f91f6384b0429149b8f3514fa2734e8c node-v19.3.0-win-x64.7z
9b93f6cb78e23a4cab9e401a8418daa9112bbf5bd3127642adf22cfdd4241348 node-v19.3.0-win-x64.zip
2149012398fb720e1c6e79422344b8281bb4c90024461de3d72dcae06ad3d666 node-v19.3.0-win-x86.7z
baf2de80f5c3f9bc679c3d377f48a0b98e75d12fa4f8ebea166883df7067b7b6 node-v19.3.0-win-x86.zip
2efe9f3a91de1375ab581266f35fe89a779af8389b80612401ea6a28ed2dd16e node-v19.3.0-x64.msi
6eca60b54ff2a8fe6508b4d0beb0a316077c135d35e8223445a7c9a23fbd11ee node-v19.3.0-x86.msi
c7a1db0fb60ffec3b06bfaa9c2d58778134c28258ecf75ab93968e536d364bf1 win-x64/node.exe
fde595f3ac64db4522d934f4a4b09c6a11406d8e4f431c6b5374aac38041e6cf win-x64/node.lib
517ef6f4451280e59bccb77fe77bc3202e32938bad379b6626bf50f6e1fc88d7 win-x64/node_pdb.7z
a428af310d552710e828d5ca41865c9cadf81d31a19297917098b45b5ab39c93 win-x64/node_pdb.zip
32365d11881180435c0efac9d18e5ee396c75b2aef6cd1a3c30ec8c2322b6bb4 win-x86/node.exe
dd1f1c3bbb3a6dd4c3ab1d5663688949580cd4ec24b523df23cab90cf666d391 win-x86/node.lib
6a80d7c2930f1bf4fb894350da3194949bc1408b7aea1dd2f409d195148d755f win-x86/node_pdb.7z
233c08350135d2b572ac5067fa0cd1f8fb35b6770c2863f26f41b94ec574e798 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmOZ1jcACgkQdw96mlrh
VgDHwA/9EguDL6MKW3kEKhY48AFB3gWNG6b5VZMENSHPo/cELBVrWjCsw0hD9bZV
xAdE2GnRg8PjmJH76DwjaiW/axijiD/7U12esomhgnFg2LBIXnzSsUeNbRsrupFu
4jVJTcC59M2xPXpdo7SXmrfCLFVJD9nOeaV1orS6Q4/Z8wE41nGXWtILWPWGmIRw
T+RZ09elhcAzAjFBKzWTQl/XOkc15YqgwHoeOVZ4b3txNL2pD7CWw8HMPuwUdi3A
b9B1aZuz9OxOV2RF/cxZFL6P+xbgSa1OeRIqz0UdvslxOmzAG6s3flr+5nVJMu2B
IdSFmCcb2mhbiDjgzpmqBU43vxIHBpAx9NRjCcOG9xpPZs+nAcyftOetetvWohKV
mppmKVfhIsSn1gYTmjtZ1vxvLAffRymGkbpJLLpvN81wQGWHIN46ZjNRDmSHI+CG
t1AYHScWA+FaPdrXs7e4vT6nxVQ/ZaohDBz79UN3o2hO43MXxM1HByZb1tnIqcpc
rcdyUBYO42sJrYnJ7x1u6IdE8z+chHORR1Q+v8uiUCnaxpTPzf6DEcjm0otpI5QB
ZvQz3GIDNQKmydal1yUFr+hSiY6hEpQOLc5n8qOyPrwBSIkjNCPF4D1kYoVj/9ue
t2Zc94IzjzIap8kWRf7sYtH0ILibAzTzd0Qc2hEJd4XK58JXjZw=
=3xD9
-----END PGP SIGNATURE-----
0 Comments