Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

cli: add --enable-all-experimentals build flag#62755

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainnodejs/node:mainfrom
ShogunPanda:experimental-flagShogunPanda/node:experimental-flagCopy head branch name to clipboard
Apr 20, 2026
Merged

cli: add --enable-all-experimentals build flag#62755
nodejs-github-bot merged 1 commit into
nodejs:mainnodejs/node:mainfrom
ShogunPanda:experimental-flagShogunPanda/node:experimental-flagCopy head branch name to clipboard

Conversation

@ShogunPanda

@ShogunPanda ShogunPanda commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

This PR adds a new --enable-all-experimentals BUILD flag which can be used to turn ALL experimental features on by default.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/config
  • @nodejs/inspector

@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels Apr 15, 2026
@aduh95

aduh95 commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

That seems like a bad idea; if you want to avoid long commands, use a config file, no?

@marco-ippolito

Copy link
Copy Markdown
Member

why would you want to enable ALL experimental flags? It might have side effects the user is not aware of

@ShogunPanda

Copy link
Copy Markdown
Contributor Author

I can document this to be very bad or dangerous.
But I find myself something struggling to remember all the experimental flags I need to enabled.
Also, one thing: can we please start treating users as adults: adding a global flag won't make the runtime more dangerous, to be honest.

@ShogunPanda

Copy link
Copy Markdown
Contributor Author

That seems like a bad idea; if you want to avoid long commands, use a config file, no?

Just to enable a bunch of experimental flags you have to create a JSON file with schema and so forth. Seems to be a little overkill.

@marco-ippolito marco-ippolito left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Making my objection explicit. The node.config.json exists for this specific reason: improve the dx of having a lot of cli flags. I cannot think a use case where you want to enable all experimental flags. This might cause unexpected effects because the interaction between multiple experimental flag is untested. I'd rather have user write a json file than a dangerous "free for all flag"

@ShogunPanda

Copy link
Copy Markdown
Contributor Author

@marco-ippolito I understand your concerns. I disagree, which is totally fine.
Do you think that explicitly stating that is dangerous and also listing out which flags it enables would lift your objection?

@aduh95

aduh95 commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

An alternative would be a build/configure flag, would that work for you?

@marco-ippolito

Copy link
Copy Markdown
Member

An alternative would be a build/configure flag, would that work for you?

I'm fine with a build flag

@ShogunPanda

Copy link
Copy Markdown
Contributor Author

An alternative would be a build/configure flag, would that work for you?

Do you mean a configure flag that enables the CLI flag on C++ side so that only people with custom build will see it?

If that's the idea, I'm up for it. Good idea. @marco-ippolito Would it solve your objection?

@ShogunPanda

Copy link
Copy Markdown
Contributor Author

Amazing. Updating this soon.

@marco-ippolito

marco-ippolito commented Apr 15, 2026

Copy link
Copy Markdown
Member

An alternative would be a build/configure flag, would that work for you?

Do you mean a configure flag that enables the CLI flag on C++ side so that only people with custom build will see it?

If that's the idea, I'm up for it. Good idea. @marco-ippolito Would it solve your objection?

yes, I'm fine with it, would be nice to actually have them enabled without a runtime flag (just the build flag) so you can run the test suite and test the interaction among all the experimental features.
This PR only enables an arbitrary subset of experimental features though, not all of them

@codecov

codecov Bot commented Apr 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.69%. Comparing base (320b450) to head (b7989e3).
⚠️ Report is 16 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #62755   +/-   ##
=======================================
  Coverage   89.69%   89.69%           
=======================================
  Files         706      706           
  Lines      218270   218270           
  Branches    41777    41783    +6     
=======================================
+ Hits       195774   195782    +8     
+ Misses      14404    14395    -9     
- Partials     8092     8093    +1     
Files with missing lines Coverage Δ
src/node_options.h 97.98% <100.00%> (ø)

... and 23 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.

@ShogunPanda ShogunPanda changed the title cli: add --experimental flag cli: add --experimental build flag Apr 15, 2026
@ShogunPanda

Copy link
Copy Markdown
Contributor Author

@marco-ippolito @aduh95 Updated now. WDYT?

Comment thread src/node_options.h Outdated
Comment thread configure.py Outdated
@ShogunPanda ShogunPanda changed the title cli: add --experimental build flag cli: add --enable-all-experimentals build flag Apr 16, 2026
@marco-ippolito marco-ippolito dismissed their stale review April 16, 2026 09:43

Changed applied

Comment thread common.gypi Outdated
Comment thread common.gypi Outdated
@ShogunPanda

Copy link
Copy Markdown
Contributor Author

@aduh95 How about now?

@richardlau

Copy link
Copy Markdown
Member

Subsystem should be build instead of cli after the implementation switch 🙂.

Signed-off-by: Paolo Insogna <paolo@cowtech.it>
@ShogunPanda

Copy link
Copy Markdown
Contributor Author

@richardlau Fixed.
@aduh95 Fixed as well.

Are we good to merge?

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@mcollina mcollina left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm

@ShogunPanda ShogunPanda added commit-queue Add this label to land a pull request using GitHub Actions. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. labels Apr 20, 2026
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Apr 20, 2026
@nodejs-github-bot nodejs-github-bot merged commit 7560670 into nodejs:main Apr 20, 2026
67 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in 7560670

@ShogunPanda ShogunPanda deleted the experimental-flag branch April 20, 2026 09:31
aduh95 pushed a commit that referenced this pull request May 5, 2026
Signed-off-by: Paolo Insogna <paolo@cowtech.it>
PR-URL: #62755
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
araujogui pushed a commit to araujogui/node that referenced this pull request May 26, 2026
Signed-off-by: Paolo Insogna <paolo@cowtech.it>
PR-URL: nodejs#62755
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Issues and PRs that require attention from people who are familiar with C++. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.