v11.0.0-rc.2
Breaking Changes📦 pnpmView on GitHub →
⚠ 2 breaking✨ 5 features🐛 1 fixes🔧 14 symbols
Summary
This release removes several legacy configuration settings in favor of the unified `pmOnFail` setting and introduces the powerful `pnpm with` command for running specific pnpm versions. New native commands for managing package manager stars were also implemented.
⚠️ Breaking Changes
- The settings `managePackageManagerVersions`, `packageManagerStrict`, and `packageManagerStrictVersion` have been removed because their functionality is now entirely covered by the new `pmOnFail` setting.
- The `COREPACK_ENABLE_STRICT` environment variable is no longer honored; use the `pmOnFail` setting instead to control strictness behavior.
Migration Steps
- Replace usage of removed settings (`managePackageManagerVersions`, `packageManagerStrict`, `packageManagerStrictVersion`) with the new `pmOnFail` setting according to the following mapping: `managePackageManagerVersions: true` -> `pmOnFail: download` (default); `managePackageManagerVersions: false` -> `pmOnFail: ignore`; `packageManagerStrict: false` -> `pmOnFail: warn`; `packageManagerStrictVersion: true` -> `pmOnFail: error`; `COREPACK_ENABLE_STRICT=0` -> `pmOnFail: warn`.
- When using `pnpm init` with `init-package-manager` enabled, note that it now writes to `devEngines.packageManager` instead of `packageManager` in the root `package.json`.
✨ New Features
- Introduced the `pnpm with <version|current> <args...>` command to run pnpm at a specific version for a single invocation, bypassing project pins.
- Added the new `pmOnFail` setting to override the `onFail` behavior for `packageManager` and `devEngines.packageManager` (accepted values: `download`, `error`, `warn`, `ignore`).
- Added the new `runtimeOnFail` setting to override the `onFail` behavior of `devEngines.runtime` (and `engines.runtime`).
- Implemented native `star`, `unstar`, `stars`, and `whoami` commands.
- `pnpm dlx` and `pnpm create` now respect project-level security and trust policy settings (`minimumReleaseAge`, `trustPolicy`, etc.).
🐛 Bug Fixes
- `pnpm init` no longer adds the `devEngines.packageManager` field when run inside a workspace subpackage; it is now only added to the workspace root's `package.json`.
Affected Symbols
`managePackageManagerVersions` (setting removed)`packageManagerStrict` (setting removed)`packageManagerStrictVersion` (setting removed)`COREPACK_ENABLE_STRICT` (env var removed)`pmOnFail` (new setting)`pnpm with` (new command)`runtimeOnFail` (new setting)`star` (command added)`unstar` (command added)`stars` (command added)`whoami` (command added)`packageManager` (field behavior changed)`devEngines.packageManager` (field behavior changed)`devEngines.runtime` (field behavior affected by `runtimeOnFail`)