docs: proposed prerelease channels design (RFC)#104
Open
theoephraim wants to merge 2 commits into
Open
Conversation
Draft design doc for branch-based prerelease support. Models channels as long-lived branches (next, beta, etc.) with bump files tracked by directory location — pending at .bumpy/*, shipped at .bumpy/<channel>/, consolidated on promotion to main. Documents the comparison with changesets' pre mode and what's deliberately out of scope. Not yet implemented — sharing for user feedback before building.
Channels are for long-lived release lines (next/beta/rc), not per-PR previews. Add a "when to use this" section and point users at pkg.pr.new for ephemeral PR packages.
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.
Summary
Draft design doc for branch-based prerelease support. Sharing for user feedback before building — please push back on anything that feels off.
The TL;DR of the design:
next/beta/ etc. branch in.bumpy/_config.json. Pushing to it produces-rc.N/-beta.Nversions on the matching dist-tag, using the sameci releaseflow asmain..bumpy/*.md, shipped at.bumpy/<channel>/*.md.ls .bumpy/shows exactly what's pending vs shipped.pre enter/pre exitcommands, no committed state file like changesets'pre.json.next→maincarries shipped bump files forward; main strips the suffix and consolidates everything into a single stableCHANGELOG.mdentry.The doc walks through the full lifecycle, dependency-cascade defaults, hotfix flow, counter behavior, and a side-by-side comparison with changesets' pre mode (with links to the specific known bugs the design avoids).
Why not just match changesets' pre mode?
Changesets' own docs describe their prerelease mode as "very complicated" with "mistakes that can lead to repository and publish states that are very hard to fix." The doc surveys the recurring complaints (#239, #381, #729, #786, #960) and aims to design them out rather than re-import them.
What's deliberately out of scope (for now)
0.0.0-pr-123-<sha>) — planned as a separatebumpy publish --snapshotflag.channel:frontmatter — not planned; channels stay branch-derived.Test plan
Nothing is built yet, so feedback can move freely on the design before we lock anything in.