GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fs: implement glob natively by avivkeller · Pull Request #65392 · nodejs/node

Conversation

@avivkeller

@avivkeller avivkeller commented Aug 18, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Ref: https://openjs-foundation.slack.com/archives/C019Y2T6STH/p1787069174254509

(AI assistance used to help port minimatch to C++ and take improvements from other implementations, e.g. Rust's fast-glob [oxc] and picomatch, etc).

I'd love some pretty pedantic reviews since this is substantial. It's 1:1 with the existing glob, so it's non-breaking, but please tear this apart just in case. This implementation is over 2x faster than the old one.

Benchmarking Result
                                                                                                       confidence improvement accuracy (*)    (**)   (***)
fs/bench-glob-options.js options='exclude-callback' mode='callback' pattern='**/*.js' dir='lib' n=1000        ***    115.93 %      ±19.24% ±26.59% ±36.73%
fs/bench-glob-options.js options='exclude-callback' mode='promise' pattern='**/*.js' dir='lib' n=1000         ***    115.54 %      ±20.02% ±27.26% ±36.78%
fs/bench-glob-options.js options='exclude-callback' mode='sync' pattern='**/*.js' dir='lib' n=1000            ***     69.66 %      ±14.00% ±18.97% ±25.42%
fs/bench-glob-options.js options='exclude-pattern' mode='callback' pattern='**/*.js' dir='lib' n=1000         ***     37.86 %      ±12.27% ±16.90% ±23.19%
fs/bench-glob-options.js options='exclude-pattern' mode='promise' pattern='**/*.js' dir='lib' n=1000          ***     41.06 %      ±11.48% ±15.49% ±20.60%
fs/bench-glob-options.js options='exclude-pattern' mode='sync' pattern='**/*.js' dir='lib' n=1000                      3.81 %      ±11.93% ±16.14% ±21.56%
fs/bench-glob-options.js options='none' mode='callback' pattern='**/*.js' dir='lib' n=1000                    ***    153.86 %      ±20.91% ±28.39% ±38.12%
fs/bench-glob-options.js options='none' mode='promise' pattern='**/*.js' dir='lib' n=1000                     ***    150.49 %      ±18.20% ±24.64% ±32.95%
fs/bench-glob-options.js options='none' mode='sync' pattern='**/*.js' dir='lib' n=1000                        ***     98.16 %      ±11.23% ±15.15% ±20.14%
fs/bench-glob-options.js options='withFileTypes' mode='callback' pattern='**/*.js' dir='lib' n=1000           ***    111.98 %      ±19.57% ±26.99% ±37.14%
fs/bench-glob-options.js options='withFileTypes' mode='promise' pattern='**/*.js' dir='lib' n=1000            ***    111.56 %      ±17.41% ±23.58% ±31.53%
fs/bench-glob-options.js options='withFileTypes' mode='sync' pattern='**/*.js' dir='lib' n=1000               ***     76.30 %      ±15.82% ±21.46% ±28.80%
fs/bench-glob.js mode='callback' pattern='*.js' dir='lib' n=1000                                              ***     64.04 %       ±6.85%  ±9.31% ±12.51%
fs/bench-glob.js mode='callback' pattern='**/*.{js,json}' dir='lib' n=1000                                    ***    181.99 %       ±5.73%  ±7.78% ±10.46%
fs/bench-glob.js mode='callback' pattern='**/*.js' dir='lib' n=1000                                           ***    162.05 %       ±7.08%  ±9.77% ±13.47%
fs/bench-glob.js mode='callback' pattern='**/*' dir='lib' n=1000                                              ***    167.88 %       ±9.26% ±12.60% ±16.98%
fs/bench-glob.js mode='promise' pattern='*.js' dir='lib' n=1000                                               ***     46.39 %       ±2.77%  ±3.78%  ±5.12%
fs/bench-glob.js mode='promise' pattern='**/*.{js,json}' dir='lib' n=1000                                     ***    167.71 %       ±7.07%  ±9.74% ±13.39%
fs/bench-glob.js mode='promise' pattern='**/*.js' dir='lib' n=1000                                            ***    158.22 %      ±13.81% ±19.17% ±26.64%
fs/bench-glob.js mode='promise' pattern='**/*' dir='lib' n=1000                                               ***    156.03 %      ±11.17% ±15.48% ±21.47%
fs/bench-glob.js mode='sync' pattern='*.js' dir='lib' n=1000                                                  ***     29.58 %       ±4.99%  ±6.92%  ±9.59%
fs/bench-glob.js mode='sync' pattern='**/*.{js,json}' dir='lib' n=1000                                        ***    112.35 %       ±6.09%  ±8.24% ±11.01%
fs/bench-glob.js mode='sync' pattern='**/*.js' dir='lib' n=1000                                               ***     93.18 %       ±5.53%  ±7.60% ±10.38%
fs/bench-glob.js mode='sync' pattern='**/*' dir='lib' n=1000                                                  ***     85.16 %      ±13.12% ±18.20% ±25.31%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 24 comparisons, you can thus
expect the following amount of false-positive results:
  1.20 false positives, when considering a   5% risk acceptance (*, **, ***),
  0.24 false positives, when considering a   1% risk acceptance (**, ***),
  0.02 false positives, when considering a 0.1% risk acceptance (***)

AI-Assisted-By: Claude Fable 5, Claude Opus 5

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

bricss, TheOneTheOnlyJJ, H4ad, Ethan-Arrowood, SuperchupuDev, JaoodxD, lukaszkups, sunjay-dev, and sxzz reacted with rocket emoji
All reactions
  • 🚀 9 reactions
@nodejs-github-bot

nodejs-github-bot commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/actions
  • @nodejs/performance
  • @nodejs/security-wg
  • @nodejs/tsc
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot nodejs-github-bot added dependencies PRs that add, update, or configure Node.js dependencies. meta Issues and PRs related to the general management of the project. needs-ci PRs that need a full CI run. labels Aug 18, 2026
@avivkeller avivkeller added fs Issues and PRs related to file-system APIs and the fs module. discuss Issues opened for discussion and feedback. performance Issues and PRs related to the performance of Node.js. labels Aug 18, 2026
@avivkeller

avivkeller commented Aug 18, 2026

Copy link
Copy Markdown
Member Author

cc @isaacs @nodejs/fs

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller
avivkeller force-pushed the native-glob branch from f172fce to 8bedc81 Compare August 19, 2026 02:18
@codecov

codecov Bot commented Aug 19, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 77.74495% with 904 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.98%. Comparing base (f955c20) to head (1d62b51).
⚠️ Report is 52 commits behind head on main.

Files with missing lines Patch % Lines
src/glob/glob_parser.cc 73.97% 149 Missing and 106 partials ⚠️
src/glob/glob_matcher.cc 66.80% 82 Missing and 84 partials ⚠️
src/glob/glob_walker.cc 85.77% 47 Missing and 112 partials ⚠️
src/glob/glob_program.cc 80.48% 78 Missing and 44 partials ⚠️
src/glob/node_glob.cc 75.45% 60 Missing and 47 partials ⚠️
src/glob/glob_unicode.cc 40.17% 64 Missing and 3 partials ⚠️
src/permission/permission.cc 79.31% 1 Missing and 5 partials ⚠️
src/glob/glob_ast.h 85.29% 2 Missing and 3 partials ⚠️
src/glob/glob_unicode.h 33.33% 4 Missing ⚠️
src/glob/node_glob.h 42.85% 4 Missing ⚠️
... and 4 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #65392      +/-   ##
==========================================
- Coverage   90.17%   89.98%   -0.19%     
==========================================
  Files         771      784      +13     
  Lines      265172   268265    +3093     
  Branches    50364    51099     +735     
==========================================
+ Hits       239119   241411    +2292     
- Misses      17010    17409     +399     
- Partials     9043     9445     +402     
Files with missing lines Coverage Δ
lib/fs.js 97.31% <100.00%> (+<0.01%) ⬆️
lib/internal/fs/watchers.js 88.06% <100.00%> (-0.22%) ⬇️
lib/internal/test_runner/runner.js 94.94% <100.00%> (-0.01%) ⬇️
src/glob/glob_program.h 100.00% <100.00%> (ø)
src/glob/glob_walker.h 100.00% <100.00%> (ø)
src/lru_cache-inl.h 90.47% <100.00%> (+1.58%) ⬆️
src/node_binding.cc 70.76% <ø> (+0.27%) ⬆️
src/node_external_reference.h 100.00% <ø> (ø)
src/node_snapshotable.cc 73.47% <ø> (ø)
src/node_util.cc 81.96% <ø> (-0.19%) ⬇️
... and 19 more

... and 55 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95

aduh95 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

take improvements from other implementations, e.g. Rust's fast-glob [oxc] and picomatch, etc

I would feel more comfortable adopting one of those instead of having to maintain our own, have you explored that route?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller

avivkeller commented Aug 20, 2026

Copy link
Copy Markdown
Member Author

I would feel more comfortable adopting one of those instead of having to maintain our own, have you explored that route?

I have, but the perf wins here are dependent on this being in native, and not in JS:

  1. (Minor) We are calling libuv directly, so we don't need to flip-flop between C++ and JS

  2. (Major) We are writing code highly optimized for Node.js's usage. Existing JS implementations compile to a RegEx and rely on V8 to optimize it, however, we can skip that whole step by not relying on V8 at all, and manually compiling the glob to an AST.

    If a directory has 100k entries and 500 match, existing implementations are forced to create and discard ~99.5k strings to get there (since they are written in JS), in a native implementation, we don't need to create, allocate, or garbage collect anything inside of V8, we can handle it all natively.

I also think this can bring some improvements to things like the test runner. For instance, --test-coverage-include/exclude is globbed on the native side (like a supercharged version of #65371), we should be able to bring this performance improvement elsewhere. Maybe this can help in similar ways in other places to?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller avivkeller closed this Aug 20, 2026
@avivkeller
avivkeller force-pushed the native-glob branch from 8bedc81 to 55e4ca3 Compare August 20, 2026 04:45
@avivkeller avivkeller reopened this Aug 20, 2026
@avivkeller

avivkeller commented Aug 20, 2026

Copy link
Copy Markdown
Member Author

(Whoops!)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@isaacs

isaacs commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Here's the results of node-glob's benchmark script with this branch, as of fd617c2: https://gist.github.com/isaacs/abf2714edd59cb6803d36ff6b3407d22

Notes:

  1. Correctness does not seem to be impacted in any way. That's great! Agents often take shortcuts in tasks like this, so it's good to see that the tests kept it well behaved ;)
  2. The fs.globSync performance is a bit faster than node-glob. That's not unexpected, since it was already comparable, but it does seem to have improved.
  3. The fs.glob performance (async) is still considerably slower. The only explanation I can imagine for this is that it's still stacking waits serially rather than parallelizing, or the more aggressive caching with path-scurry is saving node-glob from a lot of repetitive computations. (I know the node impl does cache, but it might not be caching as much or as aggressively; path-scurry effectively caches every path and fs operation for the duration of the walk.)
  4. Performance of fast-glob and globby are there for scale, but they can be safely ignored; these implementations sacrifice correctness for speed, and thus are not apples-to-apples comparable.

Given the deep cuts made here, I'd expect to see the native implementation get at least 5 to 10 times faster than node-glob. No longer being 6x slower is indeed a significant improvement, perhaps enough to make it worth landing this as-is and making further improvements later. But it's definitely still not what I'd call "done", by quite a bit.

jazelly and benjamingr reacted with thumbs up emoji avivkeller reacted with heart emoji
All reactions
  • 👍 2 reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller
avivkeller force-pushed the native-glob branch from fd617c2 to 77675d2 Compare August 20, 2026 20:02
jasnell
jasnell reviewed Aug 20, 2026
View reviewed changes
Comment thread src/glob/glob_ast.h Resolved

Uh oh!

There was an error while loading. Please reload this page.

jasnell
jasnell reviewed Aug 20, 2026
View reviewed changes
Comment thread src/glob/glob_ast.h Resolved

Uh oh!

There was an error while loading. Please reload this page.

@aduh95

aduh95 commented Aug 20, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

I have, but the perf wins here are dependent on this being in native, and not in JS:

It's not what I meant though, my question is whether you explored adopting one of the native alternatives your AI based itself on (you mentioned Rust, surely that is not JS)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller

avivkeller commented Aug 20, 2026

Copy link
Copy Markdown
Member Author

It's not what I meant though, my question is whether you explored adopting one of the native alternatives your AI based itself on (you mentioned Rust, surely that is not JS)

https://github.com/oxc-project/fast-glob, the Rust implementation I mentioned, isn't compliant with minimatch (e.g. negated patterns don't work). A lot of the really fast implementations aren't compatible with our current set up (as they match different globs). As @isaacs said about a different fast-glob (a different library of the same name), "these implementations sacrifice correctness for speed, and thus are not apples-to-apples comparable." That can be said about several implementations, so working from scratch was the best way to both match the existing behavior and take the performance benefits from the existing implementations.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller
avivkeller force-pushed the native-glob branch from c7f32c9 to 721c2e2 Compare August 20, 2026 23:18
@avivkeller
avivkeller requested a review from jasnell August 20, 2026 23:40
@avivkeller avivkeller removed the discuss Issues opened for discussion and feedback. label Aug 20, 2026
mcollina
mcollina approved these changes Aug 21, 2026
View reviewed changes

@mcollina mcollina left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

lgtm

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mcollina mcollina added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Aug 21, 2026
@mcollina

mcollina commented Aug 21, 2026

Copy link
Copy Markdown
Member

Minimatch had its own tests that covered it extensively. Those tests have not been ported over to this codebase, which I think should be to guarantee backward-compatibility and no regressions.

avivkeller, jasnell, atlowChemi, and H4ad reacted with thumbs up emoji
All reactions
  • 👍 4 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

anonrig
anonrig approved these changes Aug 21, 2026
View reviewed changes
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Aug 21, 2026
avivkeller added 2 commits September 8, 2026 10:43
@avivkeller
fs: implement glob natively
217a085
Signed-off-by: avivkeller <[email protected]>
@avivkeller
fixup! make permissions multi-threaded
7e08680
@avivkeller
avivkeller force-pushed the native-glob branch from ba3353a to 7e08680 Compare September 8, 2026 17:14
@avivkeller
avivkeller requested review from RafaelGSS and gurgunday September 8, 2026 17:14
gurgunday
gurgunday approved these changes Sep 8, 2026
View reviewed changes

@gurgunday gurgunday left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

lgtm

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@louiellan

louiellan commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

hello, unsolicited review here ;)
I'm experiencing the same issue #61499 here in the native glob implementation but the problem for this is how the glob traverses through directories and instead of an empty match, it's unneeded permission error

