ipfs / boxo

A set of reference libraries for building IPFS applications and implementations in Go.
https://github.com/ipfs/boxo#readme
Other
181 stars 83 forks source link

Improve release process #623

Open lidel opened 3 weeks ago

lidel commented 3 weeks ago

This is a meta issue in which I will be noting room for improvement based on experience from https://github.com/ipfs/boxo/pull/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

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: https://github.com/ipfs/ipfs-desktop/pull/2828, https://github.com/ipfs/service-worker-gateway/pull/264), https://github.com/ipfs/helia/pull/563