kubo icon indicating copy to clipboard operation
kubo copied to clipboard

Release 0.30

Open lidel opened this issue 1 year ago • 9 comments

Meta

  • Release owner: @lidel
  • Release reviewer: @gammazero
  • RC1 date: Aug 21st
  • RC2 date: Aug 28th
  • 🚢 Expected final release date: Sep 4th
  • Release PR: https://github.com/ipfs/kubo/pull/10490
  • Thunderdome PR:
  • Accompanying PR for improving the release process: https://github.com/ipfs/kubo/pull/10496
  • Changelog: https://github.com/ipfs/kubo/blob/master/docs/changelogs/v0.30.md

Items In Scope

Required

  • [x] https://github.com/ipfs/kubo/pull/10463
  • [x] https://github.com/ipfs/kubo/pull/10468
  • [x] https://github.com/ipfs/kubo/pull/10430
  • [x] https://github.com/ipfs/boxo/pull/618
  • [x] https://github.com/ipfs/kubo/pull/10444
  • [x] https://github.com/ipfs/kubo/issues/10416 with https://github.com/libp2p/go-libp2p/pull/2861
  • [x] https://github.com/ipfs/boxo/issues/527
  • [ ] test docker on raspberrypi, investigate docker arm warning (log)
  • [x] https://github.com/ipfs/kubo/pull/10462
  • [x] https://github.com/ipfs/kubo/pull/10227
  • [x] https://github.com/ipfs/boxo/pull/651
  • [x] https://github.com/ipfs/kubo/issues/10461
  • [x] https://github.com/ipfs/kubo/pull/10473
  • [x] https://github.com/ipfs/kubo/pull/10477
  • [x] https://github.com/ipfs/kubo/pull/10483
  • [x] https://github.com/ipfs/kubo/pull/10485
  • [x] go-libp2p-kad-dht regression; CanConnect fix https://github.com/libp2p/go-libp2p-kad-dht/pull/976
    • [x] https://github.com/ipfs/kubo/pull/10488 & https://github.com/libp2p/go-libp2p-kad-dht/pull/980
  • [x] https://github.com/ipfs/kubo/pull/10494

Nice To Have (Optional)

  • [x] https://github.com/ipfs/boxo/pull/659
  • [x] https://github.com/ipfs/kubo/pull/10480
  • [x] https://github.com/ipfs/kubo/pull/10478
  • [x] https://github.com/ipfs/boxo/pull/649
  • [x] https://github.com/ipfs/kubo/pull/10472
  • [x] https://github.com/ipfs/boxo/pull/643
  • [x] https://github.com/ipfs/kubo/pull/10466
  • [x] https://github.com/ipfs/kubo/pull/10438
  • [x] https://github.com/ipfs/kubo/pull/10441
  • [x] https://github.com/ipfs/kubo/pull/10486
  • [x] https://github.com/ipfs/kubo/pull/10497

lidel avatar May 28 '24 17:05 lidel

We've found a potential regression in go-libp2p-kad-dht and RC1 will be slightly delayed until we have a fix. In the meantime, working on Support for UnixFS 1.5 Mode and ModTime and hoping to include it in RC1 as well.

lidel avatar Aug 14 '24 14:08 lidel

go-libp2p-kad-dht regression should be fixed by dependency update made in https://github.com/ipfs/kubo/pull/10488.

Release dance for 0.30.0-rc1 is unblocked.

lidel avatar Aug 21 '24 22:08 lidel