IMO, I think that it is only reasonable for us to --allow-fs-read a parent directory if we were to have a followSymlinks set to true, or that we have ../,or that we are traversing the parent directory with the ** or *, otherwise, having --allow-fs-read=. for a specific directory traversal seems broad for me

But if it is intended that way that it needs to have granted access to the parent directory, I think it would be helpful for us to clarify it in the documentation

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller
fixup!
1d62b51
@nodejs-github-bot

nodejs-github-bot commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/77313/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

avivkeller added a commit that referenced this pull request Sep 11, 2026
@avivkeller
fs: implement glob natively
a8f2bf0
Signed-off-by: avivkeller <[email protected]>
PR-URL: #65392
Refs: https://openjs-foundation.slack.com/archives/C019Y2T6STH/p1787069174254509
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Gürgün Dayıoğlu <[email protected]>
@avivkeller

avivkeller commented Sep 11, 2026

Copy link
Copy Markdown
Member Author

Landed in a8f2bf0

bricss, SuperchupuDev, and TheOneTheOnlyJJ reacted with hooray emoji
All reactions
  • 🎉 3 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller avivkeller closed this Sep 11, 2026
@avivkeller avivkeller mentioned this pull request Sep 11, 2026
fs: remove permissions fallback #65990
Open
@sxzz sxzz mentioned this pull request Sep 15, 2026
1.0.0 roadmap SuperchupuDev/tinyglobby#178
Open
This was referenced Sep 16, 2026
node:fs glob: read directories ahead in the async walk, less work per entry oven-sh/bun#42963
Open
node:fs glob: compile plain patterns without minimatch oven-sh/bun#42874
Open
@ybiquitous ybiquitous mentioned this pull request Sep 21, 2026
Change globbyOptions to support only a subset of options stylelint/stylelint#9500
Merged
@samuelmbabhazi samuelmbabhazi mentioned this pull request Oct 14, 2026
fs: let glob walk a mounted virtual file system #66719
Open
@RafaelGSS RafaelGSS mentioned this pull request Oct 27, 2026
2026-10-28, Version 27.0.0-alpha.0.0.0 (Alpha) #67062
Merged
RafaelGSS added a commit that referenced this pull request Oct 27, 2026
@RafaelGSS
2026-10-28, Version 27.0.0-alpha.0.0.0 (Alpha)
431dd20
Notable changes:

