Skip to content

Conversation

@RafaelGSS
Copy link
Member

@RafaelGSSRafaelGSS commented Jul 3, 2023

2023-07-05, Version 20.4.0 (Current), @RafaelGSS

Notable Changes

Mock Timers

The new feature allows developers to write more reliable and predictable tests for time-dependent functionality.
It includes MockTimers with the ability to mock setTimeout, setInterval from globals, node:timers, and node:timers/promises.

The feature provides a simple API to advance time, enable specific timers, and release all timers.

importassertfrom'node:assert';import{test}from'node:test';test('mocks setTimeout to be executed synchronously without having to actually wait for it',(context)=>{constfn=context.mock.fn();// Optionally choose what to mockcontext.mock.timers.enable(['setTimeout']);constnineSecs=9000;setTimeout(fn,nineSecs);constthreeSeconds=3000;context.mock.timers.tick(threeSeconds);context.mock.timers.tick(threeSeconds);context.mock.timers.tick(threeSeconds);assert.strictEqual(fn.mock.callCount(),1);});

This feature was contributed by Erick Wendel in #47775.

Support to the explicit resource management proposal

Node is adding support to the explicit resource management
proposal to its resources allowing users of TypeScript/babel to use using/await using with
V8 support for everyone else on the way.

This feature was contributed by Moshe Atlow and Benjamin Gruenbaum in #48518.

Other notable changes

  • [fe333d2584] - crypto: update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416
  • [60c2ea4e79] - doc: add vmoroz to collaborators (Vladimir Morozov) #48527
  • [5cacdf9e6b] - doc: add kvakil to collaborators (Keyhan Vakil) #48449
  • [504d1d7bdc] - (SEMVER-MINOR)tls: add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) #45190

Commits

panvaand others added 30 commits July 3, 2023 10:32
PR-URL: #48284 Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: James M Snell <[email protected]>
PR-URL: #48321 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]>
My original plan of adding a lable to limit those initially process as outlined in #48051 does not work I think because adding a lable updates the last update time. - Removing the need for the lable - Remove the cron scheduling so that it only runs when I run it manually - Fix the display name for the action as I missed updating that after cut and paste from existing action The plan will be to find stop dates that should only affect a reasonable number of PRs at a time and then run in batches using that instead. Signed-off-by: Michael Dawson <[email protected]> PR-URL: #48196 Reviewed-By: Mestery <[email protected]>
PR-URL: #48267 Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
PR-URL: #48322 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #48320 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #48328 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
PR-URL: #48328 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
Refs: nodejs/security-wg#973 Most of the duplicated code in all the dependencies updaters has been moved in the `utils.sh` file PR-URL: #48081 Refs: nodejs/security-wg#973 Reviewed-By: Marco Ippolito <[email protected]>
Due to server response delay, all possible requests are created anyway. Instead of doing `36 * os.availableParallelism()` requests, use a fixed number. Refs: #48078 (comment) PR-URL: #48292 Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: LiviaMedeiros <[email protected]> Reviewed-By: Daijiro Wachi <[email protected]>
Add `test_cannot_run_js/entry_point.c` to `test/js-native-api/.gitignore`. PR-URL: #48297 Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Gabriel Schulhof <[email protected]> Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: LiviaMedeiros <[email protected]> Reviewed-By: James M Snell <[email protected]>
PR-URL: #48327 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]>
PR-URL: #48336 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #48337 Refs: nodejs/performance#92 Reviewed-By: Stephen Belanger <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Geoffrey Booth <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Jacob Smith <[email protected]>
PR-URL: #48338 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Paolo Insogna <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Juan José Arboleda <[email protected]>
Add a "table" parameter to getCoverageReport. Keep the tap coverage output intact. Change the output by adding padding and truncating the tables' cells. Add separation lines for table head/body/foot. Group uncovered lines as ranges. Add yellow color for coverage between 50 and 90. Refs: #46674 PR-URL: #47791 Reviewed-By: Moshe Atlow <[email protected]>
PR-URL: #48319 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #48319 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #48319 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #48344 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Debadree Chatterjee <[email protected]> Reviewed-By: LiviaMedeiros <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: Marco Ippolito <[email protected]>
PR-URL: #48354 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: Paolo Insogna <[email protected]>
PR-URL: #48147Fixes: #44898 Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #48378 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Luke Karrys <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]> Reviewed-By: Marco Ippolito <[email protected]>
Run a subset of `tools/dep_updaters/update-eslint.sh` to update `eslint-plugin-jsdoc` to get rid of a spurious ENOENT error when running the linter. PR-URL: #48393Fixes: #48374 Reviewed-By: Debadree Chatterjee <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Moshe Atlow <[email protected]>
Use the same commit SHA for this action as used in our other workflows. Refs: #46169 Refs: #45022 (comment) PR-URL: #48398 Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Mestery <[email protected]> Reviewed-By: Tobias Nießen <[email protected]>
This patch removes special case in the internal binding loader for natives, and implements it using the builtins internal binding. Internally we do not actually need the natives binding, so implement it as a legacy wrapper instead. PR-URL: #48186 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Instead of adding a special case for it in the internal binding loader, just implement it as usual using a per-context property initializer. PR-URL: #48186 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
- Move the initialization of process.setSourceMapsEnabled and the maybeCacheGeneratedSourceMap callback to bootstrap/node.js so they are included in the snapshot. - Simplify the handling of --enable-source-maps by explicitly calling setSourceMapsEnabled() during pre-execution. PR-URL: #48304 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
GCC 14 drops some transitive includes within libstdc++. Explicitly include <algorithm> for std::find. Signed-off-by: Sam James <[email protected]> PR-URL: #48380 Reviewed-By: LiviaMedeiros <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Matthew Aitken <[email protected]>
RafaelGSS added a commit to RafaelGSS/node that referenced this pull request Jul 3, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) nodejs#48416 doc: * add vmoroz to collaborators (Vladimir Morozov) nodejs#48527 * add kvakil to collaborators (Keyhan Vakil) nodejs#48449 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) nodejs#48518 test_runner: * (SEMVER-MINOR) add initial draft for fakeTimers (Erick Wendel) nodejs#47775 tls: * (SEMVER-MINOR) add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) nodejs#45190 PR-URL: nodejs#48643
RafaelGSS added a commit that referenced this pull request Jul 3, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 doc: * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 test_runner: * (SEMVER-MINOR) add initial draft for fakeTimers (Erick Wendel) #47775 tls: * (SEMVER-MINOR) add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) #45190 PR-URL: #48643
@mcollina
Copy link
Member

