SIGN IN SIGN UP

feat: graduate the linked install strategy from experimental to stable (#9674)

Removes the experimental designation from `install-strategy=linked`
(isolated mode): drops the install-time warning and the `(experimental)`
note in the config docs. `linked` is now a supported, opt-in install
strategy. The default stays `hoisted`.

## Why

`install-strategy=linked` (RFC-0042) has been experimental since it
shipped, warning on every install. It has since been hardened
extensively — the discrepancies tracked in #9608, plus ~50 earlier PRs,
are resolved — and it now produces hoisted-equivalent results across
`install`/`ci`/`ls`/`query`/`explain`/`audit`/`sbom`/`exec`/`run`/`link`/`uninstall`,
the supply-chain controls (`allow-scripts`/`allow-remote`/`allow-git`,
`--strict-allow-scripts`), and the v12 features (`npm patch`,
`packageExtensions`, `.npm-extension`), with a project lockfile
identical to hoisted. It has also been exercised against the [Gutenberg
monorepo](https://github.com/WordPress/gutenberg/pull/75814), which
powers the WordPress Block Editor. The experimental warning no longer
reflects its state.

## How

- `@npmcli/arborist` (`reify.js`): remove the `The "linked" install
strategy is EXPERIMENTAL and may contain bugs.` warning emitted on every
linked install.
- `@npmcli/config` (`definitions.js`): drop `(experimental)` from the
`install-strategy` description for `linked`.
- Regenerate the config docs snapshot to match.

The `node_modules/.store/` layout remains an internal implementation
detail. This does not change the default install strategy.

## References

- Hardening tracked in #9608
- RFC-0042 (isolated mode):
https://github.com/npm/rfcs/blob/main/accepted/0042-isolated-mode.md
M
Manzoor Wani committed
86416a626e4599791c5d8115ed08aa4369774844
Parent: 968e42f
Committed by GitHub <noreply@github.com> on 6/26/2026, 5:01:13 PM