✅ Release Checklist (v0.30.0-rc1)

  • [x] Prepare the release branch and update version numbers accordingly
    using ./kuboreleaser --skip-check-before release --version vX.Y.Z(-rcN) prepare-branch or ...
    • [ ] 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
    • [ ] update the CurrentVersionNumber in version.go in the release-vX.Y branch to vX.Y.Z(-RCN)
    • [ ] create a draft PR from release-vX.Y to release
    • [ ] Cherry-pick commits from master to the release-vX.Y.Z using git cherry-pick -x <commit>
    • [ ] Add full changelog and contributors to the changelog
      • [ ] Replace the Changelog and Contributors sections of the changelog with the stdout of ./bin/mkreleaselog
        • do NOT copy the stderr
    • [ ] verify all CI checks on the PR from release-vX.Y to release are passing
    • [ ] Merge the PR from release-vX.Y 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 branch
  • [x] Create the release tag
    using ./kuboreleaser release --version vX.Y.Z(-rcN) tag or ...
    • 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
  • [x] Publish the release to DockerHub
    using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
  • [x] Verify ipfs/distributions's .tool-versions's golang entry is set to the latest go release on the major go branch Kubo is being tested on (see go-version:).
  • [x] Publish the release to dist.ipfs.tech
    using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-distributions or ...
    • [ ] check out ipfs/distributions
    • [ ] run ./dist.sh add-version kubo vX.Y.Z(-RCN) to add the new version to the versions file
    • [ ] create and merge the PR which updates dists/kubo/versions and dists/go-ipfs/versions ( and dists/kubo/current_version and dists/go-ipfs/current_version)
    • [ ] wait for the CI workflow run initiated by the merge to master to finish
    • [ ] verify the release is available on dist.ipfs.tech
  • [x] Publish the release to NPM
    using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-npm (⚠️ you might need to run the command a couple of times because GHA might not be able to see the new distribution straight away due to caching) or ...
    • [ ] run the Release to npm workflow
    • [ ] check Release to npm workflow run logs to verify it discovered the new release
    • [ ] verify the release is available on NPM
  • [x] Publish the release to GitHub
    using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-github or ...
    • [ ] create a new release on GitHub
      • RC example
      • FINAL example
      • [ ] use the vX.Y.Z(-RCN) tag
      • [ ] link to the release issue
      • [ ] link to the changelog in the description
      • [ ] check the This is a pre-release checkbox
      • [ ] copy the changelog (without the header) in the description
      • [ ] do NOT check the This is a pre-release checkbox
    • [ ] run the sync-release-assets workflow
    • [ ] wait for the sync-release-assets workflow run to finish
    • [ ] verify the release assets are present in the GitHub release
  • [ ] Run Thunderdome testing, see the Thunderdome release docs for details
    • [ ] create a PR and merge the experiment config into Thunderdome
  • [x] Promote the release
    using ./kuboreleaser release --version vX.Y.Z(-rcN) promote or ...
  • [ ] ~~Test the new version with ipfs-companion~~ (currently skipped)
    using ./kuboreleaser release --version vX.Y.Z(-rcN) test-ipfs-companion or ...
    • [ ] run the e2e
      • use vX.Y.Z(-RCN) as the Kubo image version
    • [ ] wait for the e2e workflow run to finish
  • [ ] Update Kubo in ipfs-desktop
    using ./kuboreleaser release --version vX.Y.Z(-rcN) update-ipfs-desktop or ...
    • [ ] check out ipfs/ipfs-desktop
    • [ ] run npm install
    • [ ] create a PR which updates package.json and package-lock.json
    • [ ] add @SgtPooki as reviewer
  • [ ] Update Kubo docs
    using ./kuboreleaser release --version vX.Y.Z(-rcN) update-ipfs-docs or ...
  • [ ] Create a blog entry on blog.ipfs.tech
    using ./kuboreleaser release --version vX.Y.Z(-rcN) update-ipfs-blog --date YYYY-MM-DD or ...
    • [ ] create a PR which adds a release note for the new Kubo version
    • [ ] merge the PR
    • [ ] verify the blog entry was published
  • [ ] Merge the release branch back into master, ignoring the changes to version.go (keep the -dev) version,
    using ./kuboreleaser release --version vX.Y.Z(-rcN) merge-branch or ...
    • [ ] create a new branch merge-release-vX.Y.Z from release
    • [ ] create and merge a PR from merge-release-vX.Y.Z to master
  • [ ] Prepare for the next release
    using ./kuboreleaser release --version vX.Y.Z(-rcN) prepare-next or ...
    • [ ] Create the next changelog
    • [ ] Link to the new changelog in the CHANGELOG.md file
    • [ ] Create the next release issue
  • [ ] Create a dependency update PR
    • [ ] check out ipfs/kubo
    • [ ] run go get -u in root directory
    • [ ] run make mod_tidy
    • [ ] create a PR which updates go.mod and go.sum
    • [ ] add the PR to the next release milestone
  • [ ] Close the release issue

