ipfs / kubo

An IPFS implementation in Go
https://docs.ipfs.tech/how-to/command-line-quick-start/
Other
15.83k stars 2.96k forks source link

Release 0.28 #10353

Closed hacdias closed 1 month ago

hacdias commented 2 months ago

Meta

Items In Scope

Required

Nice To Have (Optional)

hacdias commented 1 month ago

✅ Release Checklist (v0.28.0-rc1)

  • [ ] Run Thunderdome testing, see the Thunderdome release docs for details
    • [ ] create a PR and merge the experiment config into Thunderdome
  • [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(-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
  • [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
    • usage
    • [ ] 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)
    • example
    • [ ] 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
  • [x] Promote the release
    using ./kuboreleaser release --version vX.Y.Z(-rcN) promote or ...
  • [ ] 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 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 ...
  • [ ] Ask Brave to update Kubo in Brave Desktop
  • [ ] 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
    • example
    • [ ] 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 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
  • lidel commented 1 month ago

    @hacdias apologies, https://github.com/ipfs/distributions/pull/1078 took longer than expected.

    It works now, confirmed with 0.28-rc1 published at https://dist.ipfs.tech/kubo/v0.28.0-rc1/, feel free to resume with any remaining tasks.

    hacdias commented 1 month ago

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

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

    hacdias commented 1 month ago

    ✅ Release Checklist v0.28.0

    This section covers tasks to be done during each release.

  • [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(-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
  • [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
    • usage
    • [ ] 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)
    • example
    • [ ] 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
    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] Ask Brave to update Kubo in Brave Desktop
  • [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
    • example
    • [ ] 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
  • [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 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
  • [x] Close the release issue
  • hacdias commented 1 month ago

    🎉 Kubo v0.28.0 is out!