2.8 KiB
2.8 KiB
Releasing Process
We always have to start with current version x.y.0-snapshot (in all Cargo.toml).
CHANGELOG
- 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
Release steps
Used to publish a new release from master branch (normal process).
- Run
release.ymlworkflow onmasterbranch - Fill
Desired delivery versioninput with thex.y.zversion you want to publish, it will:- Clean pending release
- Create new
release/x.y.0branch - Checkout this new branch
- Update all toml, crates, man and docs with
x.y.0 - Generate CHANGELOG
- Commit all updates
- Create the
x.y.0tag - Create draft GitHub release
x.y.0 - Create PR from
release/x.y.0tomaster - 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.0tomasterwith/accept - Run
extra-package.ymlworkflow onmasterbranch filling in thedesired tag versionand selecting wanted extra packages - Run
update-branch-version.ymlworkflow onmasterbranch, filling in thedesired SNAPSHOT version, it will:- Create
bot/update-branch-version-masterbranch - Checkout this new branch
- Update all toml, crates, and man with
desired SNAPSHOT version - Commit all updates
- Create PR from
bot/update-branch-version-mastertomaster
- Create
- Accept the PR from
bot/update-branch-version-mastertomasterwith/accept
Hotfix steps
Used when you want to deliver a fix from a published release (tag).
- Create a new branch
release/x.y.zfrom desired tagx.y.zby increasing the patch version, for examplerelease/4.0.1from tag4.0.0 - Run
release.ymlworkflow on existingrelease/x.y.zbranch - Fill
Desired delivery versioninput yourx.y.zversion, 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.ztag - Create draft GitHub release
x.y.z - Create PR from
release/x.y.ztomaster - Publish the draft release
- Change the release status from draft to public on github
- Close the PR from
release/x.y.ztomasterand manage it manually rebasing commits to reorder history and keep it linear
Additional
- Push package to Chocolatey
- Push package to Winget
- Push package to Docker
- Push package to Brew
- Push source packages to crates.io