pnpm/pnpm (pnpm)
### [`v9.13.2`](https://redirect.github.com/pnpm/pnpm/compare/v9.13.1...v9.13.2)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.13.1...v9.13.2)
### [`v9.13.1`](https://redirect.github.com/pnpm/pnpm/compare/v9.13.0...v9.13.1)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.13.0...v9.13.1)
### [`v9.13.0`](https://redirect.github.com/pnpm/pnpm/compare/v9.12.3...v9.13.0)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.3...v9.13.0)
### [`v9.12.3`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9123)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.2...v9.12.3)
##### Patch Changes
- Don't purge `node_modules`, when typing "n" in the prompt that asks whether to remove `node_modules` before installation [#8655](https://redirect.github.com/pnpm/pnpm/pull/8655).
- Fix a bug causing pnpm to infinitely spawn itself when `manage-package-manager-versions=true` is set and the `.tools` directory is corrupt.
- Use `crypto.hash`, when available, for improved performance [#8629](https://redirect.github.com/pnpm/pnpm/pull/8629).
- Fixed a race condition in temporary file creation in the store by including worker thread ID in filename. Previously, multiple worker threads could attempt to use the same temporary file. Temporary files now include both process ID and thread ID for uniqueness [#8703](https://redirect.github.com/pnpm/pnpm/pull/8703).
- All commands should read settings from the `package.json` at the root of the workspace [#8667](https://redirect.github.com/pnpm/pnpm/issues/8667).
- When `manage-package-manager-versions` is set to `true`, errors spawning a self-managed version of `pnpm` will now be shown (instead of being silent).
- Pass the find command to npm, it is an alias for npm search
### [`v9.12.2`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9122)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.1...v9.12.2)
##### Patch Changes
- When checking whether a file in the store has executable permissions, the new approach checks if at least one of the executable bits (owner, group, and others) is set to 1. Previously, a file was incorrectly considered executable only when all the executable bits were set to 1. This fix ensures that files with any executable permission, regardless of the user class, are now correctly identified as executable [#8546](https://redirect.github.com/pnpm/pnpm/issues/8546).
### [`v9.12.1`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9121)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.0...v9.12.1)
##### Patch Changes
- `pnpm update --latest` should not update the automatically installed peer dependencies [#6657](https://redirect.github.com/pnpm/pnpm/issues/6657).
- `pnpm publish` should be able to publish from a local tarball [#7950](https://redirect.github.com/pnpm/pnpm/issues/7950).
- The pnpx command should work correctly on Windows, when pnpm is installed via the standalone installation script [#8608](https://redirect.github.com/pnpm/pnpm/pull/8608).
- Prevent `EBUSY` errors caused by creating symlinks in parallel `dlx` processes [#8604](https://redirect.github.com/pnpm/pnpm/pull/8604).
- Fix maximum call stack size exceeded error related to circular workspace dependencies [#8599](https://redirect.github.com/pnpm/pnpm/pull/8599).
### [`v9.12.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9120)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.11.0...v9.12.0)
##### Minor Changes
- Fix peer dependency resolution dead lock [#8570](https://redirect.github.com/pnpm/pnpm/issues/8570). This change might change some of the keys in the `snapshots` field inside `pnpm-lock.yaml` but it should happen very rarely.
- `pnpm outdated` command supports now a `--sort-by=name` option for sorting outdated dependencies by package name [#8523](https://redirect.github.com/pnpm/pnpm/pull/8523).
- Added the ability for `overrides` to remove dependencies by specifying `"-"` as the field value [#8572](https://redirect.github.com/pnpm/pnpm/issues/8572). For example, to remove `lodash` from the dependencies, use this configuration in `package.json`:
```json
{
"pnpm": {
"overrides": {
"lodash": "-"
}
}
}
```
##### Patch Changes
- Fixed an issue where `pnpm list --json pkg` showed `"private": false` for a private package [#8519](https://redirect.github.com/pnpm/pnpm/issues/8519).
- Packages with `libc` that differ from `pnpm.supportedArchitectures.libc` are not downloaded [#7362](https://redirect.github.com/pnpm/pnpm/issues/7362).
- Prevent `ENOENT` errors caused by running `store prune` in parallel [#8586](https://redirect.github.com/pnpm/pnpm/pull/8586).
- Add issues alias to `pnpm bugs` [#8596](https://redirect.github.com/pnpm/pnpm/pull/8596).
### [`v9.11.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9110)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.10.0...v9.11.0)
##### Minor Changes
- Experimental: added `pnpm cache` commands for inspecting the metadata cache [#8512](https://redirect.github.com/pnpm/pnpm/pull/8512).
##### Patch Changes
- Fix a regression in which `pnpm deploy` with `node-linker=hoisted` produces an empty `node_modules` directory [#6682](https://redirect.github.com/pnpm/pnpm/issues/6682).
- Don't print a warning when linking packages globally [#4761](https://redirect.github.com/pnpm/pnpm/issues/4761).
- `pnpm deploy` should work in workspace with `shared-workspace-lockfile=false` [#8475](https://redirect.github.com/pnpm/pnpm/issues/8475).
### [`v9.10.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9100)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.9.0...v9.10.0)
##### Minor Changes
- Support for a new CLI flag, `--exclude-peers`, added to the `list` and `why` commands. When `--exclude-peers` is used, peer dependencies are not printed in the results, but dependencies of peer dependencies are still scanned [#8506](https://redirect.github.com/pnpm/pnpm/pull/8506).
- Added a new setting to `package.json` at `pnpm.auditConfig.ignoreGhsas` for ignoring vulnerabilities by their GHSA code [#6838](https://redirect.github.com/pnpm/pnpm/issues/6838).
For instance:
```json
{
"pnpm": {
"auditConfig": {
"ignoreGhsas": [
"GHSA-42xw-2xvc-qx8m",
"GHSA-4w2v-q235-vp99",
"GHSA-cph5-m8f7-6c5x",
"GHSA-vh95-rmgr-6w4m"
]
}
}
}
```
##### Patch Changes
- Throw an exception if pnpm switches to the same version of itself.
- Reduce memory usage during peer dependencies resolution.
### [`v9.9.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#990)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.8.0...v9.9.0)
##### Minor Changes
- **Minor breaking change.** This change might result in resolving your peer dependencies slightly differently but we don't expect it to introduce issues.
We had to optimize how we resolve peer dependencies in order to fix some [infinite loops and out-of-memory errors during peer dependencies resolution](https://redirect.github.com/pnpm/pnpm/issues/8370).
When a peer dependency is a prod dependency somewhere in the dependency graph (with the same version), pnpm will resolve the peers of that peer dependency in the same way across the subgraph.
For example, we have `react-dom` in the peer deps of the `form` and `button` packages. `card` has `react-dom` and `react` as regular dependencies and `card` is a dependency of `form`.
These are the direct dependencies of our example project:
form
react@16
react-dom@16
These are the dependencies of card:
button
react@17
react-dom@16
When resolving peers, pnpm will not re-resolve `react-dom` for `card`, even though `card` shadows `react@16` from the root with `react@17`. So, all 3 packages (`form`, `card`, and `button`) will use `react-dom@16`, which in turn uses `react@16`. `form` will use `react@16`, while `card` and `button` will use `react@17`.
Before this optimization `react-dom@16` was duplicated for the `card`, so that `card` and `button` would use a `react-dom@16` instance that uses `react@17`.
Before the change:
form
-> react-dom@16(react@16)
-> react@16
card
-> react-dom@16(react@17)
-> react@17
button
-> react-dom@16(react@17)
-> react@17
After the change
form
-> react-dom@16(react@16)
-> react@16
card
-> react-dom@16(react@16)
-> react@17
button
-> react-dom@16(react@16)
-> react@17
##### Patch Changes
- `pnpm deploy` should write the `node_modules/.modules.yaml` to the `node_modules` directory within the deploy directory [#7731](https://redirect.github.com/pnpm/pnpm/issues/7731).
- Don't override a symlink in `node_modules` if it already points to the right location [pnpm/symlink-dir#54](https://redirect.github.com/pnpm/symlink-dir/pull/54).
### [`v9.8.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#980)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.7.1...v9.8.0)
##### Minor Changes
- Added a new command for upgrading pnpm itself when it isn't managed by Corepack: `pnpm self-update`. This command will work, when pnpm was installed via the standalone script from the [pnpm installation page](https://pnpm.io/installation#using-a-standalone-script) [#8424](https://redirect.github.com/pnpm/pnpm/pull/8424).
When executed in a project that has a `packageManager` field in its `package.json` file, pnpm will update its version in the `packageManager` field.
##### Patch Changes
- CLI tools installed in the root of the workspace should be added to the PATH, when running scripts and `use-node-version` is set.
- `pnpm setup` should never switch to another version of pnpm.
This fixes installation with the standalone script from a directory that has a `package.json` with the `packageManager` field. pnpm was installing the version of pnpm specified in the `packageManager` field due to this issue.
- Ignore non-string value in the os, cpu, libc fields, which checking optional dependencies [#8431](https://redirect.github.com/pnpm/pnpm/pull/8431).
- Remember the state of edit dir, allow running `pnpm patch-commit` the second time without having to re-run `pnpm patch`.
### [`v9.7.1`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#971)
[Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.7.0...v9.7.1)
##### Patch Changes
- Fixed passing `public-hoist-pattern` and `hoist-pattern` via env variables [#8339](https://redirect.github.com/pnpm/pnpm/issues/8339).
- `pnpm setup` no longer creates Batch/Powershell scripts on Linux and macOS [#8418](https://redirect.github.com/pnpm/pnpm/pull/8418).
- When dlx uses cache, use the real directory path not the symlink to the cache [#8421](https://redirect.github.com/pnpm/pnpm/pull/8421).
- `pnpm exec` now supports executionEnv [#8356](https://redirect.github.com/pnpm/pnpm/issues/8356).
- Remove warnings for non-root `pnpm` field, add warnings for non-root `pnpm` subfields that aren't `executionEnv` [#8143](https://redirect.github.com/pnpm/pnpm/issues/8413).
- Replace semver in "peerDependency" with workspace protocol [#8355](https://redirect.github.com/pnpm/pnpm/issues/8355).
- Fix a bug in `patch-commit` in which relative path is rejected [#8405](https://redirect.github.com/pnpm/pnpm/pull/8405).
- Update Node.js in `@pnpm/exe` to v20.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
9.7.0
->9.13.2
Release Notes
pnpm/pnpm (pnpm)
### [`v9.13.2`](https://redirect.github.com/pnpm/pnpm/compare/v9.13.1...v9.13.2) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.13.1...v9.13.2) ### [`v9.13.1`](https://redirect.github.com/pnpm/pnpm/compare/v9.13.0...v9.13.1) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.13.0...v9.13.1) ### [`v9.13.0`](https://redirect.github.com/pnpm/pnpm/compare/v9.12.3...v9.13.0) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.3...v9.13.0) ### [`v9.12.3`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9123) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.2...v9.12.3) ##### Patch Changes - Don't purge `node_modules`, when typing "n" in the prompt that asks whether to remove `node_modules` before installation [#8655](https://redirect.github.com/pnpm/pnpm/pull/8655). - Fix a bug causing pnpm to infinitely spawn itself when `manage-package-manager-versions=true` is set and the `.tools` directory is corrupt. - Use `crypto.hash`, when available, for improved performance [#8629](https://redirect.github.com/pnpm/pnpm/pull/8629). - Fixed a race condition in temporary file creation in the store by including worker thread ID in filename. Previously, multiple worker threads could attempt to use the same temporary file. Temporary files now include both process ID and thread ID for uniqueness [#8703](https://redirect.github.com/pnpm/pnpm/pull/8703). - All commands should read settings from the `package.json` at the root of the workspace [#8667](https://redirect.github.com/pnpm/pnpm/issues/8667). - When `manage-package-manager-versions` is set to `true`, errors spawning a self-managed version of `pnpm` will now be shown (instead of being silent). - Pass the find command to npm, it is an alias for npm search ### [`v9.12.2`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9122) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.1...v9.12.2) ##### Patch Changes - When checking whether a file in the store has executable permissions, the new approach checks if at least one of the executable bits (owner, group, and others) is set to 1. Previously, a file was incorrectly considered executable only when all the executable bits were set to 1. This fix ensures that files with any executable permission, regardless of the user class, are now correctly identified as executable [#8546](https://redirect.github.com/pnpm/pnpm/issues/8546). ### [`v9.12.1`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9121) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.12.0...v9.12.1) ##### Patch Changes - `pnpm update --latest` should not update the automatically installed peer dependencies [#6657](https://redirect.github.com/pnpm/pnpm/issues/6657). - `pnpm publish` should be able to publish from a local tarball [#7950](https://redirect.github.com/pnpm/pnpm/issues/7950). - The pnpx command should work correctly on Windows, when pnpm is installed via the standalone installation script [#8608](https://redirect.github.com/pnpm/pnpm/pull/8608). - Prevent `EBUSY` errors caused by creating symlinks in parallel `dlx` processes [#8604](https://redirect.github.com/pnpm/pnpm/pull/8604). - Fix maximum call stack size exceeded error related to circular workspace dependencies [#8599](https://redirect.github.com/pnpm/pnpm/pull/8599). ### [`v9.12.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9120) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.11.0...v9.12.0) ##### Minor Changes - Fix peer dependency resolution dead lock [#8570](https://redirect.github.com/pnpm/pnpm/issues/8570). This change might change some of the keys in the `snapshots` field inside `pnpm-lock.yaml` but it should happen very rarely. - `pnpm outdated` command supports now a `--sort-by=name` option for sorting outdated dependencies by package name [#8523](https://redirect.github.com/pnpm/pnpm/pull/8523). - Added the ability for `overrides` to remove dependencies by specifying `"-"` as the field value [#8572](https://redirect.github.com/pnpm/pnpm/issues/8572). For example, to remove `lodash` from the dependencies, use this configuration in `package.json`: ```json { "pnpm": { "overrides": { "lodash": "-" } } } ``` ##### Patch Changes - Fixed an issue where `pnpm list --json pkg` showed `"private": false` for a private package [#8519](https://redirect.github.com/pnpm/pnpm/issues/8519). - Packages with `libc` that differ from `pnpm.supportedArchitectures.libc` are not downloaded [#7362](https://redirect.github.com/pnpm/pnpm/issues/7362). - Prevent `ENOENT` errors caused by running `store prune` in parallel [#8586](https://redirect.github.com/pnpm/pnpm/pull/8586). - Add issues alias to `pnpm bugs` [#8596](https://redirect.github.com/pnpm/pnpm/pull/8596). ### [`v9.11.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9110) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.10.0...v9.11.0) ##### Minor Changes - Experimental: added `pnpm cache` commands for inspecting the metadata cache [#8512](https://redirect.github.com/pnpm/pnpm/pull/8512). ##### Patch Changes - Fix a regression in which `pnpm deploy` with `node-linker=hoisted` produces an empty `node_modules` directory [#6682](https://redirect.github.com/pnpm/pnpm/issues/6682). - Don't print a warning when linking packages globally [#4761](https://redirect.github.com/pnpm/pnpm/issues/4761). - `pnpm deploy` should work in workspace with `shared-workspace-lockfile=false` [#8475](https://redirect.github.com/pnpm/pnpm/issues/8475). ### [`v9.10.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9100) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.9.0...v9.10.0) ##### Minor Changes - Support for a new CLI flag, `--exclude-peers`, added to the `list` and `why` commands. When `--exclude-peers` is used, peer dependencies are not printed in the results, but dependencies of peer dependencies are still scanned [#8506](https://redirect.github.com/pnpm/pnpm/pull/8506). - Added a new setting to `package.json` at `pnpm.auditConfig.ignoreGhsas` for ignoring vulnerabilities by their GHSA code [#6838](https://redirect.github.com/pnpm/pnpm/issues/6838). For instance: ```json { "pnpm": { "auditConfig": { "ignoreGhsas": [ "GHSA-42xw-2xvc-qx8m", "GHSA-4w2v-q235-vp99", "GHSA-cph5-m8f7-6c5x", "GHSA-vh95-rmgr-6w4m" ] } } } ``` ##### Patch Changes - Throw an exception if pnpm switches to the same version of itself. - Reduce memory usage during peer dependencies resolution. ### [`v9.9.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#990) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.8.0...v9.9.0) ##### Minor Changes - **Minor breaking change.** This change might result in resolving your peer dependencies slightly differently but we don't expect it to introduce issues. We had to optimize how we resolve peer dependencies in order to fix some [infinite loops and out-of-memory errors during peer dependencies resolution](https://redirect.github.com/pnpm/pnpm/issues/8370). When a peer dependency is a prod dependency somewhere in the dependency graph (with the same version), pnpm will resolve the peers of that peer dependency in the same way across the subgraph. For example, we have `react-dom` in the peer deps of the `form` and `button` packages. `card` has `react-dom` and `react` as regular dependencies and `card` is a dependency of `form`. These are the direct dependencies of our example project: form react@16 react-dom@16 These are the dependencies of card: button react@17 react-dom@16 When resolving peers, pnpm will not re-resolve `react-dom` for `card`, even though `card` shadows `react@16` from the root with `react@17`. So, all 3 packages (`form`, `card`, and `button`) will use `react-dom@16`, which in turn uses `react@16`. `form` will use `react@16`, while `card` and `button` will use `react@17`. Before this optimization `react-dom@16` was duplicated for the `card`, so that `card` and `button` would use a `react-dom@16` instance that uses `react@17`. Before the change: form -> react-dom@16(react@16) -> react@16 card -> react-dom@16(react@17) -> react@17 button -> react-dom@16(react@17) -> react@17 After the change form -> react-dom@16(react@16) -> react@16 card -> react-dom@16(react@16) -> react@17 button -> react-dom@16(react@16) -> react@17 ##### Patch Changes - `pnpm deploy` should write the `node_modules/.modules.yaml` to the `node_modules` directory within the deploy directory [#7731](https://redirect.github.com/pnpm/pnpm/issues/7731). - Don't override a symlink in `node_modules` if it already points to the right location [pnpm/symlink-dir#54](https://redirect.github.com/pnpm/symlink-dir/pull/54). ### [`v9.8.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#980) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.7.1...v9.8.0) ##### Minor Changes - Added a new command for upgrading pnpm itself when it isn't managed by Corepack: `pnpm self-update`. This command will work, when pnpm was installed via the standalone script from the [pnpm installation page](https://pnpm.io/installation#using-a-standalone-script) [#8424](https://redirect.github.com/pnpm/pnpm/pull/8424). When executed in a project that has a `packageManager` field in its `package.json` file, pnpm will update its version in the `packageManager` field. ##### Patch Changes - CLI tools installed in the root of the workspace should be added to the PATH, when running scripts and `use-node-version` is set. - `pnpm setup` should never switch to another version of pnpm. This fixes installation with the standalone script from a directory that has a `package.json` with the `packageManager` field. pnpm was installing the version of pnpm specified in the `packageManager` field due to this issue. - Ignore non-string value in the os, cpu, libc fields, which checking optional dependencies [#8431](https://redirect.github.com/pnpm/pnpm/pull/8431). - Remember the state of edit dir, allow running `pnpm patch-commit` the second time without having to re-run `pnpm patch`. ### [`v9.7.1`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#971) [Compare Source](https://redirect.github.com/pnpm/pnpm/compare/v9.7.0...v9.7.1) ##### Patch Changes - Fixed passing `public-hoist-pattern` and `hoist-pattern` via env variables [#8339](https://redirect.github.com/pnpm/pnpm/issues/8339). - `pnpm setup` no longer creates Batch/Powershell scripts on Linux and macOS [#8418](https://redirect.github.com/pnpm/pnpm/pull/8418). - When dlx uses cache, use the real directory path not the symlink to the cache [#8421](https://redirect.github.com/pnpm/pnpm/pull/8421). - `pnpm exec` now supports executionEnv [#8356](https://redirect.github.com/pnpm/pnpm/issues/8356). - Remove warnings for non-root `pnpm` field, add warnings for non-root `pnpm` subfields that aren't `executionEnv` [#8143](https://redirect.github.com/pnpm/pnpm/issues/8413). - Replace semver in "peerDependency" with workspace protocol [#8355](https://redirect.github.com/pnpm/pnpm/issues/8355). - Fix a bug in `patch-commit` in which relative path is rejected [#8405](https://redirect.github.com/pnpm/pnpm/pull/8405). - Update Node.js in `@pnpm/exe` to v20.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.