lidel avatar Aug 21 '24 22:08 lidel

RC1 is ready for testing:

  • docs/changelogs/v0.30.md
  • https://github.com/ipfs/kubo/releases/tag/v0.30.0-rc1
  • https://dist.ipfs.tech/kubo/v0.30.0-rc1/

lidel avatar Aug 22 '24 01:08 lidel

Early testers ping for v0.30.0-rc1 testing 😄.

  • [ ] Charity Engine (@rytiss, @tristanolive)
  • [ ] Fission (@bmann)
  • [ ] Infura (@MichaelMure)
  • [ ] OrbitDB (@aphelionz)
  • [ ] pacman.store (@RubenKelevra)
  • [ ] Pinata (@obo20)
  • [ ] PL EngRes bifrost (@gmasgras)
  • [ ] RTrade (@postables)
  • [ ] Siderus (@koalalorenzo)
  • [ ] Textile (@sanderpick)

You're getting this message because you're listed here. Please update this list if you no longer want to be included.

lidel avatar Aug 22 '24 13:08 lidel

@lidel I'm working with @sukunrt now on a fix for https://github.com/libp2p/go-libp2p/issues/2913. There's a good chance we'll have a release by EOD once Marco can take a look. Can we hold off the final release?

2color avatar Aug 22 '24 13:08 2color

@2color yes, I already planned to have -rc2 next week if we land some fixes, so no problem to wait.

Update: after analysis, the go-libp2p fix from https://github.com/libp2p/go-libp2p/pull/2936 is not a blocker, because majority of users uses static ports, and the problem only occurs in test environments when 0 is used and different UDP port is used for QUIC and Webtransport. We will cut RC2 without waiting for new libp2p.

lidel avatar Aug 22 '24 13:08 lidel

✅ Release Checklist (v0.30.0-rc2)

The release

This section covers tasks to be done during each release.

  • [x] Prepare the release branch and update version numbers accordingly
    using ./kuboreleaser --skip-check-before release --version vX.Y.Z(-rcN) prepare-branch or ...
    • [ ] create a new branch release-vX.Y.Z
      • use master as base if Z == 0
      • use release as base if Z > 0
    • [x] update the CurrentVersionNumber in version.go in the master branch to vX.Y+1.0-dev
    • [ ] update the CurrentVersionNumber in version.go in the release-vX.Y branch to vX.Y.Z(-RCN)
    • [ ] create a draft PR from release-vX.Y to release
    • [x] Cherry-pick commits from master to the release-vX.Y.Z using git cherry-pick -x <commit>
    • [ ] Add full changelog and contributors to the changelog
      • [ ] Replace the Changelog and Contributors sections of the changelog with the stdout of ./bin/mkreleaselog
        • do NOT copy the stderr
    • [x] verify all CI checks on the PR from release-vX.Y to release are passing
    • [ ] Merge the PR from release-vX.Y 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 branch
  • [x] Create the release tag
    using ./kuboreleaser release --version vX.Y.Z(-rcN) tag or ...
    • 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
  • [x] Publish to Dockerhub, NPM, and dist.ipfs.tech and GitHub using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-all or follow each step below:
    • [x] Publish the release to DockerHub
      using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
    • [x] Verify ipfs/distributions's .tool-versions's golang entry is set to the latest go release on the major go branch Kubo is being tested on (see go-version:).
    • [x] Publish the release to dist.ipfs.tech
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-distributions or ...
      • [ ] check out ipfs/distributions
      • [ ] run ./dist.sh add-version kubo vX.Y.Z(-RCN) to add the new version to the versions file
      • [ ] create and merge the PR which updates dists/kubo/versions and dists/go-ipfs/versions ( and dists/kubo/current_version and dists/go-ipfs/current_version)
      • [ ] wait for the CI workflow run initiated by the merge to master to finish
      • [ ] verify the release is available on dist.ipfs.tech
    • [x] Publish the release to NPM
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-npm (⚠️ you might need to run the command a couple of times because GHA might not be able to see the new distribution straight away due to caching) or ...
      • [ ] run the Release to npm workflow
      • [ ] check Release to npm workflow run logs to verify it discovered the new release
      • [ ] verify the release is available on NPM
    • [x] Publish the release to GitHub
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-github or ...
      • [ ] create a new release on GitHub
        • RC example
        • FINAL example
        • [ ] use the vX.Y.Z(-RCN) tag
        • [ ] link to the release issue
        • [ ] link to the changelog in the description
        • [ ] check the This is a pre-release checkbox
        • [ ] copy the changelog (without the header) in the description
        • [ ] do NOT check the This is a pre-release checkbox
      • [ ] run the sync-release-assets workflow
      • [ ] wait for the sync-release-assets workflow run to finish
      • [ ] verify the release assets are present in the GitHub release
  • [ ] Run Thunderdome testing, see the Thunderdome release docs for details
    • [ ] create a PR and merge the experiment config into Thunderdome
  • [x] Promote the release
    using ./kuboreleaser release --version vX.Y.Z(-rcN) promote or ...

