GithubHelp home page GithubHelp logo

Release 0.29 about kubo HOT 6 CLOSED

hacdias avatar hacdias commented on August 16, 2024
Release 0.29

from kubo.

Comments (6)

hacdias avatar hacdias commented on August 16, 2024 1

@lidel since we rarely did rcX, X > 1, it is possible you'll encounter bugs with kuboreleaser. I remember that happening the very few times we did a second pre-release. Not sure if they've been fixed or not. Just to let you know in case something fails along the way.

from kubo.

lidel avatar lidel commented on August 16, 2024 1

🎉 Kubo v0.29.0 is out!

from kubo.

hacdias avatar hacdias commented on August 16, 2024

✅ Release Checklist (v0.29.0-rc1)

  • 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
  • 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
  • Publish the release to DockerHub
    using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
  • 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 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
  • 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 ...
  • 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
  • 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 ...
  • 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
    • 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

from kubo.

lidel avatar lidel commented on August 16, 2024

To ensure smooth release enginnering handoff, decided to do additional rc2.

Only difference since rc1 is fix from #10435

✅ Release Checklist (v0.29.0-rc2)

  • 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
  • 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
  • Publish the release to DockerHub
    using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
  • 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 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
  • 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 ...
  • 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
  • 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 ...
  • 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
    • 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

from kubo.

lidel avatar lidel commented on August 16, 2024

Thanks. For the record, I did not run prepare-branch, but bumped version.go manually. Will check how it behaves the other time.

0.29.0-rc2 shipped (took bit long due to collab cluster hiccups), final one planned on 2024-06-10.

NOTE:

  • cherry-pick #10439 before tagging 0.29.0.

from kubo.

lidel avatar lidel commented on August 16, 2024

✅ Release Checklist (v0.29.0)

  • 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
  • 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
  • Publish the release to DockerHub
    using ./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
  • 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 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
  • 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 ...
  • 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
  • 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 ...
  • 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
    • 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

from kubo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.