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.18.1 #9579

Closed
2 tasks done
BigLep opened this issue Jan 24, 2023 · 4 comments
Closed
2 tasks done

Release 0.18.1 #9579

BigLep opened this issue Jan 24, 2023 · 4 comments
Assignees

Comments

@BigLep
Copy link
Contributor

BigLep commented Jan 24, 2023

Meta

See the Kubo release process for more info.

Purpose

  • Unblock key partner (Ceramic) with upcoming launches/demos.
  • Address remaining low-hanging UX issues with ResourceMgr changes that still remain in 0.18.

Items in scope

Tasks

  1. P2 exp/intermediate kind/enhancement
  2. ajnavarro

✅ 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.

  • Cut the release branch and update version numbers accordingly
    using kuboreleaser release --version vX.Y.Z(-RCN) cut-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
    • verify all CI checks on the PR from release-vX.Y to release are passing
  • 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
    • Paste the stdout of ./bin/mkreleaselog at the end of the changelog
      • do NOT copy the stderr
  • 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
  • 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(-RCN) -m 'Release X.Y.Z(-RCN)'
    • ⚠️ 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
  • Wait for Publish docker image workflow run initiated by the tag push to finish
  • Publish the release to 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
    • 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 vX.Y.Z(-RCN) publish-to-npm or ...
  • 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
  • Notify the bifrost team about the release
    using kuboreleaser release --version vX.Y.Z(-RCN) notify-bifrost --date YYYY-MM-DD or ...
  • Promote the release
    using kuboreleaser release --version vX.Y.Z(-RCN) promote or ...
  • Add the link to the IPFS Discourse topic to the GitHub Release description
  • Test the new version with ipfs-companion
    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 interop
    using kuboreleaser release --version vX.Y.Z(-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 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
    • merge the PR
  • Update Kubo docs
    using kuboreleaser release --version vX.Y.Z(-RCN) update-ipfs-docs or ...
  • Create a blog entry on 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
  • 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 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
  • Create the next changelog
  • Create the next release issue
  • Create a dependency update PR
    • check out ipfs/kubo
    • run go get -t -u ./...
    • create a PR which updates go.mod and go.sum
    • add the PR to the next release milestone
  • Close the release issue
@BigLep BigLep moved this to 🥞 Todo in IPFS Shipyard Team Jan 24, 2023
@BigLep
Copy link
Contributor Author

BigLep commented Jan 26, 2023

For anyone watching, we're intending to do this release on 2023-01-27 (assuming the items in scope land then).

@BigLep
Copy link
Contributor Author

BigLep commented Jan 27, 2023

We are ready to do the release on Monday (as just need to merge #9593).

@galargh
Copy link
Contributor

galargh commented Jan 30, 2023

🎉 Kubo v0.18.1 is out!

@BigLep BigLep moved this from 🥞 Todo to 🏃‍♀️ In Progress in IPFS Shipyard Team Jan 31, 2023
@galargh
Copy link
Contributor

galargh commented Jan 31, 2023

The release is complete 🥳 One outstanding item to track beyond this issue is rollout to PL infra - https://github.com/protocol/bifrost-infra/issues/2319

@galargh galargh closed this as completed Jan 31, 2023
@github-project-automation github-project-automation bot moved this from 🏃‍♀️ In Progress to 🎉 Done in IPFS Shipyard Team Jan 31, 2023
@galargh galargh unpinned this issue Jan 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Archived in project
Development

No branches or pull requests

2 participants