Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.34 #10685

Open
35 of 47 tasks
lidel opened this issue Jan 30, 2025 · 3 comments
Open
35 of 47 tasks

Release 0.34 #10685

lidel opened this issue Jan 30, 2025 · 3 comments

Comments

@lidel
Copy link
Member

lidel commented Jan 30, 2025

Meta

Items In Scope

Required

Nice To Have (Optional)

@lidel lidel pinned this issue Jan 30, 2025
@lidel
Copy link
Member Author

lidel commented Feb 27, 2025

We are investigating some regressions on staging environment, RC1 may be delayed until we understand what caused them (go-libp2p update? boxo? go 1.24?). We also noticed accelerated client is gathering too many addrs, looking into that as well.

If anyone wants to start testing features like AutoTLS enabled by default sooner, the docker image is ipfs/kubo:master-2025-02-25-baa94fc

@lidel
Copy link
Member Author

lidel commented Mar 5, 2025

✅ Release Checklist (v0.34.0-rc1)

1. Prepare release branch

  • Prepare the release branch and update version numbers accordingly
    • create a new branch release-vX.Y.Z
      • use master as base if Z == 0
      • use release as base if Z > 0
    • update the CurrentVersionNumber in version.go in the master branch to vX.Y+1.0-dev (example)
    • update the CurrentVersionNumber in version.go in the release-vX.Y.Z branch to vX.Y.Z(-rcN) (example)
    • create a draft PR from release-vX.Y.Z to release (example)
    • Cherry-pick commits from master to the release-vX.Y.Z using git cherry-pick -x <commit> (example)
      • NOTE: cherry-picking with -x is important
    • Replace the Changelog and Contributors sections of the changelog with the stdout (do NOT copy the stderr) of ./bin/mkreleaselog.
      • NOTE: mkreleaselog expects your $GOPATH/src/github.com/ipfs/kubo to include latest commits from release-vX.Y.Z
    • verify all CI checks on the PR from release-vX.Y.Z to release are passing
    • Merge the PR from release-vX.Y.Z to release using the Create a merge commit
      • do NOT use Squash and merge nor Rebase and merge because we need to be able to sign the merge commit
      • do NOT delete the release-vX.Y.Z branch

2. Tag release

  • Create the release tag
    • ⚠️ NOTE: This is a dangerous operation! Go and Docker publishing are difficult to reverse! Have the release reviewer verify all the commands marked with !
    • tag the HEAD commit using git tag -s vX.Y.Z(-rcN) -m 'Prerelease X.Y.Z(-rcN)'
    • tag the HEAD commit of the release branch using git tag -s vX.Y.Z -m 'Release X.Y.Z'
    • ⚠️ verify the tag is signed and tied to the correct commit using git show vX.Y.Z(-rcN)
    • push the tag to GitHub using git push origin vX.Y.Z(-rcN)
      • ⚠️ do NOT use git push --tags because it pushes all your local tags

3. Publish

4. After Publishing

  • Merge the release branch back into master
    • Create a new branch merge-release-vX.Y.Z from release
    • Create the next ./docs/changelogs/vA.B.md and link to the new changelog from the ./CHANGELOG.md file
    • Create and merge a PR from merge-release-vX.Y.Z to master
      • ⚠️ do NOT use Squash and merge nor Rebase and merge because we need to be able to sign the merge commit
      • ⚠️ NOTE: make sure to ignore the changes to version.go (keep the -dev in master)
  • Update Kubo staging environment, see the Running Kubo tests on staging for details.
    • Test last release against the current RC
    • Test last release against the current one
  • Promote the release
  • Manually smoke-test the new version with IPFS Companion Browser Extension
  • Update Kubo in ipfs-desktop
    • check out ipfs/ipfs-desktop
    • run npm install
    • create a PR which updates package.json and package-lock.json
  • Update Kubo docs at docs.ipfs.tech:
  • Create a blog entry on blog.ipfs.tech
    • create a PR which adds a release note for the new Kubo version (example)
    • merge the PR
    • verify the blog entry was published
  • Create a dependency update PR
    • check out ipfs/kubo
    • go over direct dependencies from go.mod in the root directory (NOTE: do not run go get -u as it will upgrade indirect dependencies which may cause problems)
    • run make mod_tidy
    • create a PR which updates go.mod and go.sum
    • add the PR to the next release milestone
  • Create the next release issue
  • Close the release issue

This was referenced Mar 5, 2025
@lidel
Copy link
Member Author

lidel commented Mar 6, 2025

Kubo v0.34.0-rc1 is out!

Early testers ping for RC1 testing:

You're getting this message because you're listed here. Open PR to update that list if you no longer want to be included in these pings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant