Conversation
Every release currently needs a package.json bump PR before the tag, and the release workflow fails if the two disagree. The 1.1.1 release broke on exactly this dance, and the bump PR itself introduced a merge accident that took CI down. Stamp the version from the release tag inside the workflow instead. package.json in git holds a 0.0.0-development placeholder, and cutting a release is now just drafting a GitHub Release with a new tag name. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
Cutting a release currently means a package.json bump PR, a tag that must match it exactly, and a GitHub Release on top. The workflow refuses to publish if the tag and package.json disagree. The 1.1.1 release stalled on exactly this, and the bump PR (#50) was where the duplicate
scriptskey crept in that took CI down for three days. The version bump is pure ceremony that creates opportunities for mistakes and nothing else.This makes the release tag the single source of truth. The workflow validates the tag is semver (a leading
vis accepted and stripped), writes it into package.json withnpm version, and publishes. package.json in git holds a0.0.0-developmentplaceholder, so nobody touches it for releases again. Cutting a release is now: draft a GitHub Release, type a new tag name, generate notes, publish.Alternatives considered:
npm versionand pushes to main. Needs a token that bypasses branch protection and races with concurrent merges.Trade-off:
altis-cli --versionfrom a git clone reports the placeholder. Installs from npm, which is how anyone actually uses this, report the real version. Provenance is unaffected since npm reads the version from the tarball.Verified locally that the tag regex accepts
1.2.0,v1.2.0and1.2.0-beta.1and rejectsrelease-1.2, and thatnpm versionstamps both package.json and the lockfile.Once merged, cut 1.1.1 again by drafting a release with tag
1.1.1targeting main.🤖 Generated with Claude Code
This PR was posted by AI on Joe's behalf.