feat: add edge prerelease channel and start stable at 0.1.0 (PROT-40)#4
Merged
Conversation
Adds a rolling 'edge' prerelease channel: edge.yml rebuilds the tip of main on code changes and replaces a single prerelease under the moving 'edge' tag (versioned by MinVer, e.g. 0.1.0-alpha.0.N). The installers gain --channel stable|edge to pick the track. Stable stays on release-please. Also fixes the first stable version: release-please defaults the first release to 1.0.0, but we are pre-1.0. Set the manifest and version.txt to 0.0.1 and add bump-minor-pre-major so the first release computes as 0.1.0 and breaking changes stay in 0.x. Refs: PROT-40 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
So the edge channel reports 0.1.0-alpha.0.N before the first v0.1.0 tag exists, instead of 0.0.0-alpha. Stable (tagged) builds are unaffected. Refs: PROT-40 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ljones491
approved these changes
Jun 1, 2026
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
Adds a rolling edge prerelease channel and fixes the initial stable version. protostar now ships on two tracks, matching how Claude Code, rustup, and GoReleaser-based CLIs do it.
Jira: PROT-40
0.1.0vX.Y.Z, normal release (releases/latest)--channel stable(default)main0.1.0-alpha.0.Nedgetag,prerelease, assets replaced--channel edgeWhat's in here
1. Edge channel —
.github/workflows/edge.ymlmain, path-filtered tosrc/**,**/*.csproj,Directory.Build.props, and the workflow itself (docs/CI-only merges don't rebuild).edgetag at the new commit and replaces the prerelease's assets via theghCLI (no new third-party actions). Delete + recreate keeps the download URLs stable (releases/download/edge/<asset>).concurrency: edgewith cancel-in-progress so overlapping merges don't fight over the release.2. Installer channel selection —
scripts/install.{sh,ps1}--channel stable|edge(sh) /-Channel stable|edge(ps1), defaultstable. stable pullsreleases/latest, edge pullsreleases/download/edge. Same asset names, so only the URL differs.3. Initial stable version fix
1.0.0(it ignores pre-major options when the manifest is0.0.0— their issue #2087). We're pre-1.0. Setting the manifest +version.txtto0.0.1and addingbump-minor-pre-majormakes the first release compute as0.1.0, and keeps future breaking changes inside0.x.Why it composes
The
edgetag doesn't start withv, so MinVer ignores it — the edge channel can't perturb stable version computation, and release-please only manages its ownv*tags. No collisions.Side effects after merge
version.txt/CHANGELOG/manifest) won't trigger an edge rebuild.Verify
🤖 Generated with Claude Code