Repository navigation
fix(deps): update pnpm to v11.28.11 - #607
Merged
Merged
Conversation
Contributor
Test Results568 tests 555 ✅ 8m 24s ⏱️ Results for commit 8a68067. ♻️ This comment has been updated with latest results. |
renovate
Bot
force-pushed
the
renovate/pnpm-11.x
branch
from
November 11, 2026 17:47
6d296eb to
8a68067
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
11.28.9+sha512.35421cea2720eca3f5ad722b67e8ef18f4d3cd4745ed2fcfeb0dc288d4e9437fad3870d91ee6e83f268f0f6f7e0f62723317b19617bb45ee4333172ef51159f8→11.28.11Release Notes
pnpm/pnpm (pnpm)
v11.28.11: pnpm 11.28.11Compare Source
pnpm 11.28.11 fixes frozen installs with
excludeLinksFromLockfile,pnpm linkin workspaces,pnpm deploywith dangling symlinks, andverifyDepsBeforeRunstarting needless installs.Patch Changes
Installing packages
pnpm deploynow keeps a symlink in the project whose target is missing from the source, such as a link into anode_modulesdirectory that was removed after the build. Deploy used to fail withENOENTon such a link #17571.A package with
bundledDependenciesand a build script now keeps its bundled dependencies when it is restored from the side-effects cache #17523.pnpm installnow links the runtime that an earlierpnpm install --no-runtimeskipped #17542.Commands of a package whose
binpaths contain excess parent directory segments, such as../dist/cli.js, are no longer missing. Such paths now resolve inside the package #17586.Generated POSIX shell shims now quote their paths, so shell special characters in a path stay literal.
A repeat
pnpm installnow rewrites the bin shims afterextendNodePathchanges. Before, it reported "Already up to date" and the shims kept theNODE_PATHof the previous setting.Lockfile and resolution
pnpm install --frozen-lockfilenow accepts the lockfile it wrote withexcludeLinksFromLockfileandlinkWorkspacePackageson, when a project depends on a workspace package through a plain version range or acatalog:entry. It used to fail withERR_PNPM_OUTDATED_LOCKFILE.pnpm install --frozen-lockfile,pnpm approve-builds, andpnpm rebuildnow accept a lockfile that resolves a*dependency to a prereleaselatestversion. pnpm wrote such a lockfile and then reported it as outdated #17594.Packages from the default registry keep plain lockfile keys, even when a prefix such as
npmjspoints at the registry set asregistry. A dependency written with such a prefix shares the plain entry of the same package. The next install rewrites keys that earlier versions qualified this way #17575.Relative local paths in root
overridesnow resolve from the workspace root when each project has its own lockfile #17691.Installing a local directory dependency no longer fails when another project's install is writing a lockfile in that directory.
Peer deduplication no longer gives a project different copies of a dependency across direct and transitive paths when an optional peer has no provider #17666.
A Node.js version range such as
>=26.13, for example indevEngines.runtime, now resolves to the newest stable release that satisfies it. pnpm picks a prerelease only when no stable release matches #17516.verifyDepsBeforeRun
With
verifyDepsBeforeRun,pnpm runandpnpm execnow report dependencies as out of date after a dependency is added to thepackage.jsonof a local directory dependency, such as"lib": "file:../lib". Before, the command ran without the new dependency installed.verifyDepsBeforeRunno longer reports dependencies as out of sync when only theversionfield of a single-project repository changed #17560. The same holds for a workspace project that no dependency can resolve to. A script run after such a change no longer starts an install first.pnpm link
In a workspace,
pnpm link <dir>now adds thelink:dependency to thepackage.jsonof the project where the command runs, not to the workspace root'spackage.json. The link is created in that project'snode_modules, as documented. The override is still written to the rootpnpm-workspace.yaml.pnpm linkwith several paths now records every linked package in theoverridesofpnpm-workspace.yaml. Some of them could be missing before.pnpm linknow fails without changingpackage.jsonorpnpm-workspace.yamlwhen the linked package's name is not a valid npm package name. It used to write that name to both files, which made every later install fail #17475.pnpm update
pnpm updatewith only negated selectors, such aspnpm update '!foo', now leaves the dependencies listed inupdate.ignoreDepsunchanged pnpm/tasks#243.pnpm update --depth 0without selectors now does nothing when every direct dependency is listed inupdate.ignoreDeps. Before, it failed withERR_PNPM_NO_PACKAGE_IN_DEPENDENCIESpnpm/tasks#251.Store and self-update
pnpm store prunenow keeps packages linked from a configured modules directory pnpm/tasks#230.pnpm store statusno longer reports untouched packages as modified when the global virtual store is enabled. If the installed global-store layout cannot be verified, the command reportsERR_PNPM_STORE_STATUS_UNVERIFIABLEand asks for a reinstall #17631.pnpm store addnow fails right away withERR_PNPM_FROZEN_STORE_WRITEwhenfrozenStoreis enabled. It used to retry each download for minutes before failing, or fail with a SQLite error on an empty store.pnpm self-updatenow reinstalls a cached engine if its executable cannot run. This repairs shared store entries damaged by an earlier install #17582.Platinum Sponsors
Gold Sponsors
v11.28.10: pnpm 11.28.10Compare Source
pnpm 11.28.10 stops
pnpm store prunefrom deleting other stores whencacheDirpoints to their parent directory. It also fixes globally installed commands that load hoisted dependencies, and repeat installs that missed changes to local dependencies.Patch Changes
Installing packages
pnpm store prunepreserves other stores and global package data whencacheDirpoints to their parent directory.Commands installed with
pnpm add --globalnow find the dependencies that pnpm hoists for their package. A package that loads a dependency it does not declare, such as a native addon's platform-specific package, failed with "Cannot find module". Reinstall such a package withpnpm add --globalto update its existing command #17503.pnpm prune --prodno longer fails withERR_PNPM_EXDEVwhennode_moduleswas copied from an earlier Docker build stage #17424.pnpm installnow retries a Node.js runtime zip download when the connection drops partway through. A download that still fails names its URL. Before, a single dropped connection ended the install withterminated#17411.With the global virtual store, a change to a dependency of one package in a dependency cycle now gives every package in that cycle a new directory. Before, the other packages kept their directories and still linked the old copy of the changed package, so the project could load two copies of it #17466.
Packages in a dependency cycle, and packages that depend on one, move to new global virtual store directories once after this update. Those that run a build miss the side-effects cache once.
pnpm installandpnpm rebuildnow refresh privately hoisted.binshims innode_modules/.pnpm/node_modules/.binafter a dependency build replaces a script target with a native executable #17402.The Node.js
latestselector now chooses the newest stable release #17490.The standalone
@pnpm/exebuilds now embed Node.js 26.13.0.Repeat installs and lockfiles
pnpm installnow resolves a local directory again after itspackage.jsonchanges when an override or a package extension adds it to the dependencies of a registry package.pnpm install --frozen-lockfilefails on a lockfile that still records the old dependencies of such a directory #17486.With
injectWorkspacePackagesand per-project lockfiles,pnpm installnow updates a project's lockfile when a local tarball that an injected workspace project depends on is replaced. The project's lockfile kept the old version and integrity before.pnpm installnow detects a change to a local tarball or directory that only a pnpmfilereadPackagehook depends on. A repeat install reported "Already up to date" and kept the old contents before pnpm/tasks#227.pnpm installnow relinks aworkspace:orlink:dependency whose link was deleted fromnode_modules. It used to report "Already up to date" and leave the link missing #17485.Merging git branch lockfiles now keeps a workspace project whose directory is named
__proto__. It was dropped from the merged lockfile before pnpm/tasks#59.Adding and publishing packages
pnpm addno longer rewrites a catalog entry set to the dist-tag that the dependency resolves through. For example, an entrybetastaysbetaafterpnpm add foo@betaorpnpm add foo. Before, the entry was replaced with the version the tag pointed to pnpm/tasks#225.pnpm packandpnpm publishnow always include the binary file declared by a stringbinfield inpackage.json, even whenfilesor.npmignorewould otherwise exclude it.When the version or range given to
pnpm unpublishmatches every published version, the error now says so and shows the same command with--force. It suggested runningpnpm unpublish <pkg>@<version>, the command that had just failed.Running commands
Every command, including
pnpm --version,pnpm self-update, and invocations with unknown flags, now applies the samepackageManageranddevEngines.packageManagersettings when switching to the pinned pnpm version or recording it inpnpm-lock.yaml.--config.<key>flags andlockfileDirnow reach the version switch and lockfile sync on every entry point. Unreadable settings inpnpm-workspace.yamlor the globalconfig.yamlthat do not affect the pin decision no longer block the version switch pnpm/tasks#222.On Windows, the shell shim of a
.cmdor.batbin now runs it under Git Bash when MSYS argument conversion is off, such as withMSYS_NO_PATHCONV=1orMSYS2_ARG_CONV_EXCL='*'. The shim used to start an interactive cmd.exe prompt #17480.pnxandpnpm createnow run the command in the directory selected by--diror--workspace-root. Without either flag, the command still runs in the directory pnpm was started in.The error for a dependency with an invalid name in a project's manifest now names the project's directory. It used to say only "The current package", which did not tell which workspace project to fix #17475.
Platinum Sponsors
Gold Sponsors
Configuration
📅 Schedule: (in timezone Europe/Berlin)
🚦 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.