async_hooks:
  * (SEMVER-MAJOR) remove legacy AsyncLocalStorage implementation (Matteo Collina) #63641
benchmark:
  * (SEMVER-MAJOR) protect against accidental fork bomb (James M Snell) #66132
build:
  * (SEMVER-MAJOR) remove the bundled FIPS provider build (Filip Skokan) #64777
  * (SEMVER-MAJOR) require OpenSSL 3 or later (Filip Skokan) #64777
  * (SEMVER-MAJOR) downgrade Intel macOS support to experimental (Antoine du Hamel) #65427
crypto:
  * (SEMVER-MAJOR) move DEP0093 to End-of-Life (Filip Skokan) #64777
  * (SEMVER-MAJOR) remove legacy OpenSSL code paths (Filip Skokan) #64777
  * (SEMVER-MAJOR) validate digest output encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate update input encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate inputEncoding in Cipher/Decipher update (Maruthan G) #66247
  * (SEMVER-MAJOR) move DEP0198 to End-of-Life (Filip Skokan) #64000
  * (SEMVER-MAJOR) move DEP0203 and DEP0204 to End-of-Life (Filip Skokan) #63188
  * (SEMVER-MAJOR) reject resizable backing stores in Web Crypto buffer parameters (Filip Skokan) #63925
  * (SEMVER-MAJOR) throw on uninitialized DH computeSecret (Filip Skokan) #63922
  * (SEMVER-MAJOR) runtime-deprecate calling Hmac.digest() more than once (Madelyn) #63624
crypto,https,tls:
  * (SEMVER-MAJOR) end OpenSSL engine support (Filip Skokan) #64777
deps:
  * (SEMVER-MAJOR) update archs files for openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) upgrade openssl sources to openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) remove ncrypto legacy OpenSSL backend (Filip Skokan) #64777
  * (SEMVER-MAJOR) update V8 to 15.6.75.13 (Joyee Cheung) #66601
  * (SEMVER-MAJOR) update V8 to 15.5.35.20 (Joyee Cheung) #66537
  * (SEMVER-MAJOR) update V8 to 15.2.124.38 (Joyee Cheung) #65161
  * (SEMVER-MAJOR) upgrade npm to 12.1.0 (npm team) #66212
dgram:
  * (SEMVER-MAJOR) skip the custom lookup for literal IP addresses (Ruben Bridgewater) #64131
dns:
  * (SEMVER-MAJOR) do not consult hosts file in reverse lookups (Archkon) #64268
  * (SEMVER-MAJOR) stop using deprecated functions in `SetServers` (Antoine du Hamel) #64356
doc:
  * (SEMVER-MAJOR) remove OpenSSL 1.x references (Filip Skokan) #64777
  * (SEMVER-MAJOR) update Node.js 27 official binary toolchains (Richard Lau) #66377
domain:
  * (SEMVER-MAJOR) runtime-deprecate the module (Matteo Collina) #65074
  * (SEMVER-MAJOR) port to AsyncLocalStorage (Matteo Collina) #61095
fs:
  * (SEMVER-MAJOR) implement glob natively (Aviv Keller) #65392
  * (SEMVER-MAJOR) return Buffer from mkdtemp when prefix is a Buffer (Hamid Reza Ghavami) #64397
http:
  * (SEMVER-MAJOR) reject responses exceeding header limit (Matteo Collina) #65010
  * (SEMVER-MAJOR) runtime deprecate instantiating without new (Yagiz Nizipli) #64853
  * (SEMVER-MAJOR) increase keepAliveTimeout default to 65 seconds (Tim Perry) #62782
  * (SEMVER-MAJOR) make req.headers have a null prototype (Matteo Collina) #62900
  * (SEMVER-MAJOR) reject addTrailers after finish (Ryuhei Shima) #62832
http2:
  * (SEMVER-MAJOR) increase default window sizes (Matteo Collina) #64623
lib:
  * (SEMVER-MAJOR) deprecate _http_* (Sebastian Beltran) #58535
  * (SEMVER-MAJOR) insert argv[0] at argv[1] in setDeserializeMainFunction (Daijiro Wachi) #62928
  * (SEMVER-MAJOR) use `Object.freeze` to avoid defensive cloning in `SourceMap` (Daijiro Wachi) #62830
  * (SEMVER-MAJOR) reject SharedArrayBuffer in Blob constructor per spec (Ali Hassan) #63046
lib,src:
  * (SEMVER-MAJOR) remove `--no-experimental-websocket` CLI flag (Antoine du Hamel) #65284
net:
  * (SEMVER-MAJOR) race family autoselection attempts (Matteo Collina) #66229
  * (SEMVER-MAJOR) throw on multiple listen calls (Matteo Collina) #64871
  * (SEMVER-MAJOR) runtime-deprecate Server.prototype._listen2 (Guilherme Araújo) #64794
  * (SEMVER-MAJOR) add experimental net/promises API (Ethan Arrowood) #63965
repl:
  * (SEMVER-MAJOR) use inspector over vm (Aviv Keller) #64034
src:
  * (SEMVER-MAJOR) officially deprecate `node::ObjectWrap` (Anna Henningsen) #63756
  * (SEMVER-MAJOR) merge `CreateEnvironment()` overloads (Anna Henningsen) #63596
src, test:
src,lib:
  * (SEMVER-MAJOR) add --allow-env permission (James M Snell) #66132
stream:
  * (SEMVER-MAJOR) destroy source when map iterator closes early (Y1D7NG) #64264
test:
  * (SEMVER-MAJOR) fix fs write encoding coverage (Filip Skokan) #66247
