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 🙃 |
---|---|
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
- remove need for
- 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