Skip to content

Release 0.35 #10760

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

Open
23 of 40 tasks
lidel opened this issue Mar 20, 2025 · 4 comments
Open
23 of 40 tasks

Release 0.35 #10760

lidel opened this issue Mar 20, 2025 · 4 comments
Assignees
Labels
topic/release Topic release

Comments

@lidel
Copy link
Member

lidel commented Mar 20, 2025

Part of ongoing maintenance of key libraries and services ipshipyard/roadmaps#1 and ipshipyard/roadmaps#6

Meta

Items In Scope

Required

This release will focus on provider system improvements and HTTP retrieval (opt-in)

Bugs in RC1 fixed in RC2

Nice To Have (Optional)

@lidel lidel added the kind/feature A new feature label Mar 20, 2025
@lidel lidel self-assigned this Mar 20, 2025
@lidel lidel added topic/release Topic release and removed kind/feature A new feature labels Mar 20, 2025
@lidel lidel pinned this issue Mar 20, 2025
@lidel
Copy link
Member Author

lidel commented Apr 30, 2025

We've landed nearly everything in master branch, HTTP retrieval remains in #10772, needs E2E test to be fixed.

Planning RC1 next week (Thu-Wed, depending how long it takes to figure out the E2E test)

@lidel
Copy link
Member Author

lidel commented May 6, 2025

All required changes are in master branch 🎉
Changelog draft: https://github.com/ipfs/kubo/blob/master/docs/changelogs/v0.35.md
We will likely cut 0.35.0-rc1 tomorrow (Wed 7th)

@lidel
Copy link
Member Author

lidel commented May 7, 2025

✅ Release Checklist (v0.35.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

@lidel
Copy link
Member Author

lidel commented May 7, 2025

Kubo v0.35.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
topic/release Topic release
Projects
None yet
Development

No branches or pull requests

1 participant