test,benchmark:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-only coverage (Filip Skokan) #64777
test,tools:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-era FIPS leftovers (Filip Skokan) #64777
test_runner:
  * use AsyncLocalStorage instead of async_hooks (Matteo Collina) #66795
tls:
  * (SEMVER-MAJOR) move _tls_* to end-of-life (Sebastian Beltran) #60658
zlib:
  * (SEMVER-MAJOR) convert classes to modern syntax and eol DEP0184 (Yagiz Nizipli) #64849

PR-URL: #67062
RafaelGSS added a commit that referenced this pull request Oct 27, 2026
@RafaelGSS
2026-10-28, Version 27.0.0-alpha.0.0.0 (Alpha)
95c633f
Notable changes:

async_hooks:
  * (SEMVER-MAJOR) remove legacy AsyncLocalStorage implementation (Matteo Collina) #63641
benchmark:
  * (SEMVER-MAJOR) protect against accidental fork bomb (James M Snell) #66132
build:
  * (SEMVER-MAJOR) remove the bundled FIPS provider build (Filip Skokan) #64777
  * (SEMVER-MAJOR) require OpenSSL 3 or later (Filip Skokan) #64777
  * (SEMVER-MAJOR) downgrade Intel macOS support to experimental (Antoine du Hamel) #65427
crypto:
  * (SEMVER-MAJOR) move DEP0093 to End-of-Life (Filip Skokan) #64777
  * (SEMVER-MAJOR) remove legacy OpenSSL code paths (Filip Skokan) #64777
  * (SEMVER-MAJOR) validate digest output encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate update input encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate inputEncoding in Cipher/Decipher update (Maruthan G) #66247
  * (SEMVER-MAJOR) move DEP0198 to End-of-Life (Filip Skokan) #64000
  * (SEMVER-MAJOR) move DEP0203 and DEP0204 to End-of-Life (Filip Skokan) #63188
  * (SEMVER-MAJOR) reject resizable backing stores in Web Crypto buffer parameters (Filip Skokan) #63925
  * (SEMVER-MAJOR) throw on uninitialized DH computeSecret (Filip Skokan) #63922
  * (SEMVER-MAJOR) runtime-deprecate calling Hmac.digest() more than once (Madelyn) #63624
crypto,https,tls:
  * (SEMVER-MAJOR) end OpenSSL engine support (Filip Skokan) #64777
deps:
  * (SEMVER-MAJOR) update archs files for openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) upgrade openssl sources to openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) remove ncrypto legacy OpenSSL backend (Filip Skokan) #64777
  * (SEMVER-MAJOR) update V8 to 15.6.75.13 (Joyee Cheung) #66601
  * (SEMVER-MAJOR) update V8 to 15.5.35.20 (Joyee Cheung) #66537
  * (SEMVER-MAJOR) update V8 to 15.2.124.38 (Joyee Cheung) #65161
  * (SEMVER-MAJOR) upgrade npm to 12.1.0 (npm team) #66212
dgram:
  * (SEMVER-MAJOR) skip the custom lookup for literal IP addresses (Ruben Bridgewater) #64131
dns:
  * (SEMVER-MAJOR) do not consult hosts file in reverse lookups (Archkon) #64268
  * (SEMVER-MAJOR) stop using deprecated functions in `SetServers` (Antoine du Hamel) #64356
doc:
  * (SEMVER-MAJOR) remove OpenSSL 1.x references (Filip Skokan) #64777
  * (SEMVER-MAJOR) update Node.js 27 official binary toolchains (Richard Lau) #66377
domain:
  * (SEMVER-MAJOR) runtime-deprecate the module (Matteo Collina) #65074
  * (SEMVER-MAJOR) port to AsyncLocalStorage (Matteo Collina) #61095
fs:
  * (SEMVER-MAJOR) implement glob natively (Aviv Keller) #65392
  * (SEMVER-MAJOR) return Buffer from mkdtemp when prefix is a Buffer (Hamid Reza Ghavami) #64397
http:
  * (SEMVER-MAJOR) reject responses exceeding header limit (Matteo Collina) #65010
  * (SEMVER-MAJOR) runtime deprecate instantiating without new (Yagiz Nizipli) #64853
  * (SEMVER-MAJOR) increase keepAliveTimeout default to 65 seconds (Tim Perry) #62782
  * (SEMVER-MAJOR) make req.headers have a null prototype (Matteo Collina) #62900
  * (SEMVER-MAJOR) reject addTrailers after finish (Ryuhei Shima) #62832
http2:
  * (SEMVER-MAJOR) increase default window sizes (Matteo Collina) #64623
lib:
  * (SEMVER-MAJOR) deprecate _http_* (Sebastian Beltran) #58535
  * (SEMVER-MAJOR) insert argv[0] at argv[1] in setDeserializeMainFunction (Daijiro Wachi) #62928
  * (SEMVER-MAJOR) use `Object.freeze` to avoid defensive cloning in `SourceMap` (Daijiro Wachi) #62830
  * (SEMVER-MAJOR) reject SharedArrayBuffer in Blob constructor per spec (Ali Hassan) #63046
lib,src:
  * (SEMVER-MAJOR) remove `--no-experimental-websocket` CLI flag (Antoine du Hamel) #65284
net:
  * (SEMVER-MAJOR) race family autoselection attempts (Matteo Collina) #66229
  * (SEMVER-MAJOR) throw on multiple listen calls (Matteo Collina) #64871
  * (SEMVER-MAJOR) runtime-deprecate Server.prototype._listen2 (Guilherme Araújo) #64794
  * (SEMVER-MAJOR) add experimental net/promises API (Ethan Arrowood) #63965
repl:
  * (SEMVER-MAJOR) use inspector over vm (Aviv Keller) #64034
src:
  * (SEMVER-MAJOR) officially deprecate `node::ObjectWrap` (Anna Henningsen) #63756
  * (SEMVER-MAJOR) merge `CreateEnvironment()` overloads (Anna Henningsen) #63596
src, test:
src,lib:
  * (SEMVER-MAJOR) add --allow-env permission (James M Snell) #66132
stream:
  * (SEMVER-MAJOR) destroy source when map iterator closes early (Y1D7NG) #64264
test:
  * (SEMVER-MAJOR) fix fs write encoding coverage (Filip Skokan) #66247
test,benchmark:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-only coverage (Filip Skokan) #64777
test,tools:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-era FIPS leftovers (Filip Skokan) #64777
test_runner:
  * use AsyncLocalStorage instead of async_hooks (Matteo Collina) #66795
tls:
  * (SEMVER-MAJOR) move _tls_* to end-of-life (Sebastian Beltran) #60658
zlib:
  * (SEMVER-MAJOR) convert classes to modern syntax and eol DEP0184 (Yagiz Nizipli) #64849

PR-URL: #67062
RafaelGSS added a commit that referenced this pull request Oct 27, 2026
@RafaelGSS
2026-10-28, Version 27.0.0-alpha.0.0.0 (Alpha)
8ab5fc9
Notable changes:

async_hooks:
  * (SEMVER-MAJOR) remove legacy AsyncLocalStorage implementation (Matteo Collina) #63641
benchmark:
  * (SEMVER-MAJOR) protect against accidental fork bomb (James M Snell) #66132
build:
  * (SEMVER-MAJOR) remove the bundled FIPS provider build (Filip Skokan) #64777
  * (SEMVER-MAJOR) require OpenSSL 3 or later (Filip Skokan) #64777
  * (SEMVER-MAJOR) downgrade Intel macOS support to experimental (Antoine du Hamel) #65427