It would be great if #48611 could be included

@RafaelGSS
Copy link
MemberAuthor

RafaelGSS commented Jul 4, 2023

Apparently, fastify and npm are affected by this release:

FAILURE: 41 failures in 3178 not present in 3174 ┌────────────────────────┬───────────────────────┬───────────────────────┬───────────────────┬──────────────────────┬───────────────────┬────────────────────┬─────────────────┬─────────────────┬──────────────┬───────────────┐ │ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ ├────────────────────────┼───────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼───────────────────┼────────────────────┼─────────────────┼─────────────────┼──────────────┼───────────────┤ │ aix72-ppc64 │ 'fastify-v4.19.2' │ 'tough-cookie-v4.1.3' │ │ │ │ │ │ │ │ │ │ fedora-last-latest-x64 │ 'npm-v9.7.2' │ 'undici-v5.22.1' │ │ │ │ │ │ │ │ │ │ ubuntu1804-64 │ 'npm-v9.7.2' │ 'pino-v8.14.1' │ 'pump-v3.0.0' │ 'serialport-v11.0.0' │ 'undici-v5.22.1' │ │ │ │ │ │ │ osx1015 │ 'async-v3.2.4' │ 'ava-v5.3.1' │ 'express-v4.18.2' │ 'clinic-v13.0.0' │ 'fastify-v4.19.2' │ 'ember-cli-v5.0.0' │ 'router-v1.3.8' │ 'rimraf-v5.0.1' │ 'npm-v9.7.2' │ 'uuid-v9.0.0' │ │ rhel8-ppc64le │ 'async-v3.2.4' │ 'bcrypt-v5.1.0' │ 'fastify-v4.19.2' │ 'npm-v9.7.2' │ 'semver-v7.5.3' │ 'tape-v5.6.4' │ │ │ │ │ │ rhel8-x64 │ 'npm-v9.7.2' │ │ │ │ │ │ │ │ │ │ │ fedora-latest-x64 │ 'bcrypt-v5.1.0' │ 'ava-v5.3.1' │ 'npm-v9.7.2' │ 'undici-v5.22.1' │ 'winston-v3.9.0' │ │ │ │ │ │ │ win-vs2019 │ 'body-parser-v1.20.2' │ 'commander-v11.0.0' │ 'npm-v9.7.2' │ 'tape-v5.6.4' │ │ │ │ │ │ │ │ rhel8-s390x │ 'fastify-v4.19.2' │ 'spawn-wrap-v2.0.0' │ 'sqlite3-v5.1.6' │ │ │ │ │ │ │ │ │ debian10-x64 │ 'fastify-v4.19.2' │ 'npm-v9.7.2' │ 'undici-v5.22.1' │ │ │ │ │ │ │ │ └────────────────────────┴───────────────────────┴───────────────────────┴───────────────────┴──────────────────────┴───────────────────┴────────────────────┴─────────────────┴─────────────────┴──────────────┴───────────────┘ ``` fastify: ``` not ok 1 - Extension "ip" value is not a valid IPv4 or IPv6 address. ``` 

@RafaelGSS
Copy link
MemberAuthor

@nodejs/npm could you help with https://ci.nodejs.org/job/citgm-smoker/3178/nodes=debian10-x64/testReport/junit/(root)/citgm/npm_v9_7_2/?

@RafaelGSS
Copy link
MemberAuthor

I couldn't reproduce the fastify issues locally (Debian x64). I'm running the CITGM on v20.x again to guarantee this test isn't failing on v20.x.

@RafaelGSS
Copy link
MemberAuthor

The npm issue is related to nodejs/citgm#897.

@RafaelGSS
Copy link
MemberAuthor

RafaelGSS commented Jul 4, 2023

I couldn't reproduce the fastify failures on osx either. I will wait for citgm on v20.x to check if it's an environment issue, if so, I'll proceed with the release.

@RafaelGSS
Copy link
MemberAuthor

FYI citgm isn't finished yet. I'll postpone the release to tomorrow.

Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 doc: * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 test_runner: * (SEMVER-MINOR) add initial draft for fakeTimers (Erick Wendel) #47775 tls: * (SEMVER-MINOR) add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) #45190 PR-URL: #48643
@RafaelGSS
Copy link
MemberAuthor

@RafaelGSS
Copy link
MemberAuthor

CITGM looks fine:

FAILURE: 22 failures in 3178 not present in 3180 ┌────────────────────────┬─────────────────────┬─────────────────────────┬───────────────────────┬───────────────────┬──────────────────┐ │ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ ├────────────────────────┼─────────────────────┼─────────────────────────┼───────────────────────┼───────────────────┼──────────────────┤ │ aix72-ppc64 │ │ │ │ │ │ │ fedora-last-latest-x64 │ 'jest-v29.5.0' │ 'undici-v5.22.1' │ │ │ │ │ ubuntu1804-64 │ 'pino-v8.14.1' │ 'pump-v3.0.0' │ 'jest-v29.5.0' │ 'undici-v5.22.1' │ │ │ osx1015 │ 'undici-v5.22.1' │ │ │ │ │ │ rhel8-ppc64le │ 'async-v3.2.4' │ 'bcrypt-v5.1.0' │ 'multer-v1.4.5-lts.1' │ 'node-gyp-v9.4.0' │ 'undici-v5.22.1' │ │ rhel8-x64 │ 'jest-v29.5.0' │ │ │ │ │ │ fedora-latest-x64 │ │ │ │ │ │ │ win-vs2019 │ 'commander-v11.0.0' │ 'torrent-stream-v1.2.1' │ │ │ │ │ rhel8-s390x │ 'acorn-v8.9.0' │ 'spawn-wrap-v2.0.0' │ 'undici-v5.22.1' │ 'sqlite3-v5.1.6' │ │ │ debian10-x64 │ 'bcrypt-v5.1.0' │ 'jest-v29.5.0' │ 'undici-v5.22.1' │ │ │ └────────────────────────┴─────────────────────┴─────────────────────────┴───────────────────────┴───────────────────┴──────────────────┘ 

@RafaelGSSRafaelGSS merged commit 73c632e into v20.xJul 5, 2023
@RafaelGSSRafaelGSS deleted the v20.4.0-proposal branch July 5, 2023 13:50
RafaelGSS added a commit that referenced this pull request Jul 5, 2023
RafaelGSS added a commit that referenced this pull request Jul 5, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416 doc: * add vmoroz to collaborators (Vladimir Morozov) #48527 * add kvakil to collaborators (Keyhan Vakil) #48449 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) #48518 test_runner: * (SEMVER-MINOR) add initial draft for fakeTimers (Erick Wendel) #47775 tls: * (SEMVER-MINOR) add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) #45190 PR-URL: #48643
RafaelGSS added a commit to RafaelGSS/nodejs.org that referenced this pull request Jul 5, 2023
RafaelGSS added a commit to RafaelGSS/nodejs.org that referenced this pull request Jul 5, 2023
RafaelGSS added a commit to nodejs/nodejs.org that referenced this pull request Jul 5, 2023
@Trott

This comment was marked as resolved.

Ceres6 pushed a commit to Ceres6/node that referenced this pull request Aug 14, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) nodejs#48416 doc: * add vmoroz to collaborators (Vladimir Morozov) nodejs#48527 * add kvakil to collaborators (Keyhan Vakil) nodejs#48449 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) nodejs#48518 test_runner: * (SEMVER-MINOR) add initial draft for fakeTimers (Erick Wendel) nodejs#47775 tls: * (SEMVER-MINOR) add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) nodejs#45190 PR-URL: nodejs#48643
Ceres6 pushed a commit to Ceres6/node that referenced this pull request Aug 14, 2023
Notable changes: crypto: * update root certificates to NSS 3.90 (Node.js GitHub Bot) nodejs#48416 doc: * add vmoroz to collaborators (Vladimir Morozov) nodejs#48527 * add kvakil to collaborators (Keyhan Vakil) nodejs#48449 fs, stream: * initial `Symbol.dispose` and `Symbol.asyncDispose` support (Moshe Atlow) nodejs#48518 test_runner: * (SEMVER-MINOR) add initial draft for fakeTimers (Erick Wendel) nodejs#47775 tls: * (SEMVER-MINOR) add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) nodejs#45190 PR-URL: nodejs#48643
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

buildIssues and PRs related to build files or the CI.dependenciesPull requests that update a dependency file.docIssues and PRs related to the documentations.metaIssues and PRs related to the general management of the project.needs-ciPRs that need a full CI run.toolsIssues and PRs related to the tools directory.v20.xIssues that can be reproduced on v20.x or PRs targeting the v20.x-staging branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

19 participants

@RafaelGSS@nodejs-github-bot@targos@MoLow@mcollina@Trott@panva@anonrig@mhdawson@lpinca@fasenderos@dmnsgn@LiviaMedeiros@lemire@npm-cli-bot@richardlau@joyeecheung@thesamesam@hemanth