Versioning and upgrading¶
release-tools follows the release process itself and uses Semantic Versioning
from 1.0.0:
- Major: consumers must change something: a stub's inputs, secrets or required permissions, the names of the PR checks, or the release behaviour.
- Minor: new optional inputs or features, changelog format changes that need no action.
- Patch: fixes.
Consumers pin an exact tag (@v1.2.0) in all three stubs and in the actions of the
publish workflow, and keep them in step. Dependabot's github-actions ecosystem updates
both reusable workflows and actions; group them so that one PR moves every reference:
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
release-tools:
patterns:
- "Algorithmiq/release-tools*"
Pre-releases of release-tools (v1.2.0b1, v1.2.0rc1) are real tags: pin one in a
repository to try a change before it is released. Immutable releases make every published
tag permanent, so a pinned version can never change under a consumer.
Upgrading to v1.2.0¶
v1.2.0 brings alphas and betas, and changes visible to existing consumers:
- Dual backports during every release candidate window. With the default
stage: rc, every release now has an rc window during which backports go to both lines: the branch in pre-release and the newest released branch. The previous line gets a backport PR and a patch release PR, which the X.Y.0 final closes. - Backport suggestion comment. Merged
fixandperfPRs without thebackportlabel get a comment suggesting it. sync-changelogadds only the release's own section tomain. Wording fixes a release PR makes to older sections no longer reachmain.- The stub needs the
stageinput. Pin v1.2.0 and addstage:to the stub's inputs, with the same description, type, required and default as in release.yml.