crypto:
  * (SEMVER-MAJOR) move DEP0093 to End-of-Life (Filip Skokan) #64777
  * (SEMVER-MAJOR) remove legacy OpenSSL code paths (Filip Skokan) #64777
  * (SEMVER-MAJOR) validate digest output encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate update input encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate inputEncoding in Cipher/Decipher update (Maruthan G) #66247
  * (SEMVER-MAJOR) move DEP0198 to End-of-Life (Filip Skokan) #64000
  * (SEMVER-MAJOR) move DEP0203 and DEP0204 to End-of-Life (Filip Skokan) #63188
  * (SEMVER-MAJOR) reject resizable backing stores in Web Crypto buffer parameters (Filip Skokan) #63925
  * (SEMVER-MAJOR) throw on uninitialized DH computeSecret (Filip Skokan) #63922
  * (SEMVER-MAJOR) runtime-deprecate calling Hmac.digest() more than once (Madelyn) #63624
crypto,https,tls:
  * (SEMVER-MAJOR) end OpenSSL engine support (Filip Skokan) #64777
deps:
  * (SEMVER-MAJOR) update archs files for openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) upgrade openssl sources to openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) remove ncrypto legacy OpenSSL backend (Filip Skokan) #64777
  * (SEMVER-MAJOR) update V8 to 15.6.75.13 (Joyee Cheung) #66601
  * (SEMVER-MAJOR) update V8 to 15.5.35.20 (Joyee Cheung) #66537
  * (SEMVER-MAJOR) update V8 to 15.2.124.38 (Joyee Cheung) #65161
  * (SEMVER-MAJOR) upgrade npm to 12.1.0 (npm team) #66212
dgram:
  * (SEMVER-MAJOR) skip the custom lookup for literal IP addresses (Ruben Bridgewater) #64131
dns:
  * (SEMVER-MAJOR) do not consult hosts file in reverse lookups (Archkon) #64268
  * (SEMVER-MAJOR) stop using deprecated functions in `SetServers` (Antoine du Hamel) #64356
doc:
  * (SEMVER-MAJOR) remove OpenSSL 1.x references (Filip Skokan) #64777
  * (SEMVER-MAJOR) update Node.js 27 official binary toolchains (Richard Lau) #66377
domain:
  * (SEMVER-MAJOR) runtime-deprecate the module (Matteo Collina) #65074
  * (SEMVER-MAJOR) port to AsyncLocalStorage (Matteo Collina) #61095
fs:
  * (SEMVER-MAJOR) implement glob natively (Aviv Keller) #65392
  * (SEMVER-MAJOR) return Buffer from mkdtemp when prefix is a Buffer (Hamid Reza Ghavami) #64397
http:
  * (SEMVER-MAJOR) reject responses exceeding header limit (Matteo Collina) #65010
  * (SEMVER-MAJOR) runtime deprecate instantiating without new (Yagiz Nizipli) #64853
  * (SEMVER-MAJOR) increase keepAliveTimeout default to 65 seconds (Tim Perry) #62782
  * (SEMVER-MAJOR) make req.headers have a null prototype (Matteo Collina) #62900
  * (SEMVER-MAJOR) reject addTrailers after finish (Ryuhei Shima) #62832
http2:
  * (SEMVER-MAJOR) increase default window sizes (Matteo Collina) #64623
lib:
  * (SEMVER-MAJOR) deprecate _http_* (Sebastian Beltran) #58535
  * (SEMVER-MAJOR) insert argv[0] at argv[1] in setDeserializeMainFunction (Daijiro Wachi) #62928
  * (SEMVER-MAJOR) use `Object.freeze` to avoid defensive cloning in `SourceMap` (Daijiro Wachi) #62830
  * (SEMVER-MAJOR) reject SharedArrayBuffer in Blob constructor per spec (Ali Hassan) #63046
lib,src:
  * (SEMVER-MAJOR) remove `--no-experimental-websocket` CLI flag (Antoine du Hamel) #65284
net:
  * (SEMVER-MAJOR) race family autoselection attempts (Matteo Collina) #66229
  * (SEMVER-MAJOR) throw on multiple listen calls (Matteo Collina) #64871
  * (SEMVER-MAJOR) runtime-deprecate Server.prototype._listen2 (Guilherme Araújo) #64794
  * (SEMVER-MAJOR) add experimental net/promises API (Ethan Arrowood) #63965
repl:
  * (SEMVER-MAJOR) use inspector over vm (Aviv Keller) #64034
src:
  * (SEMVER-MAJOR) officially deprecate `node::ObjectWrap` (Anna Henningsen) #63756
  * (SEMVER-MAJOR) merge `CreateEnvironment()` overloads (Anna Henningsen) #63596
src, test:
src,lib:
  * (SEMVER-MAJOR) add --allow-env permission (James M Snell) #66132
stream:
  * (SEMVER-MAJOR) destroy source when map iterator closes early (Y1D7NG) #64264
test:
  * (SEMVER-MAJOR) fix fs write encoding coverage (Filip Skokan) #66247
test,benchmark:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-only coverage (Filip Skokan) #64777
test,tools:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-era FIPS leftovers (Filip Skokan) #64777
test_runner:
  * use AsyncLocalStorage instead of async_hooks (Matteo Collina) #66795
tls:
  * (SEMVER-MAJOR) move _tls_* to end-of-life (Sebastian Beltran) #60658
zlib:
  * (SEMVER-MAJOR) convert classes to modern syntax and eol DEP0184 (Yagiz Nizipli) #64849

PR-URL: #67062
RafaelGSS added a commit that referenced this pull request Oct 27, 2026
@RafaelGSS
2026-10-28, Version 27.0.0-alpha.0.0.0 (Alpha)
cdf632e
Notable changes:

async_hooks:
  * (SEMVER-MAJOR) remove legacy AsyncLocalStorage implementation (Matteo Collina) #63641
benchmark:
  * (SEMVER-MAJOR) protect against accidental fork bomb (James M Snell) #66132
build:
  * (SEMVER-MAJOR) remove the bundled FIPS provider build (Filip Skokan) #64777
  * (SEMVER-MAJOR) require OpenSSL 3 or later (Filip Skokan) #64777
  * (SEMVER-MAJOR) downgrade Intel macOS support to experimental (Antoine du Hamel) #65427
crypto:
  * (SEMVER-MAJOR) move DEP0093 to End-of-Life (Filip Skokan) #64777
  * (SEMVER-MAJOR) remove legacy OpenSSL code paths (Filip Skokan) #64777
  * (SEMVER-MAJOR) validate digest output encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate update input encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate inputEncoding in Cipher/Decipher update (Maruthan G) #66247
  * (SEMVER-MAJOR) move DEP0198 to End-of-Life (Filip Skokan) #64000
  * (SEMVER-MAJOR) move DEP0203 and DEP0204 to End-of-Life (Filip Skokan) #63188
  * (SEMVER-MAJOR) reject resizable backing stores in Web Crypto buffer parameters (Filip Skokan) #63925
  * (SEMVER-MAJOR) throw on uninitialized DH computeSecret (Filip Skokan) #63922
  * (SEMVER-MAJOR) runtime-deprecate calling Hmac.digest() more than once (Madelyn) #63624
crypto,https,tls:
  * (SEMVER-MAJOR) end OpenSSL engine support (Filip Skokan) #64777
