Skip to content

chore(release): consume shared pnpm-release-management toolchain - #67

Merged
ryanleecode merged 4 commits into
mainfrom
chore/unify-release-tooling
Oct 6, 2026
Merged

ryanleecode merged 4 commits into
mainfrom
chore/unify-release-tooling

Conversation

@kiro-systemf

@kiro-systemf kiro-systemf Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Unifies release tooling onto the shared systemfsoftware/pnpm-release-management toolchain (trunk prm/toolchain @ 2730f212260b8b9b604cb6dcef3871bd750efe554), replacing this repo's local release scripts.

What changed

  • Deleted the local release tooling: scripts/plan-release.ts, scripts/tag-released-packages.ts, scripts/create-github-releases.ts, scripts/lib/cycle.ts, plus their now-orphaned helpers (check-changeset.ts, open-release-pr.sh, lib/pending-intents.ts + test, lib/run.ts, deno.json/deno.lock) — the whole scripts/ dir, since nothing outside it imported any of it.
  • .github/workflows/release.yml → thin caller of the shared reusable release.yml@prm/toolchain (tools-ref: prm/toolchain).
  • .github/workflows/changeset-check.yml → thin caller of the shared reusable changeset-check.yml@prm/toolchain.
  • Dropped the test:scripts script (package.json) and its //#test:scripts turbo task — their target no longer exists.
  • Rewrote the publishing prose in .changeset/README.md and CONCEPTS.md to the shared-pipeline + git-tag-release / Nix-flake story; deleted two tooling-decision docs that documented the deleted local scripts.

Consequence

npm-registry publishing is gone. Distribution is Nix flakes consumed from git refs; a <pkg>@vX.Y.Z git tag (written by the shared pipeline when it tags + cuts the GitHub Release) is the durable record a version shipped. The shared pipeline derives phase from repository state.

Kept

Changesets (.changeset/, version PR flow), GitHub Releases, publishConfig (inert without a publish step), the Nix flake outputs. No flake input added — the release CLI runs only in CI via the reusable workflow's own checkout, so the flake does not need it (back-edge would be optional anyway).

Mirrors systemfsoftware/systemfsoftware#655's intent, adapted to the unified-toolchain target. No tombstone files.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Delete this repo's local release scripts (plan-release, tag-released-packages, create-github-releases, lib/cycle and their helpers) and the bespoke release.yml body; release.yml and changeset-check.yml become thin callers of systemfsoftware/pnpm-release-management reusable workflows pinned to prm/toolchain, which derive the phase from repository state, open the version PR, tag released versions and cut GitHub Releases

npm-registry publishing is gone as a consequence: distribution is Nix flakes consumed from git refs, so a <pkg>@vX.Y.Z git tag is the durable record a version shipped. Changesets, publishConfig and the Nix flake outputs are untouched. Drop the test:scripts task and the two tooling-decision docs that described the deleted local scripts
The shared changeset gate marks every publishable package touched when root turbo.json and package.json change; a none-bump intent naming both public packages records a touch that releases nothing, which is the gate's canonical script/tooling-only class
The shared pnpm-release-management apps (plan, gate, bump, tag, release) read release.jsonc as their only repo-local input; without it the changeset-check gate and the release workflow both abort with "cannot read config release.jsonc". pnpm versioning for the two independently-versioned public packages, turbo build gate, trunk main, release PR branch changeset-release/main
The shared changeset-check reusable workflow checks out and builds only the release tools, never running pnpm install in the consuming repo, so a turbo-strategy gate aborts with "turbo pin unusable: installed turbo undefined". The paths strategy derives change evidence from the git diff alone and attributes each changed file to the package whose directory contains it, which needs no workspace install
@ryanleecode
ryanleecode merged commit 6344cfb into main Oct 6, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant