pnpm 12.0.0-beta.4 → 12.0.0-rc.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,35 @@
|
|
|
1
1
|
# pnpm
|
|
2
2
|
|
|
3
|
+
## 12.0.0-rc.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Running `pnpm setup`, `pnpm self-update`, or a command that modifies the global installation (such as `pnpm add --global`) through `sudo` now fails with `ERR_PNPM_SUDO_NOT_SUPPORTED` instead of silently operating on the root user's home directory. pnpm keeps global packages and configuration in the invoking user's home directory, so these commands never need root permissions. Read-only global commands (such as `pnpm bin --global`) still work under sudo.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Archive entries whose paths use `\` as a separator are now read the same way pnpm reads them. A nested path spelled `bin\tool.js` by Windows publishing tooling resolves to `bin/tool.js`, and a path traversal spelled with backslashes is rejected instead of being stored verbatim.
|
|
12
|
+
|
|
13
|
+
- Fixed `file:` dependencies not being re-copied when their source directory changed. A `file:` dependency is copied into the store at install time rather than symlinked, so editing the local package's files and running `pnpm install` again left the previous copy in place — the lockfile is unchanged by such an edit, so the install treated the tree as up to date.
|
|
14
|
+
|
|
15
|
+
- Write blocked-build approval scaffolding to the discovered workspace manifest when using per-project lockfiles.
|
|
16
|
+
|
|
17
|
+
- Concurrent installs sharing a global virtual store no longer fail with `failed to remove existing directory ... prior to swap: Directory not empty`, and no longer briefly remove a package directory another process is reading.
|
|
18
|
+
|
|
19
|
+
- Fixed `link:` dependencies under `enableGlobalVirtualStore` so linked children are materialized and slots remain isolated by their resolved link targets.
|
|
20
|
+
|
|
21
|
+
- A headless install (`--frozen-lockfile`) now creates the command shims for a publicly hoisted workspace package's `bin`, matching what a normal install already did and what pnpm's own headless install does. Previously those shims were missing until the next non-frozen install.
|
|
22
|
+
|
|
23
|
+
- `pnpm fetch`, and any install run with `virtualStoreOnly`, no longer writes a `.pnp.cjs` loader under `nodeLinker: pnp`. These installs populate the virtual store without linking the project, so the loader would have claimed the project resolves out of a store it was never linked into. The importer links and `node_modules/.package-map.json` were already skipped; the PnP loader now follows the same rule.
|
|
24
|
+
|
|
25
|
+
- Prevent pnpm from removing project files when `modulesDir` resolves to the project root.
|
|
26
|
+
|
|
27
|
+
- Fixed `pnpm install` ignoring a `pnpm-lock.yaml` that carries a leading env lockfile document when the file has CRLF line endings or a UTF-8 byte order mark, as a `core.autocrlf` checkout on Windows produces. The lockfile was reported as broken with `multiple YAML documents detected` and every dependency was re-resolved from the registry [#13606](https://github.com/pnpm/pnpm/issues/13606).
|
|
28
|
+
|
|
29
|
+
- When no directory above the project accepts a hard link — inside an AI agent sandbox that only grants write access to the project, or a container with just the project mounted writable — the default store is now created at `<project>/node_modules/.pnpm-store` instead of in the pnpm home directory. In those environments the home store is either read-only or on another volume, which forces every package to be copied instead of hard linked [#13525](https://github.com/pnpm/pnpm/issues/13525).
|
|
30
|
+
|
|
31
|
+
- A stray non-directory entry in `node_modules` no longer fails an install. Files placed next to the installed dependencies are skipped rather than reported as an unreadable manifest.
|
|
32
|
+
|
|
3
33
|
## 12.0.0-beta.4
|
|
4
34
|
|
|
5
35
|
### Minor Changes
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"lastValidatedTimestamp":
|
|
2
|
+
"lastValidatedTimestamp": 1785959121488,
|
|
3
3
|
"projects": {
|
|
4
4
|
"/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy": {
|
|
5
5
|
"name": "pacquet",
|
|
6
|
-
"version": "12.0.0-
|
|
6
|
+
"version": "12.0.0-rc.0"
|
|
7
7
|
}
|
|
8
8
|
},
|
|
9
9
|
"pnpmfiles": [],
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"@types/qrcode-terminal": "^0.12.2",
|
|
78
78
|
"@types/ramda": "0.32.0",
|
|
79
79
|
"@types/retry": "^0.12.5",
|
|
80
|
-
"@types/semver": "7.
|
|
80
|
+
"@types/semver": "7.8.0",
|
|
81
81
|
"@types/ssri": "^7.1.5",
|
|
82
82
|
"@types/tar-stream": "^3.1.4",
|
|
83
83
|
"@types/touch": "^3.1.5",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"@types/write-file-atomic": "^4.0.3",
|
|
87
87
|
"@types/yarnpkg__lockfile": "^1.1.9",
|
|
88
88
|
"@types/zkochan__table": "npm:@types/table@6.3.2",
|
|
89
|
-
"@typescript-eslint/utils": "^8.
|
|
89
|
+
"@typescript-eslint/utils": "^8.66.0",
|
|
90
90
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
91
91
|
"@yarnpkg/core": "4.9.1",
|
|
92
92
|
"@yarnpkg/extensions": "2.0.7",
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
"tree-kill": "^1.2.2",
|
|
249
249
|
"ts-jest-resolver": "2.0.1",
|
|
250
250
|
"typescript": "6.0.3",
|
|
251
|
-
"typescript-eslint": "^8.
|
|
251
|
+
"typescript-eslint": "^8.66.0",
|
|
252
252
|
"undici": "^7.27.2",
|
|
253
253
|
"unified": "^11.0.5",
|
|
254
254
|
"validate-npm-package-name": "7.0.2",
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"./dist/node_modules/node-gyp/gyp/gyp"
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
|
-
"version": "12.0.0-
|
|
12
|
+
"version": "12.0.0-rc.0",
|
|
13
13
|
"description": "Fast, disk space efficient package manager",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"pnpm",
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
"dist/"
|
|
44
44
|
],
|
|
45
45
|
"optionalDependencies": {
|
|
46
|
-
"@pnpm/exe.win32-x64": "12.0.0-
|
|
47
|
-
"@pnpm/exe.win32-arm64": "12.0.0-
|
|
48
|
-
"@pnpm/exe.darwin-x64": "12.0.0-
|
|
49
|
-
"@pnpm/exe.darwin-arm64": "12.0.0-
|
|
50
|
-
"@pnpm/exe.linux-x64": "12.0.0-
|
|
51
|
-
"@pnpm/exe.linux-arm64": "12.0.0-
|
|
52
|
-
"@pnpm/exe.linux-x64-musl": "12.0.0-
|
|
53
|
-
"@pnpm/exe.linux-arm64-musl": "12.0.0-
|
|
46
|
+
"@pnpm/exe.win32-x64": "12.0.0-rc.0",
|
|
47
|
+
"@pnpm/exe.win32-arm64": "12.0.0-rc.0",
|
|
48
|
+
"@pnpm/exe.darwin-x64": "12.0.0-rc.0",
|
|
49
|
+
"@pnpm/exe.darwin-arm64": "12.0.0-rc.0",
|
|
50
|
+
"@pnpm/exe.linux-x64": "12.0.0-rc.0",
|
|
51
|
+
"@pnpm/exe.linux-arm64": "12.0.0-rc.0",
|
|
52
|
+
"@pnpm/exe.linux-x64-musl": "12.0.0-rc.0",
|
|
53
|
+
"@pnpm/exe.linux-arm64-musl": "12.0.0-rc.0"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"preinstall": "node install.js",
|