deps:
  * (SEMVER-MAJOR) update archs files for openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) upgrade openssl sources to openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) remove ncrypto legacy OpenSSL backend (Filip Skokan) #64777
  * (SEMVER-MAJOR) update V8 to 15.6.75.13 (Joyee Cheung) #66601
  * (SEMVER-MAJOR) update V8 to 15.5.35.20 (Joyee Cheung) #66537
  * (SEMVER-MAJOR) update V8 to 15.2.124.38 (Joyee Cheung) #65161
  * (SEMVER-MAJOR) upgrade npm to 12.1.0 (npm team) #66212
dgram:
  * (SEMVER-MAJOR) skip the custom lookup for literal IP addresses (Ruben Bridgewater) #64131
dns:
  * (SEMVER-MAJOR) do not consult hosts file in reverse lookups (Archkon) #64268
  * (SEMVER-MAJOR) stop using deprecated functions in `SetServers` (Antoine du Hamel) #64356
doc:
  * (SEMVER-MAJOR) remove OpenSSL 1.x references (Filip Skokan) #64777
  * (SEMVER-MAJOR) update Node.js 27 official binary toolchains (Richard Lau) #66377
domain:
  * (SEMVER-MAJOR) runtime-deprecate the module (Matteo Collina) #65074
  * (SEMVER-MAJOR) port to AsyncLocalStorage (Matteo Collina) #61095
fs:
  * (SEMVER-MAJOR) implement glob natively (Aviv Keller) #65392
  * (SEMVER-MAJOR) return Buffer from mkdtemp when prefix is a Buffer (Hamid Reza Ghavami) #64397
http:
  * (SEMVER-MAJOR) reject responses exceeding header limit (Matteo Collina) #65010
  * (SEMVER-MAJOR) runtime deprecate instantiating without new (Yagiz Nizipli) #64853
  * (SEMVER-MAJOR) increase keepAliveTimeout default to 65 seconds (Tim Perry) #62782
  * (SEMVER-MAJOR) make req.headers have a null prototype (Matteo Collina) #62900
  * (SEMVER-MAJOR) reject addTrailers after finish (Ryuhei Shima) #62832
http2:
  * (SEMVER-MAJOR) increase default window sizes (Matteo Collina) #64623
lib:
  * (SEMVER-MAJOR) deprecate _http_* (Sebastian Beltran) #58535
  * (SEMVER-MAJOR) insert argv[0] at argv[1] in setDeserializeMainFunction (Daijiro Wachi) #62928
  * (SEMVER-MAJOR) use `Object.freeze` to avoid defensive cloning in `SourceMap` (Daijiro Wachi) #62830
  * (SEMVER-MAJOR) reject SharedArrayBuffer in Blob constructor per spec (Ali Hassan) #63046
lib,src:
  * (SEMVER-MAJOR) remove `--no-experimental-websocket` CLI flag (Antoine du Hamel) #65284
net:
  * (SEMVER-MAJOR) race family autoselection attempts (Matteo Collina) #66229
  * (SEMVER-MAJOR) throw on multiple listen calls (Matteo Collina) #64871
  * (SEMVER-MAJOR) runtime-deprecate Server.prototype._listen2 (Guilherme Araújo) #64794
  * (SEMVER-MAJOR) add experimental net/promises API (Ethan Arrowood) #63965
repl:
  * (SEMVER-MAJOR) use inspector over vm (Aviv Keller) #64034
src:
  * (SEMVER-MAJOR) officially deprecate `node::ObjectWrap` (Anna Henningsen) #63756
  * (SEMVER-MAJOR) merge `CreateEnvironment()` overloads (Anna Henningsen) #63596
src, test:
src,lib:
  * (SEMVER-MAJOR) add --allow-env permission (James M Snell) #66132
stream:
  * (SEMVER-MAJOR) destroy source when map iterator closes early (Y1D7NG) #64264
test:
  * (SEMVER-MAJOR) fix fs write encoding coverage (Filip Skokan) #66247
test,benchmark:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-only coverage (Filip Skokan) #64777
test,tools:
  * (SEMVER-MAJOR) drop OpenSSL 1.x-era FIPS leftovers (Filip Skokan) #64777
test_runner:
  * use AsyncLocalStorage instead of async_hooks (Matteo Collina) #66795
tls:
  * (SEMVER-MAJOR) move _tls_* to end-of-life (Sebastian Beltran) #60658
zlib:
  * (SEMVER-MAJOR) convert classes to modern syntax and eol DEP0184 (Yagiz Nizipli) #64849

PR-URL: #67062
RafaelGSS added a commit that referenced this pull request Oct 28, 2026
@RafaelGSS
2026-10-28, Version 27.0.0-alpha.0.0.0 (Alpha)
58de2e1
Notable changes:

build:
  * (SEMVER-MAJOR) remove the bundled FIPS provider build (Filip Skokan) #64777
  * (SEMVER-MAJOR) require OpenSSL 3 or later (Filip Skokan) #64777
  * (SEMVER-MAJOR) downgrade Intel macOS support to experimental (Antoine du Hamel) #65427
crypto:
  * (SEMVER-MAJOR) move DEP0093 to End-of-Life (Filip Skokan) #64777
  * (SEMVER-MAJOR) remove legacy OpenSSL code paths (Filip Skokan) #64777
  * (SEMVER-MAJOR) validate digest output encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate update input encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate inputEncoding in Cipher/Decipher update (Maruthan G) #66247
  * (SEMVER-MAJOR) move DEP0198 to End-of-Life (Filip Skokan) #64000
  * (SEMVER-MAJOR) move DEP0203 and DEP0204 to End-of-Life (Filip Skokan) #63188
  * (SEMVER-MAJOR) reject resizable backing stores in Web Crypto buffer parameters (Filip Skokan) #63925
  * (SEMVER-MAJOR) throw on uninitialized DH computeSecret (Filip Skokan) #63922
  * (SEMVER-MAJOR) runtime-deprecate calling Hmac.digest() more than once (Madelyn) #63624
crypto,https,tls:
  * (SEMVER-MAJOR) end OpenSSL engine support (Filip Skokan) #64777
deps:
  * (SEMVER-MAJOR) update archs files for openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) upgrade openssl sources to openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) remove ncrypto legacy OpenSSL backend (Filip Skokan) #64777
  * (SEMVER-MAJOR) update V8 to 15.6.75.13 (Joyee Cheung) #66601
  * (SEMVER-MAJOR) upgrade npm to 12.1.0 (npm team) #66212
dgram:
  * (SEMVER-MAJOR) skip the custom lookup for literal IP addresses (Ruben Bridgewater) #64131
dns:
  * (SEMVER-MAJOR) do not consult hosts file in reverse lookups (Archkon) #64268
  * (SEMVER-MAJOR) stop using deprecated functions in `SetServers` (Antoine du Hamel) #64356
doc:
  * (SEMVER-MAJOR) remove OpenSSL 1.x references (Filip Skokan) #64777
  * (SEMVER-MAJOR) update Node.js 27 official binary toolchains (Richard Lau) #66377
domain:
  * (SEMVER-MAJOR) runtime-deprecate the module (Matteo Collina) #65074
  * (SEMVER-MAJOR) port to AsyncLocalStorage (Matteo Collina) #61095
fs:
  * (SEMVER-MAJOR) implement glob natively (Aviv Keller) #65392
  * (SEMVER-MAJOR) return Buffer from mkdtemp when prefix is a Buffer (Hamid Reza Ghavami) #64397
http:
  * (SEMVER-MAJOR) reject responses exceeding header limit (Matteo Collina) #65010
  * (SEMVER-MAJOR) runtime deprecate instantiating without new (Yagiz Nizipli) #64853
  * (SEMVER-MAJOR) increase keepAliveTimeout default to 65 seconds (Tim Perry) #62782
  * (SEMVER-MAJOR) make req.headers have a null prototype (Matteo Collina) #62900
  * (SEMVER-MAJOR) reject addTrailers after finish (Ryuhei Shima) #62832
