node
node copied to clipboard
v22.8.0 proposal
2024-08-26, Version 22.8.0 (Current), @RafaelGSS
Notable Changes
- [
94eb81a739] - (SEMVER-MINOR) net: exclude ipv6 loopback addresses from server.listen (Giovanni Bucci) #54264 - [
421f563914] - (SEMVER-MINOR) test_runner: add support for coverage thresholds (Aviv Keller) #54429 - [
33fca53329] - (SEMVER-MINOR) test_runner: support running tests in process (Colin Ihrig) #53927 - [
858b583c88] - (SEMVER-MINOR) test_runner: defer inheriting hooks until run() (Colin Ihrig) #53927
Commits
- [
a3f4e562f5] - build: don't clean obj.target directory if it doesn't exist (Joyee Cheung) #54337 - [
89af95cbb2] - build: update required python version to 3.8 (Aviv Keller) #54358 - [
3561e38671] - deps: update amaro to 0.1.7 (Node.js GitHub Bot) #54473 - [
1efc251ded] - deps: update undici to 6.19.8 (Node.js GitHub Bot) #54456 - [
a1ff098db9] - deps: sqlite: fix Windows compilation (Colin Ihrig) #54433 - [
dd034eaeea] - deps: update sqlite to 3.46.1 (Node.js GitHub Bot) #54433 - [
fe4a92a66c] - doc: update websocket flag description to reflect stable API status (Yelim Koo) #54482 - [
0f2b7ec0d4] - doc: fix capitalization in module.md (shallow-beach) #54488 - [
25419915c7] - doc: add esm examples to node:https (Alfredo González) #54399 - [
83b5efeb54] - doc: reserve ABI 130 for Electron 33 (Calvin) #54383 - [
6ccbd32ae8] - doc, meta: add missing,toBUILDING.md(Aviv Keller) #54409 - [
f7b7429deb] - fs: refactor handleTimestampsAndMode to remove redundant call (HEESEUNG) #54369 - [
221bfa6b21] - meta: remind users to use a supported version in bug reports (Aviv Keller) #54481 - [
f2a8d17124] - meta: add more labels to dep-updaters (Aviv Keller) #54454 - [
c4996c189f] - meta: run coverage-windows whenvcbuild.batupdated (Aviv Keller) #54412 - [
336496b90e] - module: add sourceURL magic comment hinting generated source (Chengzhong Wu) #54402 - [
94eb81a739] - (SEMVER-MINOR) net: exclude ipv6 loopback addresses from server.listen (Giovanni Bucci) #54264 - [
88d789aca4] - src: use correct way to signal interceptor error (Michaël Zasso) #54418 - [
2285902d55] - src: remove cached data tag from snapshot metadata (Joyee Cheung) #54122 - [
3a74c400d5] - src: improvebuffer.transcodeperformance (Yagiz Nizipli) #54153 - [
909c5320fd] - src: move more crypto code to ncrypto (James M Snell) #54320 - [
9bf1e85c12] - stream: change stream to use index instead offor...of(Wiyeong Seo) #54474 - [
b1075c2991] - test: fix improper path to URL conversion (Antoine du Hamel) #54509 - [
a0f44a85bf] - test: add tests for runner coverage with different stdout column widths (Pietro Marchini) #54494 - [
6a669cd5ec] - test: prevent V8 from writing into the system's tmpdir (Michaël Zasso) #54395 - [
421f563914] - (SEMVER-MINOR) test_runner: add support for coverage thresholds (Aviv Keller) #54429 - [
eb0fe1993f] - test_runner: refactormock_loader(Antoine du Hamel) #54223 - [
33fca53329] - (SEMVER-MINOR) test_runner: support running tests in process (Colin Ihrig) #53927 - [
858b583c88] - (SEMVER-MINOR) test_runner: defer inheriting hooks until run() (Colin Ihrig) #53927 - [
45b0250692] - test_runner: account for newline in source maps (Colin Ihrig) #54444 - [
1c29e74d30] - test_runner: makemock.module'sspecifierconsistent withimport()(Antoine du Hamel) #54416 - [
cbe30a02a3] - test_runner: finish build phase before running tests (Colin Ihrig) #54423 - [
23d05b2207] - tools: add swc license (Marco Ippolito) #54462 - [
06a0c915f4] - typings: provide internal types for wasi bindings (Andrew Moon) #54119
Review requested:
- [ ] @nodejs/actions
- [ ] @nodejs/security-wg
- [ ] @nodejs/tsc
- [ ] @nodejs/typescript
- [ ] @nodejs/v8-update
CI: https://ci.nodejs.org/job/node-test-pull-request/61461/
Will the notable change text in https://github.com/nodejs/node/pull/54429 be present in this, or will it just be listed in "Notable Changes"?
If it will be, should it link to the (coming soon) coverage learn guide in https://github.com/nodejs/nodejs.org/pull/7006?
Failures are because of:
../src/node_webstorage.cc: In function 'v8::Intercepted node::webstorage::StorageSetter(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&)':
../src/node_webstorage.cc:576:27: error: 'class v8::ReturnValue<void>' has no member named 'SetFalse'
576 | info.GetReturnValue().SetFalse();
We should try to land and include:
https://github.com/nodejs/node/pull/54533 https://github.com/nodejs/node/pull/54524 https://github.com/nodejs/node/pull/54526
I opened https://github.com/nodejs/node/pull/54565 so we can work on https://github.com/nodejs/node/pull/54526 with no rush.
I marked https://github.com/nodejs/node/pull/54418 dont-land
There are a few things to do on the proposal then:
- [ ] Include detailed notable changes section
- [x] Last
mainsync - [x] Include https://github.com/nodejs/node/pull/54533, https://github.com/nodejs/node/pull/54524, https://github.com/nodejs/node/pull/54565 (fix Buffer regression)
- [x] Include https://github.com/nodejs/node/pull/54275 (fix babel regression)
- [x] Drop https://github.com/nodejs/node/pull/54418
I will be monitoring the CIs, but if I miss something, please ping me here. The realistic target date is N (the date the mentioned PRs are landed on main) + 1.
The last remaining pull request was merged today. However, we are unable to release it today due to the time required for the CI, CITGM, and CI-Release processes. Releasing it on Friday is not ideal, as any new issues discovered over the weekend could cause problems, for vendors and for us (despite it being a current release). Therefore, I have decided to schedule this release for next Monday. This will allow us to check the CI, CITGM, and production binaries with plenty of time.
Great work, @RafaelGSS! A stable release is better than a rushed one
https://github.com/nodejs/node/pull/52295 should not be in v22.x directly (it needs a special backport for older versions of V8).
@joyeecheung CI keeps failing. Can it be related to one of your PRs?
I think it might be #52295?
The error is coming from a line that was changed in that PR:
../src/heap_utils.cc:82:46: error: non-virtual member function marked 'override' hides virtual member function
82 | Node* V8Node(const Local<v8::Data>& value) override {
It's marked dont-land-v22.x, but its included in this proposal.
Edit: Oh, I see @joyeecheung already pointed that out:
#52295 should not be in v22.x directly (it needs a special backport for older versions of V8).
I think some commits from https://github.com/nodejs/node/pull/52295 are still included? They should not be in v22.x as-is because they use new APIs that are not in v8 12.4 (which only has the deprecated version).
I think I did not remove all commits. Let me adjust
Codecov Report
Attention: Patch coverage is 83.44569% with 221 lines in your changes missing coverage. Please review.
Project coverage is 87.17%. Comparing base (
65eff1e) to head (78ee90e). Report is 92 commits behind head on v22.x.
Additional details and impacted files
@@ Coverage Diff @@
## v22.x #54560 +/- ##
==========================================
+ Coverage 87.06% 87.17% +0.10%
==========================================
Files 648 649 +1
Lines 182698 183107 +409
Branches 35010 35340 +330
==========================================
+ Hits 159069 159616 +547
+ Misses 16906 16759 -147
- Partials 6723 6732 +9
| Files with missing lines | Coverage Δ | |
|---|---|---|
| lib/buffer.js | 96.84% <100.00%> (+0.14%) |
:arrow_up: |
| lib/internal/fs/cp/cp.js | 90.31% <ø> (-0.03%) |
:arrow_down: |
| lib/internal/main/test_runner.js | 100.00% <100.00%> (ø) |
|
| lib/internal/modules/helpers.js | 98.91% <100.00%> (+1.35%) |
:arrow_up: |
| lib/internal/perf/nodetiming.js | 94.64% <100.00%> (+0.26%) |
:arrow_up: |
| lib/internal/process/pre_execution.js | 91.82% <ø> (+1.75%) |
:arrow_up: |
| lib/internal/test_runner/harness.js | 92.30% <100.00%> (+3.17%) |
:arrow_up: |
| lib/internal/test_runner/mock/loader.js | 95.52% <100.00%> (-0.62%) |
:arrow_down: |
| lib/internal/test_runner/mock/mock.js | 98.62% <100.00%> (-0.62%) |
:arrow_down: |
| lib/internal/validators.js | 99.69% <100.00%> (+0.02%) |
:arrow_up: |
| ... and 57 more |
CI: https://ci.nodejs.org/job/node-test-pull-request/61802/ CITGM: https://ci.nodejs.org/job/citgm-smoker/3472/ CITGM(v22.x): https://ci.nodejs.org/job/citgm-smoker/3473/ V8: https://ci.nodejs.org/job/node-test-commit-v8-linux/6167/ :package: https://ci-release.nodejs.org/job/iojs+release/10439/
V8 CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=benchmark-ubuntu2204-intel-64,v8test=v8test/6167/
V8 CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=rhel8-s390x,v8test=v8test/6167/
V8 CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=rhel8-ppc64le,v8test=v8test/6167/
Nit: "Support to coverage thresholds" -> "Support for coverage thresholds"
Is 22.8.0 still expected to go out today? We are awaiting it as (hopefully) a fix for https://github.com/nodejs/node/issues/54518#issuecomment-2307687124
Is 22.8.0 still expected to go out today? We are awaiting it as (hopefully) a fix for #54518 (comment)
Yes. We're doing our best. Currently, waiting for CI to finish.
CI: https://ci.nodejs.org/job/node-test-pull-request/61823/
CI: https://ci.nodejs.org/job/node-test-pull-request/61831/
CI: https://ci.nodejs.org/job/node-test-pull-request/61836/ 🟢 CITGM: https://ci.nodejs.org/job/citgm-smoker/3472/ :yellow_circle: CITGM(v22.x): https://ci.nodejs.org/job/citgm-smoker/3473/ V8: https://ci.nodejs.org/job/node-test-commit-v8-linux/6167/ :green_circle: :package: https://ci-release.nodejs.org/job/iojs+release/10441/ -> https://ci-release.nodejs.org/job/iojs+release/10444/ :green_circle:
CI: https://ci.nodejs.org/job/node-test-pull-request/61836/
Unlikely to be released today (02/09). CI still running.
Hopefully this can be landed today (3/9) The buffer error have been preventing us from deploying for a week.