hurl/RELEASING.md
2023-06-01 17:15:14 +02:00

2.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

  • Run release.yml workflow on master branch, 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 to master
  • Publish the draft release
  • Accept the PR from release/x.y.0 to master with /accept
  • Run update-branch-version.yml workflow on master branch, filling in the desired 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 to master
  • Accept the PR from bot/update-branch-version-master to master with /accept

Hotfix steps

  • Create a new branch release/x.y.z from desired tag x.y.0, for example release/1.8.1 from tag 1.8.0
  • Run update-branch-version.yml workflow on the new branch filling version field with x.y.z-SNAPSHOT, for example 1.8.1-SNAPSHOT for release/1.8.1 branch
  • Run release.yml workflow on release/x.y.z branch, it will:
    • Clean pending release
    • Checkout release/x.y.z branch
    • Update all toml with x.y.z
    • Update all crate with x.y.z
    • Update 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 to master
  • You have to manually merge as a revert rebase to reorder commits between this new hotfix and master
  • Run update-branch-version.yml workflow on master to restore actual dev version to x.y+1.0-SNAPSHOT, for example from 1.8.1 to 1.9.0-SNAPSHOT

Additional

  • Push package to Chocolatey
  • Push package to winget
  • Push package to Docker
  • Push package to Brew
  • Push source packages to crates.io