Skip to content

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 4, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
pnpm (source) 10.13.1 -> 10.18.3 age adoption passing confidence

Release Notes

pnpm/pnpm (pnpm)

v10.18.3

Compare Source

Patch Changes
  • Fix a bug where pnpm would infinitely recurse when using verifyDepsBeforeInstall: install and pre/post install scripts that called other pnpm scripts #​10060.
  • Fixed scoped registry keys (e.g., @scope:registry) being parsed as property paths in pnpm config get when --location=project is used #​9362.
  • Remove pnpm-specific CLI options before passing to npm publish to prevent "Unknown cli config" warnings #​9646.
  • Fixed EISDIR error when bin field points to a directory #​9441.
  • Preserve version and hasBin for variations packages #​10022.
  • Fixed pnpm config set --location=project incorrectly handling keys with slashes (auth tokens, registry settings) #​9884.
  • When both pnpm-workspace.yaml and .npmrc exist, pnpm config set --location=project now writes to pnpm-workspace.yaml (matching read priority) #​10072.
  • Prevent a table width error in pnpm outdated --long #​10040.
  • Sync bin links after injected dependencies are updated by build scripts. This ensures that binaries created during build processes are properly linked and accessible to consuming projects #​10057.

v10.18.2

Compare Source

Patch Changes
  • pnpm outdated --long should work #​10040.
  • Replace ndjson with split2. Reduce the bundle size of pnpm CLI #​10054.
  • pnpm dlx should request the full metadata of packages, when minimumReleaseAge is set #​9963.
  • pnpm version switching should work when the pnpm home directory is in a symlinked directory #​9715.
  • Fix EPIPE errors when piping output to other commands #​10027.

v10.18.1

Compare Source

Patch Changes
  • Don't print a warning, when --lockfile-only is used #​8320.
  • pnpm setup creates a command shim to the pnpm executable. This is needed to be able to run pnpm self-update on Windows #​5700.
  • When using pnpm catalogs and running a normal pnpm install, pnpm produced false positive warnings for "skip adding to the default catalog because it already exists". This warning now only prints when using pnpm add --save-catalog as originally intended.

v10.18.0

Compare Source

Minor Changes
  • Added network performance monitoring to pnpm by implementing warnings for slow network requests, including both metadata fetches and tarball downloads.

    Added configuration options for warning thresholds: fetchWarnTimeoutMs and fetchMinSpeedKiBps.
    Warning messages are displayed when requests exceed time thresholds or fall below speed minimums

    Related PR: #​10025.

Patch Changes
  • Retry filesystem operations on EAGAIN errors #​9959.
  • Outdated command respects minimumReleaseAge configuration #​10030.
  • Correctly apply the cleanupUnusedCatalogs configuration when removing dependent packages.
  • Don't fail with a meaningless error when scriptShell is set to false #​8748.
  • pnpm dlx should not fail when minimumReleaseAge is set #​10037.

v10.17.1

Compare Source

Patch Changes
  • When a version specifier cannot be resolved because the versions don't satisfy the minimumReleaseAge setting, print this information out in the error message #​9974.
  • Fix state.json creation path when executing pnpm patch in a workspace project #​9733.
  • When minimumReleaseAge is set and the latest tag is not mature enough, prefer a non-deprecated version as the new latest #​9987.

v10.17.0

Compare Source

Minor Changes
  • The minimumReleaseAgeExclude setting now supports patterns. For instance:

    minimumReleaseAge: 1440
    minimumReleaseAgeExclude:
      - "@​eslint/*"

    Related PR: #​9984.

Patch Changes
  • Don't ignore the minimumReleaseAge check, when the package is requested by exact version and the packument is loaded from cache #​9978.
  • When minimumReleaseAge is set and the active version under a dist-tag is not mature enough, do not downgrade to a prerelease version in case the original version wasn't a prerelease one #​9979.

v10.16.1

Compare Source

Patch Changes
  • The full metadata cache should be stored not at the same location as the abbreviated metadata. This fixes a bug where pnpm was loading the abbreviated metadata from cache and couldn't find the "time" field as a result #​9963.
  • Forcibly disable ANSI color codes when generating patch diff #​9914.

v10.16.0

Compare Source

