ipfs / kubo

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

Release 0.31 #10499

Open lidel opened 1 month ago

lidel commented 1 month ago

Meta

Items In Scope

Required

Nice To Have (Optional)

gammazero commented 5 days ago

✅ Release Checklist (v0.31.0-rc1)

  • [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 ⚠️!
    • [x] ⚠️ tag the HEAD commit using git tag -s vX.Y.Z(-RCN) -m 'Prerelease X.Y.Z(-RCN)'
    • [x] ⚠️ tag the HEAD commit of the release branch using git tag -s vX.Y.Z -m 'Release X.Y.Z'
    • [x] ⚠️ verify the tag is signed and tied to the correct commit using git show vX.Y.Z(-RCN)
    • [x] ⚠️ 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] Wait for Publish docker image workflow run initiated by the tag push to finish
    • [x] verify the image is available on Docker Hub
    • [x] Publish the release to dist.ipfs.tech
      using ./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-distributions or ...
    • [x] check out ipfs/distributions
    • [x] run ./dist.sh add-version kubo vX.Y.Z(-RCN) to add the new version to the versions file
    • [x] 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)
    • [x] wait for the CI workflow run initiated by the merge to master to finish
    • [x] 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 ...
    • [x] run the Release to npm workflow
    • [x] check Release to npm workflow run logs to verify it discovered the new release
    • [x] 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 ...
    • [x] create a new release on GitHub
      • RC example
      • FINAL example
      • [x] use the vX.Y.Z(-RCN) tag
      • [x] link to the release issue
      • [x] link to the changelog in the description
      • [x] 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
    • [x] run the sync-release-assets workflow
    • [x] wait for the sync-release-assets workflow run to finish
    • [x] verify the release assets are present in the GitHub release
  • [x] Update Kubo staging environment, see the Running Kubo tests on staging for details.
    • [x] 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 ...
  • [ ] 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
    • 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
    • [ ] 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
  • [ ] Close the release issue
  • lidel commented 23 hours ago

    ✅ Release Checklist (v0.31.0-rc2)

  • [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 ⚠️!
    • [x] ⚠️ 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)
    • [x] ⚠️ 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
  • [ ] 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:).
  • [ ] 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 ...
    • [ ] Wait for Publish docker image workflow run initiated by the tag push to finish
    • [ ] verify the image is available on Docker Hub
    • [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
  • [ ] 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
    • 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
    • [ ] 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
  • [ ] Close the release issue
  • lidel commented 21 hours ago

    Early testers ping for v0.31.0-rc2 testing ✨

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