lidel avatar Aug 28 '24 16:08 lidel

Early testers ping for v0.30.0-rc2 testing ✨

  • [ ] Charity Engine (@rytiss, @tristanolive)
  • [ ] Fission (@bmann)
  • [ ] Infura (@MichaelMure)
  • [ ] OrbitDB (@haydenyoung)
  • [ ] Pinata (@obo20)
  • [ ] Shipyard (@cewood, @ns4plabs)
  • [ ] Siderus (@koalalorenzo)
  • [ ] Textile (@sanderpick)
  • [ ] @RubenKelevra

You're getting this message because you're listed here. Please update this list if you no longer want to be included.

lidel avatar Aug 28 '24 20:08 lidel

FYSA found a regression caused by go1.23 update: https://github.com/ipfs/kubo/issues/10501 Workaround is to run with GODEBUG=asynctimerchan=1. We will likely switch to go1.22 before final release.

lidel avatar Aug 31 '24 18:08 lidel

Given that go-libp2p hasn't been updated to account for https://github.com/libp2p/specs/pull/628, WebRTC-direct won't work out of the box.

Browser users (js-libp2p, Helia and verified-fetch) would have to override the default maxMessageSize when initialising the transport in js-libp2p WebRTC-direct, for browser <---webrtc-direct > to work.

2color avatar Sep 03 '24 11:09 2color

Ack, I see it is still being discussed, so tentatively planing to cut 0.30.0-rc3 ~Thu? if/once we agree the maxMessageSize has to change.

lidel avatar Sep 03 '24 23:09 lidel

The WebRTC maxMessageSize change has been reverted in js-libp2p, so it's no longer a blocker.

2color avatar Sep 05 '24 12:09 2color