Minor Changes
  • There have been several incidents recently where popular packages were successfully attacked. To reduce the risk of installing a compromised version, we are introducing a new setting that delays the installation of newly released dependencies. In most cases, such attacks are discovered quickly and the malicious versions are removed from the registry within an hour.

    The new setting is called minimumReleaseAge. It specifies the number of minutes that must pass after a version is published before pnpm will install it. For example, setting minimumReleaseAge: 1440 ensures that only packages released at least one day ago can be installed.

    If you set minimumReleaseAge but need to disable this restriction for certain dependencies, you can list them under the minimumReleaseAgeExclude setting. For instance, with the following configuration pnpm will always install the latest version of webpack, regardless of its release time:

    minimumReleaseAgeExclude:
      - webpack

    Related issue: #​9921.

  • Added support for finders #​9946.

    In the past, pnpm list and pnpm why could only search for dependencies by name (and optionally version). For example:

    pnpm why minimist
    

    prints the chain of dependencies to any installed instance of minimist:

    verdaccio 5.20.1
    ├─┬ handlebars 4.7.7
    │ └── minimist 1.2.8
    └─┬ mv 2.1.1
      └─┬ mkdirp 0.5.6
        └── minimist 1.2.8
    

    What if we want to search by other properties of a dependency, not just its name? For instance, find all packages that have react@17 in their peer dependencies?

    This is now possible with "finder functions". Finder functions can be declared in .pnpmfile.cjs and invoked with the --find-by=<function name> flag when running pnpm list or pnpm why.

    Let's say we want to find any dependencies that have React 17 in peer dependencies. We can add this finder to our .pnpmfile.cjs:

    module.exports = {
      finders: {
        react17: (ctx) => {
          return ctx.readManifest().peerDependencies?.react === "^17.0.0";
        },
      },
    };

    Now we can use this finder function by running:

    pnpm why --find-by=react17
    

    pnpm will find all dependencies that have this React in peer dependencies and print their exact locations in the dependency graph.

    @&#8203;apollo/client 4.0.4
    ├── @&#8203;graphql-typed-document-node/core 3.2.0
    └── graphql-tag 2.12.6
    

    It is also possible to print out some additional information in the output by returning a string from the finder. For example, with the following finder:

    module.exports = {
      finders: {
        react17: (ctx) => {
          const manifest = ctx.readManifest();
          if (manifest.peerDependencies?.react === "^17.0.0") {
            return `license: ${manifest.license}`;
          }
          return false;
        },
      },
    };

    Every matched package will also print out the license from its package.json:

    @&#8203;apollo/client 4.0.4
    ├── @&#8203;graphql-typed-document-node/core 3.2.0
    │   license: MIT
    └── graphql-tag 2.12.6
        license: MIT
    
Patch Changes
  • Fix deprecation warning printed when executing pnpm with Node.js 24 #​9529.
  • Throw an error if nodeVersion is not set to an exact semver version #​9934.
  • pnpm publish should be able to publish a .tar.gz file #​9927.
  • Canceling a running process with Ctrl-C should make pnpm run return a non-zero exit code #​9626.

v10.15.1

Compare Source

Patch Changes
  • Fix .pnp.cjs crash when importing subpath #​9904.
  • When resolving peer dependencies, pnpm looks whether the peer dependency is present in the root workspace project's dependencies. This change makes it so that the peer dependency is correctly resolved even from aliased npm-hosted dependencies or other types of dependencies #​9913.

v10.15.0

Compare Source

Minor Changes
  • Added the cleanupUnusedCatalogs configuration. When set to true, pnpm will remove unused catalog entries during installation #​9793.
  • Automatically load pnpmfiles from config dependencies that are named @*/pnpm-plugin-* #​9780.
  • pnpm config get now prints an INI string for an object value #​9797.
  • pnpm config get now accepts property paths (e.g. pnpm config get catalog.react, pnpm config get .catalog.react, pnpm config get 'packageExtensions["@&#8203;babel/parser"].peerDependencies["@&#8203;babel/types"]'), and pnpm config set now accepts dot-leading or subscripted keys (e.g. pnpm config set .ignoreScripts true).
  • pnpm config get --json now prints a JSON serialization of config value, and pnpm config set --json now parses the input value as JSON.
