docs(release): describe the release as it is now, and stop the plugin list rotting - #268
Merged
Merged
Conversation
… list rotting Two first-party plugins were added after release-check named its plugin manifests in a hardcoded list, so calendar and webhooks sat at 0.22.0 through the 0.23.0 release while the check reported coherence — the exact drift the check exists to catch, and the second time it has happened. release-check and release-bump now discover plugin manifests by walking plugins/, the way they already discover marketplace listings, and a plugin whose definePlugin version they cannot read is an error rather than a silent omission. Adding a plugin needs no edit to either script. The two stale versions are corrected to the release they shipped in. The document was written when there were fifty packages, two plugins and six marketplace listings; there are fifty-two, four and eight. Rather than restate a list that rots, it now gives the rule — everything not private: true — and points at release-check's own count. The procedure moves to the top, where a maintainer opening this page is looking for it, the one-time setup moves to the bottom, and the places the version is written are a table split by what keeps each honest, including the Vercel template that was missing from it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016zJzrmeiQvSnyuQbEThdwv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs/contributing/release.mdwas written when there were fifty packages, two first-party plugins and six marketplace listings. There are fifty-two, four and eight. Fixing the numbers alone would have left the same page to rot again at the next plugin, so this also removes the reason it rots — and, checking the document's claims against the code, turned up a live drift the release tooling was supposed to prevent.The bug the doc found
release-check.mjsnamed its plugin manifests in a hardcoded list of two, written when there were two. Calendar and Webhooks were added after it, so nothing checked theirdefinePluginversions:Both shipped in v0.23.0, and
pnpm release:checkreported coherence throughout, because it never looked at them./admin/pluginson a 0.23.0 board shows two plugins a release behind — the one place these constants are ever seen by an operator, and the exact failure the check exists to catch. The document already recorded this happening once before ("the plugin version once sat at0.1.0through two releases"); this is the second time, by a different route.Both scripts now discover plugin manifests by walking
plugins/, the way they already discovermarketplace/listings/— which is why the listings stayed correct when Calendar and Webhooks added theirs, and the plugin versions did not. A plugin whosedefinePluginversion cannot be read is an error rather than a silent omission, so a new plugin needs no edit to either script.release-bumpgets the same treatment, so a bump moves all four rather than two.The two stale versions are corrected to the release they shipped in.
release:checkgoes from2 plugin manifeststo4.This does not fix the published v0.23.0, where those two manifests still say 0.22.0. That is cosmetic and confined to what
/admin/pluginsdisplays — worth a line in the release notes, or a 0.23.1, whichever you prefer.What changed in the document
release:check, or by a generator's own--check. Writing it out that way turned uptemplates/vercel, a generated artifact that stamps the version and was missing from the document entirely.private: true— keeps the categories, which carry meaning, and points atrelease:check's own closing count as the number to trust. The count is quoted once, as sample output, rather than asserted in prose in three places.Net 23 lines shorter, with the reasoning kept — the sections on determinism, trusted publishing, the closed set and shipping TypeScript source are unchanged in substance.
Validated
pnpm release:check—4 plugin manifests, 8 listings, 52 packages, coherent at 0.23.0.pnpm release:bump 0.23.1run for real against a throwaway version: it rewrote all four plugin definitions and all four plugin manifests, regenerated every stamped document, andrelease:checkagreed at the bumped version. Reset afterwards; the tree is back at 0.23.0.pnpm docs:links:check— every internal link and anchor resolves, including the two anchors other pages depend on (#the-version-policyfrom the upgrading guide,#one-version-everywherefrom the marketplace page), both deliberately preserved.pnpm lint,pnpm comments:check,docs:index:check,site:docs:check,api:docs:check,marketplace:gen:check,board-installer:gen:check,vercel-template:gen:check,workspace:check,root:check,i18n:check— all pass.No version moved.
🤖 Generated with Claude Code
https://claude.ai/code/session_016zJzrmeiQvSnyuQbEThdwv
Generated by Claude Code