We always have to start with current version x.y.0-snapshot (in all Cargo.toml).
- Add Enhancement or Bug label to the issue
- Add target milestone to the issue
- Use a well formatted description on PR (starts with a verb)
- Add link(s) to the issue
Used to publish a new release from master branch (normal process).
- Run
release.yml
workflow onmaster
branch - Fill
Desired delivery version
input with thex.y.z
version you want to publish, it will:- Clean pending release
- Create new
release/x.y.0
branch - Checkout this new branch
- Update all toml, crates, man and docs with
x.y.0
- Generate CHANGELOG
- Commit all updates
- Create the
x.y.0
tag - Create draft GitHub release
x.y.0
- Create PR from
release/x.y.0
tomaster
- Publish the draft release
- Test release on external test project
- Change the release status from draft to public on github
- Accept the PR from
release/x.y.0
tomaster
with/accept
- Run
extra-package.yml
workflow onmaster
branch filling in thedesired tag version
and selecting wanted extra packages - Run
update-branch-version.yml
workflow onmaster
branch, filling in thedesired SNAPSHOT version
, it will:- Create
bot/update-branch-version-master
branch - Checkout this new branch
- Update all toml, crates, and man with
desired SNAPSHOT version
- Commit all updates
- Create PR from
bot/update-branch-version-master
tomaster
- Create
- Accept the PR from
bot/update-branch-version-master
tomaster
with/accept
Used when you want to deliver a fix from a published release (tag).
- Create a new branch
release/x.y.z
from desired tagx.y.z
by increasing the patch version, for examplerelease/4.0.1
from tag4.0.0
- Run
release.yml
workflow on existingrelease/x.y.z
branch - Fill
Desired delivery version
input yourx.y.z
version, it will:- Clean pending release
- Checkout this new branch
- Update all toml, crates, man and docs with
x.y.z
- Generate CHANGELOG
- Commit all updates
- Create the
x.y.z
tag - Create draft GitHub release
x.y.z
- Create PR from
release/x.y.z
tomaster
- Publish the draft release
- Change the release status from draft to public on github
- Close the PR from
release/x.y.z
tomaster
and manage it manually rebasing commits to reorder history and keep it linear
- Push package to Chocolatey
- Push package to Winget
- Push package to Docker
- Push package to Brew
- Push source packages to crates.io