fix: switch dev tags to semver and use same release pipeline as stable#729
fix: switch dev tags to semver and use same release pipeline as stable#729
Conversation
Dev releases now use semver-compatible tags (v0.4.7-dev.3 instead of PEP 440 v0.4.7.dev3) and are created as draft pre-releases, flowing through the exact same pipeline as stable releases: 1. dev-release.yml creates draft pre-release + tag (via PAT) 2. Docker workflow builds, scans, pushes, attaches SBOMs to draft 3. CLI workflow builds via GoReleaser, attaches binaries to draft 4. finalize-release publishes once both succeed This fixes two failures: - GoReleaser rejected PEP 440 tags as invalid semver - SBOM upload failed on published (immutable) dev releases Same artifacts, same signing, same attestations -- zero special-casing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📜 Recent review details⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
🧰 Additional context used🧠 Learnings (22)📓 Common learnings📚 Learning: 2026-03-22T13:59:44.140ZApplied to files:
📚 Learning: 2026-03-22T13:59:44.140ZApplied to files:
📚 Learning: 2026-03-22T13:59:44.140ZApplied to files:
📚 Learning: 2026-03-15T18:17:43.675ZApplied to files:
📚 Learning: 2026-03-15T16:38:08.735ZApplied to files:
📚 Learning: 2026-03-15T21:32:02.880ZApplied to files:
📚 Learning: 2026-03-19T07:12:14.508ZApplied to files:
📚 Learning: 2026-03-19T07:12:14.508ZApplied to files:
📚 Learning: 2026-03-19T07:12:14.508ZApplied to files:
📚 Learning: 2026-03-15T12:00:18.113ZApplied to files:
📚 Learning: 2026-03-22T13:59:44.140ZApplied to files:
📚 Learning: 2026-03-19T11:33:01.580ZApplied to files:
📚 Learning: 2026-03-22T13:59:44.140ZApplied to files:
📚 Learning: 2026-03-15T12:00:18.113ZApplied to files:
📚 Learning: 2026-03-15T21:32:02.880ZApplied to files:
📚 Learning: 2026-03-19T11:19:40.044ZApplied to files:
📚 Learning: 2026-03-22T13:59:44.140ZApplied to files:
📚 Learning: 2026-03-15T21:32:02.880ZApplied to files:
📚 Learning: 2026-03-22T13:59:44.140ZApplied to files:
📚 Learning: 2026-03-15T21:32:02.880ZApplied to files:
📚 Learning: 2026-03-15T18:17:43.675ZApplied to files:
🔇 Additional comments (4)
WalkthroughThis pull request switches dev release tagging from PEP 440 style ( Suggested labels
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request streamlines the development release process by adopting a semver-compliant tag format and integrating dev releases into the existing stable release pipeline. This change resolves previous incompatibilities with GoReleaser and asset uploads, ensuring a consistent and robust release workflow for both development and stable versions. Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request updates the development tag format from a PEP 440 style (.devN) to a semver-compliant one (-dev.N). This change is aimed at making the tags parsable by GoReleaser and unifying the release pipeline for both stable and development builds. The modifications in the Go code to handle the new tag format, along with the corresponding updates to test cases and documentation, are all correct and consistent with the stated goal. The changes are well-implemented and I have not found any issues.
🤖 I have created a release *beep* *boop* --- ## [0.4.7](v0.4.6...v0.4.7) (2026-03-22) ### Features * add system user for CLI-to-backend authentication ([#710](#710)) ([dc6bd3f](dc6bd3f)) * dev channel builds with incremental pre-releases between stable releases ([#715](#715)) ([0e8a714](0e8a714)) * replace hardcoded name pools with Faker multi-locale name generation ([#714](#714)) ([5edc6ec](5edc6ec)) ### Bug Fixes * dev-release tag creation, dependabot coverage, go -C cli convention ([#730](#730)) ([7634843](7634843)) * improve name generation step UX and fix sentinel expansion bug ([#739](#739)) ([f03fd05](f03fd05)) * settings page UX polish -- toggle bug, source badges, form improvements ([#712](#712)) ([d16a0ac](d16a0ac)) * switch dev tags to semver and use same release pipeline as stable ([#729](#729)) ([4df6b9b](4df6b9b)), closes [#713](#713) * unify CLI image discovery and standardize Go tooling ([#738](#738)) ([712a785](712a785)) * use PAT in dev-release workflow to trigger downstream pipelines ([#716](#716)) ([d767aa3](d767aa3)) ### CI/CD * bump astral-sh/setup-uv from 7.4.0 to 7.6.0 in /.github/actions/setup-python-uv in the minor-and-patch group ([#731](#731)) ([7887257](7887257)) * bump the minor-and-patch group with 3 updates ([#735](#735)) ([7cd253a](7cd253a)) * bump wrangler from 4.75.0 to 4.76.0 in /.github in the minor-and-patch group ([#732](#732)) ([a6cafc7](a6cafc7)) * clean up all dev releases and tags on stable release ([#737](#737)) ([8d90f5c](8d90f5c)) ### Maintenance * bump the minor-and-patch group across 2 directories with 2 updates ([#733](#733)) ([2b60069](2b60069)) * bump the minor-and-patch group with 3 updates ([#734](#734)) ([859bc25](859bc25)) * fix dependabot labels and add scope tags ([#736](#736)) ([677eb15](677eb15)) * remove redundant pytest.mark.timeout(30) markers ([#740](#740)) ([9ec2163](9ec2163)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Summary
v0.4.7.dev3) to semver (v0.4.7-dev.3) so GoReleaser can parse themWhy
After merging #715 and #716, the dev-release workflow correctly created tags and triggered downstream pipelines, but both failed:
v0.4.7.dev4as invalid semver (failed to parse tag as semver)How it works now
Same pipeline, zero special-casing:
dev-release.ymlcreates draft pre-release + tag (via PAT)finalize-release.ymlpublishes the draft once both succeedThis is identical to the stable release flow.
Changes
dev-release.yml: semver tag format (-dev.N),--draft --prerelease, updated grep/jq filtersdocker.yml:.dev->-dev.in all contains() checksfinalize-release.yml: removed!contains(.dev)guard -- handles both stable and devcli/internal/selfupdate/updater.go:splitDevandselectBestReleaseparse-dev.formatcli/internal/selfupdate/updater_version_test.go: all test cases updatedcli/internal/selfupdate/updater_test.go: integration test cases updatedCLAUDE.md: updated tag examples and descriptionsv0.4.7.dev3andv0.4.7.dev4releases/tagsTest plan
dev-release.yml, createsv0.4.7-dev.Ntag + draft pre-releasefinalize-releasepublishes the draft after both succeedgo test ./...passes (verified locally)synthorg updateon dev channel finds semver dev releasesCloses #713