pnpm/pnpm
### [`v7.32.0`](https://togithub.com/pnpm/pnpm/releases/tag/v7.32.0)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.31.0...v7.32.0)
#### Minor Changes
- Allow env variables to be specified with default values in `.npmrc`. This is a convention used by Yarn too.
Using `${NAME-fallback}` will return `fallback` if `NAME` isn't set. `${NAME:-fallback}` will return `fallback` if `NAME` isn't set, or is an empty string [#6018](https://togithub.com/pnpm/pnpm/issues/6018).
#### Patch Changes
- `pnpm config get ` returns empty when the value is a boolean
- Don't print an info message about linked dependencies if they are real linked dependencies specified via the `link:` protocol in `package.json`.
- Add -g to mismatch registries error info when original command has -g option [#6224](https://togithub.com/pnpm/pnpm/issues/6224).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.31.0`](https://togithub.com/pnpm/pnpm/releases/tag/v7.31.0)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.30.5...v7.31.0)
#### Minor Changes
- Add `ignore-workspace-cycles` to silence workspace cycle warning [#6308](https://togithub.com/pnpm/pnpm/pull/6308).
##### Patch Changes
- Registries are now passed to the preResolution hook.
- Repeat installation should work on a project that has a dependency with () chars in the scope name [#6348](https://togithub.com/pnpm/pnpm/issues/6348).
- Should report error summary as expected.
- Update `@yarnpkg/shell` to fix issues in the shell emulator [#6320](https://togithub.com/pnpm/pnpm/issues/6320).
- Installation should not fail when there is a local dependency that starts in a directory that starts with the `@` char [#6332](https://togithub.com/pnpm/pnpm/issues/6332).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.30.5`](https://togithub.com/pnpm/pnpm/releases/tag/v7.30.5)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.30.4...v7.30.5)
#### Patch Changes
- `pnpm audit` should work even if there are no `package.json` file, just a `pnpm-lock.yaml` file.
- Dedupe direct dependencies after hoisting.
- Don't remove automatically installed peer dependencies from the root workspace project, when `dedupe-peer-dependents` is `true` [#6154](https://togithub.com/pnpm/pnpm/issues/6154).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.30.4`](https://togithub.com/pnpm/pnpm/compare/v7.30.3...v7.30.4)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.30.3...v7.30.4)
### [`v7.30.3`](https://togithub.com/pnpm/pnpm/releases/tag/v7.30.3)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.30.2...v7.30.3)
#### Patch Changes
- Should use most specific override rule when multiple rules match the same target [#6210](https://togithub.com/pnpm/pnpm/issues/6210).
- Fix regression introduced in v7.30.1 [#6271](https://togithub.com/pnpm/pnpm/issues/6271).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.30.2`](https://togithub.com/pnpm/pnpm/compare/v7.30.1...v7.30.2)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.30.1...v7.30.2)
### [`v7.30.1`](https://togithub.com/pnpm/pnpm/releases/tag/v7.30.1)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.30.0...v7.30.1)
#### Patch Changes
- Don't write the `pnpm-lock.yaml` file if it has no changes and `pnpm install --frozen-lockfile` was executed [#6158](https://togithub.com/pnpm/pnpm/issues/6158).
- Fix git-hosted dependencies referenced via `git+ssh` that use semver selectors [#6239](https://togithub.com/pnpm/pnpm/pull/6239).
- When publish some package throws an error, the exit code should be non-zero [#5528](https://togithub.com/pnpm/pnpm/issues/5528).
- Only three paths are displayed in `pnpm audit` output [#6203](https://togithub.com/pnpm/pnpm/issues/6203)
- Aliased packages should be used to resolve peer dependencies too [#4301](https://togithub.com/pnpm/pnpm/issues/4301).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.30.0`](https://togithub.com/pnpm/pnpm/releases/tag/v7.30.0)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.29.3...v7.30.0)
#### Minor Changes
- Allow to set a custom directory for storing patch files via the `patches-dir` setting [#6215](https://togithub.com/pnpm/pnpm/pull/6215)
#### Patch Changes
- New directories should be prepended to NODE_PATH in command shims, not appended.
- Retry copying file on EBUSY error [#6201](https://togithub.com/pnpm/pnpm/issues/6201).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.29.3`](https://togithub.com/pnpm/pnpm/releases/tag/v7.29.3)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.29.2...v7.29.3)
#### Patch Changes
- Command shim should not set higher priority to the `node_modules/.pnpm/node_modules` directory through the `NODE_PATH` env variable, then the command's own `node_modules` directory [#5176](https://togithub.com/pnpm/pnpm/issues/5176).
- `extend-node-path` is set back to `true` by default. It was set to `false` in v7.29.2 in order to fix issues with multiple versions of Jest in one workspace. It has caused other issues, so now we keep extending `NODE_PATH`. We have fixed the Jest issue with a different solution [#6213](https://togithub.com/pnpm/pnpm/issues/6213).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.29.2`](https://togithub.com/pnpm/pnpm/compare/v7.29.1...v7.29.2)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.29.1...v7.29.2)
### [`v7.29.1`](https://togithub.com/pnpm/pnpm/releases/tag/v7.29.1)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.29.0...v7.29.1)
#### Patch Changes
- Settings related to authorization should be set/deleted by npm CLI [#6181](https://togithub.com/pnpm/pnpm/issues/6181).
#### Our Gold Sponsors
#### Our Silver Sponsors
### [`v7.29.0`](https://togithub.com/pnpm/pnpm/releases/tag/v7.29.0)
[Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.28.0...v7.29.0)
#### Minor Changes
- A new setting is now supported: `dedupe-peer-dependents`.
When this setting is set to `true`, packages with peer dependencies will be deduplicated after peers resolution.
For instance, let's say we have a workspace with two projects and both of them have `webpack` in their dependencies. `webpack` has `esbuild` in its optional peer dependencies, and one of the projects has `esbuild` in its dependencies. In this case, pnpm will link two instances of `webpack` to the `node_modules/.pnpm` directory: one with `esbuild` and another one without it:
node_modules
.pnpm
webpack@1.0.0_esbuild@1.0.0
webpack@1.0.0
project1
node_modules
webpack -> ../../node_modules/.pnpm/webpack@1.0.0/node_modules/webpack
project2
node_modules
webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
esbuild
This makes sense because `webpack` is used in two projects, and one of the projects doesn't have `esbuild`, so the two projects cannot share the same instance of `webpack`. However, this is not what most developers expect, especially since in a hoisted `node_modules`, there would only be one instance of `webpack`. Therefore, you may now use the `dedupe-peer-dependents` setting to deduplicate `webpack` when it has no conflicting peer dependencies (explanation at the end). In this case, if we set `dedupe-peer-dependents` to `true`, both projects will use the same `webpack` instance, which is the one that has `esbuild` resolved:
node_modules
.pnpm
webpack@1.0.0_esbuild@1.0.0
project1
node_modules
webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
project2
node_modules
webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
esbuild
**What are conflicting peer dependencies?** By conflicting peer dependencies we mean a scenario like the following one:
node_modules
.pnpm
webpack@1.0.0_react@16.0.0_esbuild@1.0.0
webpack@1.0.0_react@17.0.0
project1
node_modules
webpack -> ../../node_modules/.pnpm/webpack@1.0.0/node_modules/webpack
react (v17)
project2
node_modules
webpack -> ../../node_modules/.pnpm/webpack@1.0.0_esbuild@1.0.0/node_modules/webpack
esbuild
react (v16)
In this case, we cannot dedupe `webpack` as `webpack` has `react` in its peer dependencies and `react` is resolved from two different versions in the context of the two projects.
#### Patch Changes
- The configuration added by `pnpm setup` should check if the pnpm home directory is already in the PATH before adding to the PATH.
Before this change, this code was added to the shell:
```sh
export PNPM_HOME="$HOME/Library/pnpm"
export PATH="$PNPM_HOME:$PATH"
```
Now this will be added:
```sh
export PNPM_HOME="$HOME/Library/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
```
- Add `skipped` status in exec report summary when script is missing [#6139](https://togithub.com/pnpm/pnpm/pull/6139).
- `pnpm env -g` should fail with a meaningful error message if pnpm cannot find the pnpm home directory, which is the directory into which Node.js is installed.
- Should not throw an error when local dependency use file protocol [#6115](https://togithub.com/pnpm/pnpm/issues/6115).
- Fix the incorrect error block when subproject has been patched [#6183](https://togithub.com/pnpm/pnpm/issues/6183)
#### Our Gold Sponsors
#### Our Silver Sponsors
Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), 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 has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
7.28.0
->7.32.0
Release Notes
pnpm/pnpm
### [`v7.32.0`](https://togithub.com/pnpm/pnpm/releases/tag/v7.32.0) [Compare Source](https://togithub.com/pnpm/pnpm/compare/v7.31.0...v7.32.0) #### Minor Changes - Allow env variables to be specified with default values in `.npmrc`. This is a convention used by Yarn too. Using `${NAME-fallback}` will return `fallback` if `NAME` isn't set. `${NAME:-fallback}` will return `fallback` if `NAME` isn't set, or is an empty string [#6018](https://togithub.com/pnpm/pnpm/issues/6018). #### Patch Changes - `pnpm config getConfiguration
📅 Schedule: Branch creation - "every weekend" (UTC), 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 has been generated by Mend Renovate. View repository job log here.