Skip to content

Release 0.19 #9502

Closed
Closed
@guseggert

Description

@guseggert

Meta

See the Kubo release process for more info.

Kubo 0.19.0 Release

We're happy to announce Kubo 0.19.0!

As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our security fix policy for details.

🗺 What's left for release

<List of items with PRs and/or Issues to be considered for this release>

Required

Nice to have

  • Make accelerated DHT client non-experimental (incl. config migration)

🔦 Highlights

< top highlights for this release notes. For ANY version (final or RCs) >

✅ Release Checklist

Labels

If an item should be executed for a specific release type, it should be labeled with one of the following labels:

  • execute ONLY when releasing a Release Candidate
  • execute ONLY when releasing a Final Release

Otherwise, it means it should be executed for ALL release types.

Patch releases should follow the same process as .0 releases. If some item should NOT be executed for a Patch Release, it should be labeled with:

  • do NOT execute when releasing a Patch Release

Before the release

This section covers tasks to be done ahead of the release.

The release

This section covers tasks to be done during each release.

  • Prepare the release branch and update version numbers accordingly
    using kuboreleaser release --version v0.19.0(-RCN) prepare-branch or ...
    • create a new branch release-v0.19.0
      • 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 v0.19+1.0-dev
    • update the CurrentVersionNumber in version.go in the release-v0.19 branch to v0.19.0(-RCN)
    • create a draft PR from release-v0.19 to release
    • Cherry-pick commits from master to the release-v0.19.0 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-v0.19 to release are passing
    • Merge the PR from release-v0.19 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-v0.19 branch
  • Create the release tag
    using kuboreleaser release --version v0.19.0(-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 v0.19.0(-RCN) -m 'Prerelease 0.19.0(-RCN)'
    • ⚠️ tag the HEAD commit of the release branch using git tag -s v0.19.0(-RCN) -m 'Release 0.19.0(-RCN)'
    • ⚠️ verify the tag is signed and tied to the correct commit using git show v0.19.0(-RCN)
    • ⚠️ push the tag to GitHub using git push origin v0.19.0(-RCN)
      • do NOT use git push --tags because it pushes all your local tags
  • Publish the release to DockerHub
    using kuboreleaser --skip-check-before --skip-run release --version v0.19.0(-RCN) publish-to-dockerhub or ...
  • Publish the release to ipfs.tech
    using kuboreleaser release --version v0.19.0(-RCN) publish-to-distributions or ...
    • check out ipfs/distributions
    • run ./dist.sh add-version kubo v0.19.0(-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.io
  • Publish the release to NPM
    using kuboreleaser release --version v0.19.0(-RCN) publish-to-npm or ...
  • Publish the release to GitHub
    using kuboreleaser release --version v0.19.0(-RCN) publish-to-github or ...
    • create a new release on GitHub
      • RC example
      • FINAL example
      • use the v0.19.0(-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
  • Notify the bifrost team about the release
    using kuboreleaser release --version v0.19.0(-RCN) notify-bifrost --date YYYY-MM-DD or ...
  • Promote the release
    using kuboreleaser release --version v0.19.0(-RCN) promote or ...
  • Test the new version with ipfs-companion
    using kuboreleaser release --version v0.19.0(-RCN) test-ipfs-companion or ...
    • run the e2e
      • use v0.19.0(-RCN) as the Kubo image version
    • wait for the e2e workflow run to finish
  • Update Kubo in interop
    using kuboreleaser release --version v0.19.0(-RCN) update-interop or ...
    • check out ipfs/interop
    • run npm install
    • create a PR which updates package.json and package-lock.json
    • merge the PR
  • Update Kubo in ipfs-desktop
    using kuboreleaser release --version v0.19.0(-RCN) update-ipfs-desktop or ...
    • check out ipfs/ipfs-desktop
    • run npm install
    • create a PR which updates package.json and package-lock.json
    • merge the PR
  • Update Kubo docs
    using kuboreleaser release --version v0.19.0(-RCN) update-ipfs-docs or ...
  • Create a blog entry on ipfs.tech
    using kuboreleaser release --version v0.19.0(-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
  • Keep checking the metrics until the release issue is closed
  • Merge the release branch back into master, ignoring the changes to version.go (keep the -dev) version,
    using kuboreleaser release --version v0.19.0(-RCN) merge-branch or ...
    • create a new branch merge-release-v0.19.0 from release
    • create and merge a PR from merge-release-v0.19.0 to master
  • Prepare for the next release
    using kuboreleaser release --version v0.19.0(-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 go mod tidy in root directory
    • run go mod tidy in docs/examples/kubo-as-a-library directory
    • create a PR which updates go.mod and go.sum
    • add the PR to the next release milestone
  • Close the release issue

How to contribute?

Would you like to contribute to the IPFS project and don't know how? Well, there are a few places you can get started:

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions