`pnpm run release` (scripts/release.mjs, zx + enquirer + commander) replaces the hand sequence of bump, changelog, gate, tag, push. It picks packages from a list annotated with what npmjs already has, computes versions from the manifest, collects notes in $EDITOR seeded with the commits since the package's last tag, and prepends them to CHANGELOG.md in the format release.yml's parser expects. The gate (lint:ci -> typecheck -> test:coverage -> build -> verify-pack) runs against the bumped tree *before* the commit, so a failure leaves nothing to unpick -- it offers to restore instead. Tags go out dependency-first, and each version is polled on npmjs before the next tag is pushed. That polling is what lets release.yml lose its `check linked deps are released` step: the ordering is now enforced before CI ever sees a tag, rather than after. linked-deps.mjs stays as a hand-check. The accepted cost is that a tag pushed some other way is no longer caught. Three things found by running it rather than reading it: - Tags are annotated (`-a -m`). A lightweight tag is rejected outright under tag.forceSignAnnotated, which is set on the machine this was written on. - pnpm 11 forwards the `--` in `pnpm run release -- --dry-run` literally, and commander reads a bare `--` as "the rest are positionals". The script takes no positionals, so it strips it and both spellings work. - Prompts refuse with a message naming the flag that avoids them when stdin is not a TTY, instead of hanging as an unsettled top-level await. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCzYTAm9QUhvLNr2EpdagJ
43 lines
1.5 KiB
JSON
43 lines
1.5 KiB
JSON
{
|
|
"name": "@bitsquare/ansiblings",
|
|
"version": "1.0.0-build0003",
|
|
"private": true,
|
|
"packageManager": "pnpm@11.17.0+sha512.cca3cea332ad254bb84145f966d19f4879615210346fc92c79a047f23a0d7b3cca3c3792f0076ba1f1831d277efbcf0a9119b31a9a60eca7fb3d6231f331ef72",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"scripts": {
|
|
"build": "pnpm -r run build",
|
|
"build:clean": "pnpm clean && pnpm build",
|
|
"clean": "pnpm -r run clean",
|
|
"test": "pnpm -r run test",
|
|
"test:coverage": "pnpm -r run test:coverage",
|
|
"coverage:summary": "node scripts/coverage-summary.mjs",
|
|
"registry:status": "node scripts/registry-status.mjs",
|
|
"release": "node scripts/release.mjs",
|
|
"try:snapshot": "node scripts/try-snapshot.mjs",
|
|
"typecheck": "tsc --build",
|
|
"lint": "biome check .",
|
|
"lint:fix": "biome check --write .",
|
|
"lint:ci": "biome ci .",
|
|
"format": "biome format --write .",
|
|
"prepare": "git rev-parse --git-dir > /dev/null 2>&1 && simple-git-hooks || true"
|
|
},
|
|
"simple-git-hooks": {
|
|
"pre-commit": "pnpm exec biome check --write --staged --no-errors-on-unmatched && git update-index --again",
|
|
"pre-push": "pnpm run lint:ci && pnpm run typecheck && pnpm run test:coverage"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^2.5.5",
|
|
"@bitsquare/nopy-cubes-core": "workspace:*",
|
|
"@logtape/logtape": "^2.2.4",
|
|
"@types/node": "^26.1.1",
|
|
"commander": "^15.0.0",
|
|
"enquirer": "^2.4.1",
|
|
"semver": "^7.8.5",
|
|
"simple-git-hooks": "^2.13.1",
|
|
"typescript": "^7.0.2",
|
|
"zx": "^8.8.5"
|
|
}
|
|
}
|