In the meantime we had boxo and go-libp2p releases with various fixes, and we had to switch back to go1.22 (https://github.com/ipfs/kubo/pull/10502), so making 0.30.0-rc3 still feels prudent.

Plan is to have final 0.30 next week.

lidel avatar Sep 05 '24 22:09 lidel

✅ Release Checklist (v0.30.0-rc3)

  • [ ] Prepare the release branch and update version numbers accordingly
    using ./kuboreleaser --skip-check-before release --version vX.Y.Z(-rcN) prepare-branch or ...
    • [ ] 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
    • [x] update the CurrentVersionNumber in version.go in the release-vX.Y branch to vX.Y.Z(-RCN)
    • [ ] create a draft PR from release-vX.Y to release
    • [x] Cherry-pick commits from master to the release-vX.Y.Z using git cherry-pick -x <commit>
    • [ ] Add full changelog and contributors to the changelog
      • [ ] Replace the Changelog and Contributors sections of the changelog with the stdout of ./bin/mkreleaselog
        • do NOT copy the stderr
    • [x] verify all CI checks on the PR from release-vX.Y to release are passing
    • [ ] Merge the PR from release-vX.Y 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 branch
  • [x] Create the release tag
    using ./kuboreleaser release --version vX.Y.Z(-rcN) tag or ...
    • 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
  • [x] Verify ipfs/distributions's .tool-versions's golang entry is set to the latest go release on the major go branch Kubo is being tested on (see go-version:).
  • [x] Publish to Dockerhub, NPM, and dist.ipfs.tech and GitHub using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-all or follow each step below:
    • [x] Publish the release to DockerHub
      using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
    • [x] Publish the release to dist.ipfs.tech
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-distributions or ...
      • [ ] check out ipfs/distributions
      • [ ] run ./dist.sh add-version kubo vX.Y.Z(-RCN) to add the new version to the versions file
      • [ ] create and merge the PR which updates dists/kubo/versions and dists/go-ipfs/versions ( and dists/kubo/current_version and dists/go-ipfs/current_version)
      • [ ] wait for the CI workflow run initiated by the merge to master to finish
      • [ ] verify the release is available on dist.ipfs.tech
    • [x] Publish the release to NPM
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-npm (⚠️ you might need to run the command a couple of times because GHA might not be able to see the new distribution straight away due to caching) or ...
      • [ ] run the Release to npm workflow
      • [ ] check Release to npm workflow run logs to verify it discovered the new release
      • [ ] verify the release is available on NPM
    • [x] Publish the release to GitHub
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-github or ...
      • [ ] create a new release on GitHub
        • RC example
        • FINAL example
        • [ ] use the vX.Y.Z(-RCN) tag
        • [ ] link to the release issue
        • [ ] link to the changelog in the description
        • [ ] check the This is a pre-release checkbox
        • [ ] copy the changelog (without the header) in the description
        • [ ] do NOT check the This is a pre-release checkbox
      • [ ] run the sync-release-assets workflow
      • [ ] wait for the sync-release-assets workflow run to finish
      • [ ] verify the release assets are present in the GitHub release
  • [ ] ~Run Thunderdome testing, see the Thunderdome release docs for details~
    • [ ] instead, I will deploy to kubo staging and update https://github.com/ipfs/kubo/pull/10496 with steps, so next time we use this instead of thunderdome
  • [x] Promote the release
    using ./kuboreleaser release --version vX.Y.Z(-rcN) promote or ...

lidel avatar Sep 05 '24 22:09 lidel

Early testers ping for v0.30.0-rc3 testing :sparkles:

  • [ ] Charity Engine (@rytiss, @tristanolive)
  • [ ] Fission (@bmann)
  • [ ] Infura (@MichaelMure)
  • [ ] OrbitDB (@haydenyoung)
  • [ ] Pinata (@obo20)
  • [ ] Shipyard (@cewood, @ns4plabs)
  • [ ] Siderus (@koalalorenzo)
  • [ ] Textile (@sanderpick)
  • [ ] @RubenKelevra

You're getting this message because you're listed here. Please update this list if you no longer want to be included.

lidel avatar Sep 05 '24 23:09 lidel

✅ Release Checklist (v0.30.0) [FINAL]

  • [x] Prepare the release branch and update version numbers accordingly
    using ./kuboreleaser --skip-check-before release --version vX.Y.Z(-rcN) prepare-branch or ...
    • [ ] 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
    • [x] update the CurrentVersionNumber in version.go in the release-vX.Y branch to vX.Y.Z(-RCN)
    • [ ] create a draft PR from release-vX.Y to release
    • [ ] Cherry-pick commits from master to the release-vX.Y.Z using git cherry-pick -x <commit>
    • [x] Add full changelog and contributors to the changelog
      • [x] Replace the Changelog and Contributors sections of the changelog with the stdout of ./bin/mkreleaselog
        • do NOT copy the stderr
    • [x] verify all CI checks on the PR from release-vX.Y to release are passing
    • [x] Merge the PR from release-vX.Y 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 branch
  • [x] Create the release tag
    using ./kuboreleaser release --version vX.Y.Z(-rcN) tag or ...
    • 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
  • [x] Verify ipfs/distributions's .tool-versions's golang entry is set to the latest go release on the major go branch Kubo is being tested on (see go-version:).
  • [x] Publish to Dockerhub, NPM, and dist.ipfs.tech and GitHub using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-all or follow each step below:
    • [x] Publish the release to DockerHub
      using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
    • [x] Publish the release to dist.ipfs.tech
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-distributions or ...
      • [ ] check out ipfs/distributions
      • [ ] run ./dist.sh add-version kubo vX.Y.Z(-RCN) to add the new version to the versions file
      • [ ] create and merge the PR which updates dists/kubo/versions and dists/go-ipfs/versions ( and dists/kubo/current_version and dists/go-ipfs/current_version)
      • [ ] wait for the CI workflow run initiated by the merge to master to finish
      • [ ] verify the release is available on dist.ipfs.tech
    • [x] Publish the release to NPM
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-npm (⚠️ you might need to run the command a couple of times because GHA might not be able to see the new distribution straight away due to caching) or ...
      • [ ] run the Release to npm workflow
      • [ ] check Release to npm workflow run logs to verify it discovered the new release
      • [ ] verify the release is available on NPM
    • [x] Publish the release to GitHub
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-github or ...
      • [ ] create a new release on GitHub
        • RC example
        • FINAL example
        • [ ] use the vX.Y.Z(-RCN) tag
        • [ ] link to the release issue
        • [ ] link to the changelog in the description
        • [ ] check the This is a pre-release checkbox
        • [ ] copy the changelog (without the header) in the description
        • [ ] do NOT check the This is a pre-release checkbox
      • [ ] run the sync-release-assets workflow
      • [ ] wait for the sync-release-assets workflow run to finish
      • [ ] verify the release assets are present in the GitHub release
  • [ ] 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
  • [x] Promote the release
    using ./kuboreleaser release --version vX.Y.Z(-rcN) promote or ...
  • [x] ~~Test the new version with ipfs-companion~~ (currently skipped)
    using ./kuboreleaser release --version vX.Y.Z(-rcN) test-ipfs-companion or ...
    • [ ] run the e2e
      • use vX.Y.Z(-RCN) as the Kubo image version
    • [ ] wait for the e2e workflow run to finish
  • [x] Update Kubo in ipfs-desktop
    using ./kuboreleaser release --version vX.Y.Z(-rcN) update-ipfs-desktop or ...
    • [ ] check out ipfs/ipfs-desktop
    • [ ] run npm install
    • [ ] create a PR which updates package.json and package-lock.json
    • [ ] add @SgtPooki as reviewer
  • [x] Update Kubo docs
    using ./kuboreleaser release --version vX.Y.Z(-rcN) update-ipfs-docs or ...
  • [x] Create a blog entry on blog.ipfs.tech
    using ./kuboreleaser release --version vX.Y.Z(-rcN) update-ipfs-blog --date YYYY-MM-DD or ...
    • [ ] create a PR which adds a release note for the new Kubo version
    • [ ] merge the PR
    • [ ] verify the blog entry was published
  • [x] Merge the release branch back into master, ignoring the changes to version.go (keep the -dev) version,
    using ./kuboreleaser release --version vX.Y.Z(-rcN) merge-branch or ...
    • [ ] create a new branch merge-release-vX.Y.Z from release
    • [ ] create and merge a PR from merge-release-vX.Y.Z to master
  • [x] Prepare for the next release
    using ./kuboreleaser release --version vX.Y.Z(-rcN) prepare-next or ...
    • [ ] Create the next changelog
    • [ ] Link to the new changelog in the CHANGELOG.md file
    • [ ] Create the next release issue
  • [x] Create a dependency update PR
    • [ ] check out ipfs/kubo
    • [ ] run go get -u in root directory
    • [ ] run make mod_tidy
    • [ ] create a PR which updates go.mod and go.sum
    • [ ] add the PR to the next release milestone
  • [x] Close the release issue

lidel avatar Sep 11 '24 11:09 lidel

🎉 Kubo v0.30.0 is out!

lidel avatar Sep 11 '24 15:09 lidel