Conversation
workflow_dispatch entry point that bumps Cargo.toml via cargo set-version, commits, tags, pushes to main, and dispatches release.yml at the new tag. Mirrors lance-spark's release.yml (release_type x release_channel x dry_run inputs); preview channel auto-increments beta numbers. Direct tag push by GITHUB_TOKEN does not trigger downstream workflows (GitHub recursion guard), so the workflow uses 'gh workflow run' against the new tag's ref so release.yml's publish job (gated on refs/tags/v*) fires. Also: release.yml marks -beta/-rc tags as prerelease, and the README 'Releasing' section is rewritten with the workflow as the recommended path and the manual edit/commit/tag flow kept as a fallback. Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Summary
Adds a
workflow_dispatchentry point that does the bump-commit-tag-push dance for releases — mirrors lance-spark'srelease.ymlstructure, adapted to Cargo..github/workflows/create-release.yml(new) — Inputs:release_type(patch/minor/major/current) ×release_channel(preview/stable) ×dry_run. Bumps viacargo set-version, commits asgithub-actions[bot], tags, pushes tomain, thengh workflow run release.yml --ref <tag>to fire the existing publish job..github/workflows/release.yml— Marks-beta/-rctags as prerelease in the GitHub Release.README.md— "Releasing" rewritten: new workflow is the recommended path, manual edit/commit/tag flow kept as fallback.Why the explicit
gh workflow runGITHUB_TOKEN-pushed refs don't trigger downstream workflows (GitHub's recursion guard). So after pushing the tag, we explicitly dispatchrelease.ymlat the new tag's ref —workflow_dispatchevents bypass the guard, and running at the tag's ref makesgithub.ref=refs/tags/v*so the existing publish gate passes.Branch protection caveat
If
mainis a protected branch, the defaultGITHUB_TOKENmay be blocked from pushing. Either allow the GitHub Actions bot to bypass push restrictions, or swapGITHUB_TOKENfor a PAT (e.g. lance-spark'sLANCE_RELEASE_TOKEN) increate-release.yml.Test plan
Create Releasewith dry_run=true, release_type=current, release_channel=preview → verify the summary shows the next beta tag (e.g.v0.1.0-beta.1) and no commits/tags appear ingit log.Create Releasewith dry_run=false, release_type=patch, release_channel=preview → verify the bump commit lands onmain, the tag is created, andReleaseworkflow auto-runs and publishes a prerelease GitHub Release with the four.tar.xzartifacts.actionlint .github/workflows/*.ymlis clean (already verified locally).🤖 Generated with Claude Code