3.2 KiB
3.2 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
- Fill
- 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- Once
push to chocolateyis done, all notifications about validation process will be sent to lepapareil's mail - To make
push to wingetwork, please wait for the message "Initiating GitHub login..." in job log and follow the guide !
- Once
- 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.zmanually by increasing the patch version, for examplerelease/6.1.1from tag6.1.0 - Create your fix branch, work on it then merge it to the new fresh
release/x.y.z - 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
- Fill
- 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