mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-14 17:52:44 -04:00
Merge the three release flows (TypeScript, Rust CLI + @pnpm/napi, pnpr) into a single flow driven by pnpm's native workspace versioning (pnpm/pnpm#12953), dropping the @changesets/cli dependency (Closes pnpm/pnpm#12947). The native engine keys package identity on the workspace directory, so the Rust CLI wrapper is named pnpm (the v12 line at pnpm/npm/pnpm) and shares the published name with the TypeScript CLI at pnpm11/pnpm. Release configuration moves from .changeset/config.json to the versioning key of pnpm-workspace.yaml: versioning.lanes puts the Rust CLI, @pnpm/napi, and @pnpm/pnpr on an alpha lane (X.Y.Z-alpha.N prereleases published under next) while the TypeScript CLI releases stable on the main lane; versioning.fixed keeps the Rust CLI and @pnpm/napi at one shared version; versioning.ignore freezes @pnpm/logger, which is consumed as a catalog: peer the engine would otherwise reject as an internal range. Lanes replace the hand-rolled prerelease continuation, and the committed .changeset/ledger.yaml replaces the .changeset-released directory as the cherry-pick-safe record of consumed intents. bump.ts drops both and is now just pnpm version -r plus syncRustVersions, which mirrors the bumped wrapper versions into defaults.rs and the pnpr crate version. Because two workspace projects are named pnpm, name-based --filter=pnpm is qualified by directory (pnpm{pnpm11/pnpm}) across the build and release scripts, the meta-updater excludes the Rust wrappers by directory, and changesets targeting the TypeScript CLI reference it as ./pnpm11/pnpm. release.yml's plan job gates per-product publish jobs on which committed versions are unpublished; everything publishes via trusted publishing. @changesets/cli, .changeset/config.json, and the standalone pacquet/pnpr release workflows are removed; their npm trusted-publisher bindings must be re-pointed at release.yml before the first unified release. pnpm-lock.yaml is regenerated from scratch: an incremental --lockfile-only resolve after the @changesets/cli removal hit a pacquet incremental-resolver bug (pnpm/pnpm#12958) that emptied a peer-context snapshot the CLI depends on and broke the bundle build. A from-scratch resolve is correct; the bug is filed separately.
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 && pn update-manifests",
|
|
"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.4.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.9",
|
|
"devEngines": {
|
|
"packageManager": {
|
|
"name": "pnpm",
|
|
"version": "12.0.0-alpha.9",
|
|
"onFail": "download"
|
|
},
|
|
"runtime": {
|
|
"name": "node",
|
|
"version": "26.4.0",
|
|
"onFail": "download"
|
|
}
|
|
}
|
|
}
|