Patch Changes
  • Semi-breaking. When automatically installing missing peer dependencies, prefer versions that are already present in the direct dependencies of the root workspace package #​9835.
  • When executing the pnpm create command, must verify whether the node version is supported even if a cache already exists #​9775.
  • When making requests for the non-abbreviated packument, add */* to the Accept header to avoid getting a 406 error on AWS CodeArtifact #​9862.
  • The standalone exe version of pnpm works with glibc 2.26 again #​9734.
  • Fix a regression in which pnpm dlx pkg --help doesn't pass --help to pkg #​9823.

v10.14.0

Compare Source

Minor Changes
  • Added support for JavaScript runtime resolution

    Declare Node.js, Deno, or Bun in devEngines.runtime (inside package.json) and let pnpm download and pin it automatically.

    Usage example:

    {
      "devEngines": {
        "runtime": {
          "name": "node",
          "version": "^24.4.0",
          "onFail": "download" (we only support the "download" value for now)
        }
      }
    }

    How it works:

    1. pnpm install resolves your specified range to the latest matching runtime version.
    2. The exact version (and checksum) is saved in the lockfile.
    3. Scripts use the local runtime, ensuring consistency across environments.

    Why this is better:

    1. This new setting supports also Deno and Bun (vs. our Node-only settings useNodeVersion and executionEnv.nodeVersion)
    2. Supports version ranges (not just a fixed version).
    3. The resolved version is stored in the pnpm lockfile, along with an integrity checksum for future validation of the Node.js content's validity.
    4. It can be used on any workspace project (like executionEnv.nodeVersion). So, different projects in a workspace can use different runtimes.
    5. For now devEngines.runtime setting will install the runtime locally, which we will improve in future versions of pnpm by using a shared location on the computer.

    Related PR: #​9755.

  • Add --cpu, --libc, and --os to pnpm install, pnpm add, and pnpm dlx to customize supportedArchitectures via the CLI #​7510.

Patch Changes
  • Fix a bug in which pnpm add downloads packages whose libc differ from pnpm.supportedArchitectures.libc.
  • The integrities of the downloaded Node.js artifacts are verified #​9750.
  • Allow dlx to parse CLI flags and options between the dlx command and the command to run or between the dlx command and -- #​9719.
  • pnpm install --prod should removing hoisted dev dependencies #​9782.
  • Fix an edge case bug causing local tarballs to not re-link into the virtual store. This bug would happen when changing the contents of the tarball without renaming the file and running a filtered install.
  • Fix a bug causing pnpm install to incorrectly assume the lockfile is up to date after changing a local tarball that has peers dependencies.

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 was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title chore(deps): update pnpm to v10.14.0 chore(deps): update pnpm to v10.15.0 Aug 23, 2025
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch from a4ea9e4 to be1eb36 Compare August 23, 2025 06:50
@renovate renovate bot changed the title chore(deps): update pnpm to v10.15.0 chore(deps): update pnpm to v10.15.1 Sep 2, 2025
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch from be1eb36 to 5d4ba35 Compare September 2, 2025 06:42
@renovate renovate bot changed the title chore(deps): update pnpm to v10.15.1 chore(deps): update pnpm to v10.16.1 Sep 14, 2025
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch from 5d4ba35 to fc014db Compare September 14, 2025 15:21
@renovate renovate bot changed the title chore(deps): update pnpm to v10.16.1 chore(deps): update pnpm to v10.17.0 Sep 18, 2025
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch 2 times, most recently from 98485b4 to c683887 Compare September 23, 2025 04:09
@renovate renovate bot changed the title chore(deps): update pnpm to v10.17.0 chore(deps): update pnpm to v10.17.1 Sep 23, 2025
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch from c683887 to f2e7caf Compare October 3, 2025 08:21
@renovate renovate bot changed the title chore(deps): update pnpm to v10.17.1 chore(deps): update pnpm to v10.18.0 Oct 3, 2025
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch from f2e7caf to 173a650 Compare October 8, 2025 22:44
@renovate renovate bot changed the title chore(deps): update pnpm to v10.18.0 chore(deps): update pnpm to v10.18.1 Oct 8, 2025
@renovate renovate bot changed the title chore(deps): update pnpm to v10.18.1 chore(deps): update pnpm to v10.18.2 Oct 10, 2025
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch from 173a650 to fcbe5ee Compare October 10, 2025 00:10
@renovate renovate bot force-pushed the renovate/pnpm-10.x branch from fcbe5ee to 71fc1a6 Compare October 16, 2025 03:42
@renovate renovate bot changed the title chore(deps): update pnpm to v10.18.2 chore(deps): update pnpm to v10.18.3 Oct 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants