From 411a465b3f61294ce3ab3a5ecf759ec0214847d1 Mon Sep 17 00:00:00 2001 From: Silvano Stralla Date: Fri, 28 Aug 2026 10:16:10 +0200 Subject: [PATCH] chore: collect repo automation under toolchain/ --- AGENTS.md | 2 +- package.json | 6 +++--- toolchain/README.md | 8 ++++++++ {bin => toolchain}/publish.mjs | 0 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 toolchain/README.md rename {bin => toolchain}/publish.mjs (100%) diff --git a/AGENTS.md b/AGENTS.md index 1664e35..5d95d39 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -28,7 +28,7 @@ Use it instead of `npm link` (a symlinked React library breaks with duplicate-Re ## Gotchas - Every user-visible change needs a changeset (`npx changeset`) in the same PR, or it ships with no release note. `patch` is for bug fixes only; new API surface is `minor`. -- Releasing (maintainers only): `npm run publish` from the root, on a clean `master`. It builds and tests, applies the pending changesets, publishes to npm, then tags, pushes, and opens the GitHub releases. An interrupted release is resumed by re-running it, never undone. See `bin/publish.mjs`. +- Releasing (maintainers only): `npm run publish` from the root, on a clean `master`. It builds and tests, applies the pending changesets, publishes to npm, then tags, pushes, and opens the GitHub releases. An interrupted release is resumed by re-running it, never undone. See `toolchain/publish.mjs`. - One `name@X.Y.Z` tag and one GitHub release **per package**. `changeset publish` does the publishing and the tagging itself, in that order and only for the packages npm accepted, so a tag can't outlive a failed publish. What is being released comes from `changeset publish-plan --output`, not from anything the script reconstructs. Each release's body is that package's own `CHANGELOG.md` section — when a package moved only because the other one did, that section is just its dependency bump, which is the honest thing to show. Releases up to v2.2.7 used a single `vX.Y.Z` tag instead; those tags stay where they are. ## More detail diff --git a/package.json b/package.json index d062c2f..4b63de3 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,9 @@ "build": "turbo run build", "lint": "biome ci packages", "changeset": "changeset", - "publish": "node bin/publish.mjs", - "publish-next": "node bin/publish.mjs --tag next", - "format": "biome check packages --apply && biome format --write packages", + "publish": "node toolchain/publish.mjs", + "publish-next": "node toolchain/publish.mjs --tag next", + "format": "biome check toolchain packages --apply && biome format --write toolchain packages", "prepare": "husky" }, "license": "MIT", diff --git a/toolchain/README.md b/toolchain/README.md new file mode 100644 index 0000000..e099a64 --- /dev/null +++ b/toolchain/README.md @@ -0,0 +1,8 @@ +# toolchain + +Everything that acts on **this repository** rather than shipping to a user. + +`packages/*` is the product. This is the machinery that turns the product into +releases: it reads the repo, writes into it, and produces something outside it — +a version bump, a changelog, a commit, a tag, an npm package, a GitHub release. +Nothing in here is published, and nothing in here is imported by code that is. diff --git a/bin/publish.mjs b/toolchain/publish.mjs similarity index 100% rename from bin/publish.mjs rename to toolchain/publish.mjs