http2:
  * (SEMVER-MAJOR) increase default window sizes (Matteo Collina) #64623
lib:
  * (SEMVER-MAJOR) deprecate _http_* (Sebastian Beltran) #58535
  * (SEMVER-MAJOR) insert argv[0] at argv[1] in setDeserializeMainFunction (Daijiro Wachi) #62928
  * (SEMVER-MAJOR) use `Object.freeze` to avoid defensive cloning in `SourceMap` (Daijiro Wachi) #62830
  * (SEMVER-MAJOR) reject SharedArrayBuffer in Blob constructor per spec (Ali Hassan) #63046
lib,src:
  * (SEMVER-MAJOR) remove `--no-experimental-websocket` CLI flag (Antoine du Hamel) #65284
net:
  * (SEMVER-MAJOR) race family autoselection attempts (Matteo Collina) #66229
  * (SEMVER-MAJOR) throw on multiple listen calls (Matteo Collina) #64871
  * (SEMVER-MAJOR) runtime-deprecate Server.prototype._listen2 (Guilherme Araújo) #64794
  * (SEMVER-MAJOR) add experimental net/promises API (Ethan Arrowood) #63965
repl:
  * (SEMVER-MAJOR) use inspector over vm (Aviv Keller) #64034
src:
  * (SEMVER-MAJOR) officially deprecate `node::ObjectWrap` (Anna Henningsen) #63756
  * (SEMVER-MAJOR) merge `CreateEnvironment()` overloads (Anna Henningsen) #63596
src,lib:
  * (SEMVER-MAJOR) add --allow-env permission (James M Snell) #66132
stream:
  * (SEMVER-MAJOR) destroy source when map iterator closes early (Y1D7NG) #64264
test_runner:
  * use AsyncLocalStorage instead of async_hooks (Matteo Collina) #66795
tls:
  * (SEMVER-MAJOR) move _tls_* to end-of-life (Sebastian Beltran) #60658
zlib:
  * (SEMVER-MAJOR) convert classes to modern syntax and eol DEP0184 (Yagiz Nizipli) #64849

PR-URL: #67062
RafaelGSS added a commit that referenced this pull request Oct 29, 2026
@RafaelGSS
2026-10-29, Version 27.0.0-alpha.0.0.0 (Alpha)
fe34c8e
Notable changes:

build:
  * (SEMVER-MAJOR) remove the bundled FIPS provider build (Filip Skokan) #64777
  * (SEMVER-MAJOR) require OpenSSL 3 or later (Filip Skokan) #64777
  * (SEMVER-MAJOR) downgrade Intel macOS support to experimental (Antoine du Hamel) #65427
crypto:
  * (SEMVER-MAJOR) move DEP0093 to End-of-Life (Filip Skokan) #64777
  * (SEMVER-MAJOR) remove legacy OpenSSL code paths (Filip Skokan) #64777
  * (SEMVER-MAJOR) validate digest output encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate update input encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate inputEncoding in Cipher/Decipher update (Maruthan G) #66247
  * (SEMVER-MAJOR) move DEP0198 to End-of-Life (Filip Skokan) #64000
  * (SEMVER-MAJOR) move DEP0203 and DEP0204 to End-of-Life (Filip Skokan) #63188
  * (SEMVER-MAJOR) reject resizable backing stores in Web Crypto buffer parameters (Filip Skokan) #63925
  * (SEMVER-MAJOR) throw on uninitialized DH computeSecret (Filip Skokan) #63922
  * (SEMVER-MAJOR) runtime-deprecate calling Hmac.digest() more than once (Madelyn) #63624
crypto,https,tls:
  * (SEMVER-MAJOR) end OpenSSL engine support (Filip Skokan) #64777
deps:
  * (SEMVER-MAJOR) update archs files for openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) upgrade openssl sources to openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) remove ncrypto legacy OpenSSL backend (Filip Skokan) #64777
  * (SEMVER-MAJOR) update V8 to 15.6.75.13 (Joyee Cheung) #66601
  * (SEMVER-MAJOR) upgrade npm to 12.1.0 (npm team) #66212
dgram:
  * (SEMVER-MAJOR) skip the custom lookup for literal IP addresses (Ruben Bridgewater) #64131
dns:
  * (SEMVER-MAJOR) do not consult hosts file in reverse lookups (Archkon) #64268
  * (SEMVER-MAJOR) stop using deprecated functions in `SetServers` (Antoine du Hamel) #64356
doc:
  * (SEMVER-MAJOR) remove OpenSSL 1.x references (Filip Skokan) #64777
  * (SEMVER-MAJOR) update Node.js 27 official binary toolchains (Richard Lau) #66377
domain:
  * (SEMVER-MAJOR) runtime-deprecate the module (Matteo Collina) #65074
  * (SEMVER-MAJOR) port to AsyncLocalStorage (Matteo Collina) #61095
fs:
  * (SEMVER-MAJOR) implement glob natively (Aviv Keller) #65392
  * (SEMVER-MAJOR) return Buffer from mkdtemp when prefix is a Buffer (Hamid Reza Ghavami) #64397
http:
  * (SEMVER-MAJOR) reject responses exceeding header limit (Matteo Collina) #65010
  * (SEMVER-MAJOR) runtime deprecate instantiating without new (Yagiz Nizipli) #64853
  * (SEMVER-MAJOR) increase keepAliveTimeout default to 65 seconds (Tim Perry) #62782
  * (SEMVER-MAJOR) make req.headers have a null prototype (Matteo Collina) #62900
  * (SEMVER-MAJOR) reject addTrailers after finish (Ryuhei Shima) #62832
http2:
  * (SEMVER-MAJOR) increase default window sizes (Matteo Collina) #64623
lib:
  * (SEMVER-MAJOR) deprecate _http_* (Sebastian Beltran) #58535
  * (SEMVER-MAJOR) insert argv[0] at argv[1] in setDeserializeMainFunction (Daijiro Wachi) #62928
  * (SEMVER-MAJOR) use `Object.freeze` to avoid defensive cloning in `SourceMap` (Daijiro Wachi) #62830
  * (SEMVER-MAJOR) reject SharedArrayBuffer in Blob constructor per spec (Ali Hassan) #63046
lib,src:
  * (SEMVER-MAJOR) remove `--no-experimental-websocket` CLI flag (Antoine du Hamel) #65284
net:
  * (SEMVER-MAJOR) race family autoselection attempts (Matteo Collina) #66229
  * (SEMVER-MAJOR) throw on multiple listen calls (Matteo Collina) #64871
  * (SEMVER-MAJOR) runtime-deprecate Server.prototype._listen2 (Guilherme Araújo) #64794
  * (SEMVER-MAJOR) add experimental net/promises API (Ethan Arrowood) #63965
repl:
  * (SEMVER-MAJOR) use inspector over vm (Aviv Keller) #64034
src:
  * (SEMVER-MAJOR) officially deprecate `node::ObjectWrap` (Anna Henningsen) #63756
  * (SEMVER-MAJOR) merge `CreateEnvironment()` overloads (Anna Henningsen) #63596
src,lib:
  * (SEMVER-MAJOR) add --allow-env permission (James M Snell) #66132
stream:
  * (SEMVER-MAJOR) destroy source when map iterator closes early (Y1D7NG) #64264
test_runner:
  * use AsyncLocalStorage instead of async_hooks (Matteo Collina) #66795
tls:
  * (SEMVER-MAJOR) move _tls_* to end-of-life (Sebastian Beltran) #60658
zlib:
  * (SEMVER-MAJOR) convert classes to modern syntax and eol DEP0184 (Yagiz Nizipli) #64849

PR-URL: #67062
Signed-off-by: RafaelGSS <[email protected]>
RafaelGSS added a commit that referenced this pull request Oct 29, 2026
@RafaelGSS
2026-10-29, Version 27.0.0-alpha.0.0.0 (Alpha)
ee982db
Notable changes:

build:
  * (SEMVER-MAJOR) remove the bundled FIPS provider build (Filip Skokan) #64777
  * (SEMVER-MAJOR) require OpenSSL 3 or later (Filip Skokan) #64777
  * (SEMVER-MAJOR) downgrade Intel macOS support to experimental (Antoine du Hamel) #65427
crypto:
  * (SEMVER-MAJOR) move DEP0093 to End-of-Life (Filip Skokan) #64777
  * (SEMVER-MAJOR) remove legacy OpenSSL code paths (Filip Skokan) #64777
  * (SEMVER-MAJOR) validate digest output encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate update input encodings (Filip Skokan) #66247
  * (SEMVER-MAJOR) validate inputEncoding in Cipher/Decipher update (Maruthan G) #66247
  * (SEMVER-MAJOR) move DEP0198 to End-of-Life (Filip Skokan) #64000
  * (SEMVER-MAJOR) move DEP0203 and DEP0204 to End-of-Life (Filip Skokan) #63188
  * (SEMVER-MAJOR) reject resizable backing stores in Web Crypto buffer parameters (Filip Skokan) #63925
  * (SEMVER-MAJOR) throw on uninitialized DH computeSecret (Filip Skokan) #63922
  * (SEMVER-MAJOR) runtime-deprecate calling Hmac.digest() more than once (Madelyn) #63624
crypto,https,tls:
  * (SEMVER-MAJOR) end OpenSSL engine support (Filip Skokan) #64777
deps:
  * (SEMVER-MAJOR) update archs files for openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) upgrade openssl sources to openssl-4.1.0 (Node.js GitHub Bot) #66971
  * (SEMVER-MAJOR) remove ncrypto legacy OpenSSL backend (Filip Skokan) #64777
  * (SEMVER-MAJOR) update V8 to 15.6.75.13 (Joyee Cheung) #66601
  * (SEMVER-MAJOR) upgrade npm to 12.1.0 (npm team) #66212
dgram:
  * (SEMVER-MAJOR) skip the custom lookup for literal IP addresses (Ruben Bridgewater) #64131
dns:
  * (SEMVER-MAJOR) do not consult hosts file in reverse lookups (Archkon) #64268
  * (SEMVER-MAJOR) stop using deprecated functions in `SetServers` (Antoine du Hamel) #64356
doc:
  * (SEMVER-MAJOR) remove OpenSSL 1.x references (Filip Skokan) #64777
  * (SEMVER-MAJOR) update Node.js 27 official binary toolchains (Richard Lau) #66377
domain:
  * (SEMVER-MAJOR) runtime-deprecate the module (Matteo Collina) #65074
  * (SEMVER-MAJOR) port to AsyncLocalStorage (Matteo Collina) #61095
fs:
  * (SEMVER-MAJOR) implement glob natively (Aviv Keller) #65392
  * (SEMVER-MAJOR) return Buffer from mkdtemp when prefix is a Buffer (Hamid Reza Ghavami) #64397
http:
  * (SEMVER-MAJOR) reject responses exceeding header limit (Matteo Collina) #65010
  * (SEMVER-MAJOR) runtime deprecate instantiating without new (Yagiz Nizipli) #64853
  * (SEMVER-MAJOR) increase keepAliveTimeout default to 65 seconds (Tim Perry) #62782
  * (SEMVER-MAJOR) make req.headers have a null prototype (Matteo Collina) #62900
  * (SEMVER-MAJOR) reject addTrailers after finish (Ryuhei Shima) #62832
http2:
  * (SEMVER-MAJOR) increase default window sizes (Matteo Collina) #64623
lib:
  * (SEMVER-MAJOR) deprecate _http_* (Sebastian Beltran) #58535
  * (SEMVER-MAJOR) insert argv[0] at argv[1] in setDeserializeMainFunction (Daijiro Wachi) #62928
  * (SEMVER-MAJOR) use `Object.freeze` to avoid defensive cloning in `SourceMap` (Daijiro Wachi) #62830
  * (SEMVER-MAJOR) reject SharedArrayBuffer in Blob constructor per spec (Ali Hassan) #63046
lib,src:
  * (SEMVER-MAJOR) remove `--no-experimental-websocket` CLI flag (Antoine du Hamel) #65284
net:
  * (SEMVER-MAJOR) race family autoselection attempts (Matteo Collina) #66229
  * (SEMVER-MAJOR) throw on multiple listen calls (Matteo Collina) #64871
  * (SEMVER-MAJOR) runtime-deprecate Server.prototype._listen2 (Guilherme Araújo) #64794
  * (SEMVER-MAJOR) add experimental net/promises API (Ethan Arrowood) #63965
repl:
  * (SEMVER-MAJOR) use inspector over vm (Aviv Keller) #64034
src:
  * (SEMVER-MAJOR) officially deprecate `node::ObjectWrap` (Anna Henningsen) #63756
  * (SEMVER-MAJOR) merge `CreateEnvironment()` overloads (Anna Henningsen) #63596
src,lib:
  * (SEMVER-MAJOR) add --allow-env permission (James M Snell) #66132
stream:
  * (SEMVER-MAJOR) destroy source when map iterator closes early (Y1D7NG) #64264
test_runner:
  * use AsyncLocalStorage instead of async_hooks (Matteo Collina) #66795
tls:
  * (SEMVER-MAJOR) move _tls_* to end-of-life (Sebastian Beltran) #60658
zlib:
  * (SEMVER-MAJOR) convert classes to modern syntax and eol DEP0184 (Yagiz Nizipli) #64849

PR-URL: #67062
Signed-off-by: RafaelGSS <[email protected]>
This was referenced Nov 2, 2026
fs.glob: add the maxDepth option, with the match limit in the result set oven-sh/bun#47750
Open
fs.glob: answer maxDepth with a native depthFromRoot() oven-sh/bun#47832
Draft
@lmammino lmammino mentioned this pull request Nov 6, 2026
feat(blog): add What's new in Node.js 27 article nodejs-design-patterns-book/nodejsdesignpatterns.com#42
Merged
@robobun robobun mentioned this pull request Nov 12, 2026
fs.globSync: name Dirents relative to the working directory when cwd is omitted oven-sh/bun#48715
Open
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@mcollina mcollina mcollina approved these changes
@panva panva panva approved these changes
@jasnell jasnell jasnell approved these changes
@benjamingr benjamingr benjamingr approved these changes
@anonrig anonrig anonrig approved these changes
@gurgunday gurgunday gurgunday approved these changes
@RafaelGSS RafaelGSS Awaiting requested review from RafaelGSS

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. dependencies PRs that add, update, or configure Node.js dependencies. fs Issues and PRs related to file-system APIs and the fs module. meta Issues and PRs related to the general management of the project. needs-ci PRs that need a full CI run. performance Issues and PRs related to the performance of Node.js. semver-major PRs that contain breaking changes and should be released in the next major version.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

12 participants

@avivkeller @nodejs-github-bot @aduh95 @isaacs @mcollina @jasnell @stavalfi @louiellan @panva @benjamingr @anonrig @gurgunday
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.