ipfs/boxo

Improve release process

lidel opened this issue · 1 comments

This is a meta issue in which I will be noting room for improvement based on experience from #622

Likely will either extract below into separate issues, or use as rationale for making improvements to the process from https://github.com/ipfs/boxo/blob/main/RELEASE.md

Current release process of Boxo is somehow similar to Kubo. If we simplify things here, we may be able to simplify Kubo as well.

Discovered problems

No dependency update

go get -t -u ./... and mod tidy in . and examples/ was never mentioned, but should be something we do on every release.

Manual labor

Release requires creating two PRs and manually editing changelog and version.json.
This is despite automations that, at the end of the day, just read version.json and create git tag.

What's changed on /releases is invalid

Draft release has incorrect "Whats changed" generated by github, it includes commits for previous release, and not the current one:

v0.20 has entries from v0.19 v0.21 has entries from v20 🙃
image image

Proposed improvements

  • optimize for golden path, and not rare bugfix releases
    • remove need for release branch.
    • rationale: if we need to backport a bugfix release, we can tag it manually, no need for automation. need for backporting does not arise often. we did not had to do it in the past year (afaik). a patch release was always enough. it is better to do more manual work on such rare occassion, than to spend entire day releasing ebvery day
  • update https://github.com/ipfs/boxo/blob/main/RELEASE.md to reflect improvements

Release Please creating release PR from unreleased changes in main

IDEA: switch to release-please creating a PR with unreleased changes.

We use this successfully in other projects already, and it objectively removes bunch of manual work, and surface for errors:

Prior art: ipfs/ipfs-desktop#2828, ipfs/service-worker-gateway#264), ipfs/helia#563