mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-20 12:42:38 -04:00
* chore: update lockfile, Node.js, and pnpm versions * ci: force a cold pnpm store to confirm the Windows cache corruption The Windows Rust CI install fails with ERROR_DIRECTORY (os error 267) creating symlinks over a store restored from actions/cache. With enableGlobalVirtualStore on, the cached store holds the global-virtual-store `links/` reparse points, which tar can't round-trip, so the restored store is corrupt and a warm install fails on symlink creation. The failure moves between symlinks run to run (parallel linking picks a different victim), which is why the alpha.12 symlink-writer fix could not cover it. Bump the cache key to force a cold store. If Windows goes green, the cache is confirmed as the cause and the durable fix is to stop caching `links/`. * fix(fs): heal a dangling junction parent when materializing a symlink alpha.12 tried to recover from a dangling `node_modules` junction (e.g. a store restored from a tar-based CI cache) by keying on ERROR_DIRECTORY (os error 267), but the real path is different: `CreateSymbolicLinkW` through a dangling junction returns NotFound, and the NotFound recovery's `create_dir_all` then fails with AlreadyExists (os error 183) because the junction still occupies the slot. So the 267 branch never fired and the install aborted. Handle it where it actually happens: when `create_dir_all` on the symlink's parent fails and the parent is a reparse point, remove the dangling junction (unlinking only the junction, never a live target), rebuild a real directory, and retry. Drops the dead 267 branch. * ci: exclude the global-virtual-store links/ tree from the pnpm store cache The GVS `links/` tree is Windows directory junctions, which tar (actions/cache) can't round-trip: a restored store came back with dangling junctions and installs failed creating symlinks. Exclude `links/` from the cached path so only the CAS content is cached; pnpm regenerates `links/` fresh on every install. The `nolinks` key abandons the old caches that still hold `links/`. --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
77 lines
3.9 KiB
JSON
77 lines
3.9 KiB
JSON
{
|
|
"name": "monorepo-root",
|
|
"private": true,
|
|
"scripts": {
|
|
"bump": "node pnpm11/__utils__/scripts/src/bump.ts",
|
|
"prepare": "husky",
|
|
"pretest": "pn compile-only && pn prepare-fixtures",
|
|
"prepare-fixtures": "pn --dir=pnpm11/__fixtures__ prepareFixtures",
|
|
"lint": "pn spellcheck && pn lint:meta && pn lint:ts",
|
|
"spellcheck": "cspell \"**/*.ts\" \"**/README.md\" \".changeset/*.md\" --no-progress",
|
|
"lint:ts": "eslint \"**/src/**/*.ts\" \"**/test/**/*.ts\" --cache",
|
|
"test-all": "pn pretest && pn lint && pn test-pkgs-all",
|
|
"ci:test-all": "pn prepare-fixtures && pn test-pkgs-all-report-summary",
|
|
"remove-temp-dir": "shx rm -rf ../pnpm_tmp",
|
|
"test-pkgs-all": "pn remove-temp-dir && pn --no-sort --workspace-concurrency=1 -r .test",
|
|
"test-pkgs-all-report-summary": "pn remove-temp-dir && pn --no-sort --workspace-concurrency=1 -r --report-summary .test",
|
|
"test-branch": "pn pretest && pn lint && git remote set-branches --add origin main && git fetch origin main && pn test-pkgs-branch",
|
|
"ci:test-branch": "pn prepare-fixtures && pn test-pkgs-branch",
|
|
"test-pkgs-branch": "pn remove-temp-dir && pn --workspace-concurrency=1 --filter=...[origin/main] --no-sort --if-present .test",
|
|
"compile-only": "tsgo --build pnpm11/workspace/workspace-manifest-reader pnpm11/workspace/projects-reader && pnx node@runtime:26.5.0 pnpm11/__utils__/scripts/src/typecheck-only.ts && pn -F=pnpm compile",
|
|
"compile": "pn compile-only && pn update-manifests",
|
|
"build:pnpm": "cargo build --release --bin pnpm",
|
|
"make-lcov": "shx mkdir -p coverage && lcov-result-merger 'pnpm11/**/coverage/lcov.info' 'coverage/lcov.info'",
|
|
"update-manifests": "pn meta-updater && pn install",
|
|
"meta-updater": "pn --filter=@pnpm-private/updater compile && pn exec meta-updater",
|
|
"lint:meta": "pn meta-updater --test",
|
|
"copy-artifacts": "node pnpm11/__utils__/scripts/src/copy-artifacts.ts",
|
|
"make-release-description": "pn --filter=@pnpm/get-release-text run write-release-text",
|
|
"check:npm-signing-keys": "node pnpm11/deps/security/signatures/scripts/update-npm-signing-keys.mjs",
|
|
"update:npm-signing-keys": "node pnpm11/deps/security/signatures/scripts/update-npm-signing-keys.mjs --update",
|
|
"check:node-release-keys": "node pnpm11/crypto/shasums-file/scripts/update-node-release-keys.mjs",
|
|
"update:node-release-keys": "node pnpm11/crypto/shasums-file/scripts/update-node-release-keys.mjs --update",
|
|
"release": "pn --filter=@pnpm/exe run build-artifacts && pn --filter=@pnpm/exe publish --tag=next-11 --access=public --provenance && pn publish --filter=!pnpm --filter=!@pnpm/exe --access=public --provenance && pn publish --filter=pnpm --tag=next-11 --access=public --provenance",
|
|
"dev-setup": "pn -C=./pnpm11/pnpm/dev link -g"
|
|
},
|
|
"devDependencies": {
|
|
"@commitlint/cli": "catalog:",
|
|
"@commitlint/config-conventional": "catalog:",
|
|
"@commitlint/prompt-cli": "catalog:",
|
|
"@pnpm/eslint-config": "workspace:*",
|
|
"@pnpm/jest-config": "workspace:*",
|
|
"@pnpm/meta-updater": "catalog:",
|
|
"@pnpm/tgz-fixtures": "catalog:",
|
|
"@pnpm/tsconfig": "workspace:*",
|
|
"@types/jest": "catalog:",
|
|
"@types/node": "catalog:",
|
|
"@types/picomatch": "catalog:",
|
|
"@typescript/native-preview": "catalog:",
|
|
"c8": "catalog:",
|
|
"concurrently": "catalog:",
|
|
"cross-env": "catalog:",
|
|
"cspell": "catalog:",
|
|
"eslint": "catalog:",
|
|
"eslint-plugin-regexp": "catalog:",
|
|
"husky": "catalog:",
|
|
"jest": "catalog:",
|
|
"keyv": "catalog:",
|
|
"lcov-result-merger": "catalog:",
|
|
"rimraf": "catalog:",
|
|
"shx": "catalog:",
|
|
"typescript": "catalog:"
|
|
},
|
|
"packageManager": "pnpm@12.0.0-alpha.12",
|
|
"devEngines": {
|
|
"packageManager": {
|
|
"name": "pnpm",
|
|
"version": "12.0.0-alpha.12",
|
|
"onFail": "download"
|
|
},
|
|
"runtime": {
|
|
"name": "node",
|
|
"version": "26.5.0",
|
|
"onFail": "download"
|
|
}
|
|
}
|
|
}
|