ci: separate patch, minor, and major version bumps#259
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the release automation to make post-release bumps on main always advance the beta patch (X.YbN → X.Yb(N+1).dev), and introduces maintainer-triggered workflows for explicit minor/major version line moves. This simplifies patch releases on main and makes minor/major transitions an explicit workflow-driven action.
Changes:
- Adjusts the post-release dev bump script to always increment the patch component (including the
patch==0case). - Adds dedicated minor/major bump scripts and two new manual workflows to open bump PRs for a single package.
- Renames workflows/docs and replaces the old
prepare-packagecomposite action with a newbump-packagecomposite action driven by anoperationinput.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/bump_package_minor_version.sh | New script to bump a package to the next minor .dev version. |
| scripts/bump_package_major_version.sh | New script to bump a package to the next major .dev version. |
| scripts/bump_package_dev_version.sh | Changes dev bump logic to always bump patch after a release. |
| RELEASING.md | Documents the new version cadence and updated workflow names/flows. |
| .github/workflows/prepare-release.yml | Renames “Prepare minor release” to “Prepare release” (name/run-name). |
| .github/workflows/prepare-backport-patch.yml | Renames workflow and switches to the new composite action + client-id inputs. |
| .github/workflows/bump-package-minor.yml | New workflow to open a “bump minor” PR for a single package. |
| .github/workflows/bump-package-major.yml | New workflow to open a “bump major” PR for a single package. |
| .github/actions/prepare-package/action.yml | Removes the old composite action. |
| .github/actions/bump-package/action.yml | Adds the new composite action that dispatches by operation. |
| path="./$(./scripts/eachdist.py find-package --package "$package")" | ||
| version="$(./scripts/eachdist.py version --package "$package")" | ||
| version_file="$(find "$path" -type f -path "**/version.py")" | ||
|
|
| path="./$(./scripts/eachdist.py find-package --package "$package")" | ||
| version="$(./scripts/eachdist.py version --package "$package")" | ||
| version_file="$(find "$path" -type f -path "**/version.py")" | ||
|
|
| path="./$(./scripts/eachdist.py find-package --package "$package")" | ||
| version="$(./scripts/eachdist.py version --package "$package")" | ||
| version_file="$(find "$path" -type f -path "**/version.py")" | ||
|
|
|
This PR has review comments. Review suggestions, whether from maintainers or automated reviewers, aren't always correct or required. Please evaluate each comment on its merits, then make sure each thread has a clear outcome. For example, link to the commit if you applied a suggestion, explain why it wasn't applied, or ask a follow-up question. Automation flags a PR for human review once every review thread has a reply or is marked as resolved. Status across open PRs is visible on the pull request dashboard. |
Closes #258. Supersedes #252.
Post-release bump on
mainnow always increments the beta patch component (X.YbN → X.Yb(N+1).dev), soPrepare releaseonmainreliably ships the next patch. Minor and major bumps are now maintainer-led, via two new workflows.Changes:
scripts/bump_package_dev_version.sh: drop thepatch=0 → minor+1special case; always bump patch.scripts/bump_package_minor_version.shandbump_package_major_version.sh(accept.devor non-.devinputs).bump-package-minor.ymlandbump-package-major.ymlthat open a bump PR for a single package.prepare-minor.yml→prepare-release.yml(the workflow always dropped.dev; the "minor" label was misleading now that main can be at any version type).prepare-package-patch.yml→prepare-backport-patch.yml(this path is now backport-only; patch releases onmaingo through the normalPrepare releaseflow after the auto-bump lands)..github/actions/prepare-packagecomposite with.github/actions/bump-package, driven by anoperationinput (drop-dev|bump-patch|bump-minor|bump-major).RELEASING.mdupdated to document the new model and workflow filenames.Breaking: workflow filenames changed. PyPI trusted publisher entries reference the release workflows (
release-package.yml,release-all.yml), which are unchanged, so no PyPI-side updates needed.Relationship to #252: that PR patches the specific script-dispatch symptom by routing
release_type=patchon main toprepare_package_for_patch_release.sh. This PR removes the "release_type on main" concept entirely by making patch bumps automatic and moving minor/major to dedicated workflows. If this PR lands, #252 can be closed as superseded. If #252 lands first, I'll rebase and keep the delete onprepare-package/action.yml(the newbump-packagecomposite covers the same intent).