pnpm 12.12.0 → 12.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,77 @@
|
|
|
1
1
|
# pnpm
|
|
2
2
|
|
|
3
|
+
## 12.13.0
|
|
4
|
+
|
|
5
|
+
This release adds the `pnpm profile` and `pnpm token` commands, the `storeIndexFormat: files` setting for stores shared over a network filesystem, and faster Python dependency resolution.
|
|
6
|
+
|
|
7
|
+
### Minor Changes
|
|
8
|
+
|
|
9
|
+
- Added the `pnpm profile` command to view and update registry user profile settings.
|
|
10
|
+
|
|
11
|
+
- Added `pnpm token` to list, create, and revoke authentication tokens on the registry.
|
|
12
|
+
|
|
13
|
+
- Added the `storeIndexFormat` setting. Set it to `files` to keep a store's package index as one file per package instead of the SQLite `index.db`, for a store on a network filesystem that several machines use at once. SQLite's locking does not work across machines, so concurrent installs on such a store could corrupt `index.db`.
|
|
14
|
+
|
|
15
|
+
- Added the `nodePackageMap` setting, which groups the package-map settings. `nodePackageMap.mode: write-only` writes `node_modules/.package-map.json` for other tools without making Node.js load it. `mode: load` also makes Node.js load the map, like `nodeExperimentalPackageMap: true`. `nodePackageMap.type` replaces `nodePackageMapType`. The old settings still work [#14937](https://github.com/pnpm/pnpm/issues/14937).
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
nodePackageMap:
|
|
19
|
+
mode: write-only
|
|
20
|
+
type: loose
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
#### Setting up pnpm
|
|
26
|
+
|
|
27
|
+
- `pnpm setup` now works when pnpm was installed with npm on macOS. It installed pnpm from npm's `bin` directory and left a `$PNPM_HOME/bin/pnpm` that could not run [#16855](https://github.com/pnpm/pnpm/issues/16855).
|
|
28
|
+
|
|
29
|
+
- pnpm runs again after `pnpm setup` when `globalShims` enables pnpm. Every command failed with "the global target of the pnpm shim points back at the shim" [#16874](https://github.com/pnpm/pnpm/issues/16874).
|
|
30
|
+
|
|
31
|
+
- A pnpm built for the MinGW target on Windows, such as the MSYS2 package, now installs the MinGW Rust toolchain that `rust-toolchain.toml` names. It used to install the MSVC toolchain.
|
|
32
|
+
|
|
33
|
+
#### Installing packages
|
|
34
|
+
|
|
35
|
+
- On macOS, `pnpm install` no longer fails with `ERR_PNPM_LOCKFILE_WRITE_FILE` when the project is on a virtiofs or SMB share. pnpm now falls back to a regular `fsync` when the file system rejects a full sync [#16846](https://github.com/pnpm/pnpm/issues/16846).
|
|
36
|
+
|
|
37
|
+
- On macOS, `pnpm install`, `pnpm patch-commit`, and other commands that load a pnpmfile no longer hang at random.
|
|
38
|
+
|
|
39
|
+
- `pnpm install` now puts the executables of a Python build backend's requirements on the `PATH` while the backend runs. Projects built with `uv_build` now install. Before, they failed with "uv-build was not properly installed".
|
|
40
|
+
|
|
41
|
+
- Removing a `link:` dependency now also removes its symlink from `node_modules` when `nodeLinker` is `hoisted` [#16884](https://github.com/pnpm/pnpm/issues/16884).
|
|
42
|
+
|
|
43
|
+
- `pnpm-lock.yaml` no longer records the tarball URL of a package installed from a scoped registry, such as one set by `@types:registry=`, when pnpm can rebuild the URL from that registry [#16866](https://github.com/pnpm/pnpm/issues/16866).
|
|
44
|
+
|
|
45
|
+
#### Packing, auditing, and pipelines
|
|
46
|
+
|
|
47
|
+
- `pnpm pack` and `pnpm publish` now pack only `package.json`, the README, the license, and the files named in `main` and `bin` when `files` is an empty array. They used to pack every file in the package [#16889](https://github.com/pnpm/pnpm/issues/16889).
|
|
48
|
+
|
|
49
|
+
- `pnpm audit` and `pnpm audit signatures` no longer check runtimes installed through `devEngines.runtime`, such as `node@runtime:24.21.0`, against the npm package of the same name. `pnpm audit signatures` reported these runtimes as having an invalid registry signature [#16869](https://github.com/pnpm/pnpm/issues/16869).
|
|
50
|
+
|
|
51
|
+
- `pnpm pipeline` now runs the root's tasks when `pnpm-workspace.yaml` lists only the root in `packages` or omits `packages`, as `pnpm -r run` does. A change to a root file in such a workspace no longer triggers a full-run warning. When a full run has no projects to run, `pnpm pipeline` now reports that no projects are selected [#16849](https://github.com/pnpm/pnpm/issues/16849).
|
|
52
|
+
|
|
53
|
+
#### Performance
|
|
54
|
+
|
|
55
|
+
- `pnpm install` resolves Python dependencies faster. With `--lockfile-only`, a project with 10 dependencies now resolves in about 4 seconds, down from about 40. When the index publishes a metadata file beside each wheel (PEP 658), as PyPI does, pnpm downloads only the wheels of the releases it selects.
|
|
56
|
+
|
|
57
|
+
- A repeat install against an existing lockfile no longer reads registry metadata for the dependencies it takes from that lockfile. On a warm store this removes thousands of metadata lookups from a repeat install of a large workspace.
|
|
58
|
+
|
|
59
|
+
- `pnpm install` with `enableModulesDir: false` now verifies the packages already in the store while the dependencies resolve, and checks a package's files in parallel. On a 5,100-package install with the store on a network filesystem, this removed a 19-second pause between resolution and fetching.
|
|
60
|
+
|
|
61
|
+
## 12.12.1
|
|
62
|
+
|
|
63
|
+
This release adds OIDC authentication to `pnpm dist-tag` and the `tool:` protocol. `pnpm publish` now checks which registry an `NPM_ID_TOKEN` was issued for before using it.
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- `pnpm publish` now uses an `NPM_ID_TOKEN` only if its `aud` claim matches the selected registry, such as `npm:registry.npmjs.org`. A token for another registry is skipped with a warning, and pnpm falls back to the configured credentials.
|
|
68
|
+
|
|
69
|
+
- `pnpm dist-tag add`, `rm`, and `ls` now support OIDC authentication in CI. Enable "Allow npm dist-tag" in the package's trusted publishing settings to manage tags without a stored npm token.
|
|
70
|
+
|
|
71
|
+
- Added the `tool:` protocol for the tools pnpm downloads itself: Node.js, Bun, Deno, and Yarn. `pnpm add bun@tool:1.3.0`, `pnx node@tool:22`, and `pnx yarn@tool:4` work like the `runtime:` spelling, which stays supported as an alias. A lockfile written for `runtime:` stays up to date when `package.json` switches to `tool:`, and the other way around.
|
|
72
|
+
|
|
73
|
+
A named registry can no longer be called `tool`.
|
|
74
|
+
|
|
3
75
|
## 12.12.0
|
|
4
76
|
|
|
5
77
|
This release shares task results and dependency builds through a remote cache, adds the `addMissingPeerTypes` setting, and lets `pnpm add --config` and `pnpm update` manage configuration dependencies. It also fixes `dangerouslyAllowAllBuilds` running the build scripts of packages that `allowBuilds` denies.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"lastValidatedTimestamp":
|
|
2
|
+
"lastValidatedTimestamp": 1791876512315,
|
|
3
3
|
"projects": {
|
|
4
4
|
"/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy": {
|
|
5
5
|
"name": "pacquet",
|
|
6
|
-
"version": "12.
|
|
6
|
+
"version": "12.13.0",
|
|
7
7
|
"hasModulesDir": true
|
|
8
8
|
}
|
|
9
9
|
},
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@rushstack/worker-pool": "0.7.30",
|
|
50
50
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
51
51
|
"@tybys/wasm-util": "0.10.4",
|
|
52
|
-
"@types/adm-zip": "^0.
|
|
52
|
+
"@types/adm-zip": "^0.6.0",
|
|
53
53
|
"@types/archy": "0.0.36",
|
|
54
54
|
"@types/cross-spawn": "^6.0.6",
|
|
55
55
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"escape-string-regexp": "^5.0.0",
|
|
138
138
|
"eslint": "^10.12.0",
|
|
139
139
|
"eslint-plugin-import-x": "^4.17.1",
|
|
140
|
-
"eslint-plugin-jest": "^29.16.
|
|
140
|
+
"eslint-plugin-jest": "^29.16.11",
|
|
141
141
|
"eslint-plugin-n": "^18.4.1",
|
|
142
142
|
"eslint-plugin-promise": "^7.3.0",
|
|
143
143
|
"eslint-plugin-regexp": "^3.1.1",
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
"p-every": "^2.0.0",
|
|
200
200
|
"p-filter": "^4.1.0",
|
|
201
201
|
"p-limit": "^7.3.3",
|
|
202
|
-
"p-queue": "^9.3.
|
|
202
|
+
"p-queue": "^9.3.5",
|
|
203
203
|
"parse-json": "^8.3.0",
|
|
204
204
|
"parse-npm-tarball-url": "^5.0.0",
|
|
205
205
|
"path-absolute": "^2.0.0",
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"./dist/node_modules/node-gyp/gyp/gyp"
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
|
-
"version": "12.
|
|
12
|
+
"version": "12.13.0",
|
|
13
13
|
"description": "Fast, disk space efficient package manager",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"pnpm",
|
|
@@ -46,20 +46,20 @@
|
|
|
46
46
|
"THIRD-PARTY-NOTICES.md"
|
|
47
47
|
],
|
|
48
48
|
"optionalDependencies": {
|
|
49
|
-
"@pnpm/exe.win32-x64": "12.
|
|
50
|
-
"@pnpm/exe.win32-arm64": "12.
|
|
51
|
-
"@pnpm/exe.darwin-x64": "12.
|
|
52
|
-
"@pnpm/exe.darwin-arm64": "12.
|
|
53
|
-
"@pnpm/exe.linux-x64": "12.
|
|
54
|
-
"@pnpm/exe.linux-arm64": "12.
|
|
55
|
-
"@pnpm/exe.linux-riscv64": "12.
|
|
56
|
-
"@pnpm/exe.linux-ppc64": "12.
|
|
57
|
-
"@pnpm/exe.linux-s390x": "12.
|
|
58
|
-
"@pnpm/exe.linux-x64-musl": "12.
|
|
59
|
-
"@pnpm/exe.linux-arm64-musl": "12.
|
|
60
|
-
"@pnpm/exe.freebsd-x64": "12.
|
|
61
|
-
"@pnpm/exe.android-arm64": "12.
|
|
62
|
-
"@pnpm/exe.android-x64": "12.
|
|
49
|
+
"@pnpm/exe.win32-x64": "12.13.0",
|
|
50
|
+
"@pnpm/exe.win32-arm64": "12.13.0",
|
|
51
|
+
"@pnpm/exe.darwin-x64": "12.13.0",
|
|
52
|
+
"@pnpm/exe.darwin-arm64": "12.13.0",
|
|
53
|
+
"@pnpm/exe.linux-x64": "12.13.0",
|
|
54
|
+
"@pnpm/exe.linux-arm64": "12.13.0",
|
|
55
|
+
"@pnpm/exe.linux-riscv64": "12.13.0",
|
|
56
|
+
"@pnpm/exe.linux-ppc64": "12.13.0",
|
|
57
|
+
"@pnpm/exe.linux-s390x": "12.13.0",
|
|
58
|
+
"@pnpm/exe.linux-x64-musl": "12.13.0",
|
|
59
|
+
"@pnpm/exe.linux-arm64-musl": "12.13.0",
|
|
60
|
+
"@pnpm/exe.freebsd-x64": "12.13.0",
|
|
61
|
+
"@pnpm/exe.android-arm64": "12.13.0",
|
|
62
|
+
"@pnpm/exe.android-x64": "12.13.0"
|
|
63
63
|
},
|
|
64
64
|
"scripts": {
|
|
65
65
|
"preinstall": "node install.js",
|