Change8

v11.0.0-rc.2

Breaking Changes
📦 pnpmView on GitHub →
2 breaking5 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

  1. 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`.
  2. 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