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.21 #9814

Closed
BigLep opened this issue Apr 12, 2023 · 36 comments
Closed

Release 0.21 #9814

BigLep opened this issue Apr 12, 2023 · 36 comments
Assignees

Comments

@BigLep
Copy link
Contributor

BigLep commented Apr 12, 2023

Meta

Items in scope

Required for RC1

Required for RC2

Required for RC3

Others

These are items that we had stated at the beginning of the release that we said we wanted to include. We aren't blocking the relse on these. There are also items in 0.21 iteration.

✅ 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 (current: 0.21.0)

  • Prepare the release branch and update version numbers accordingly
    using kuboreleaser 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
  • @Jorropo Run Thunderdome testing, see the Thunderdome release docs for details
    • create a PR and merge the experiment config into Thunderdome
  • 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
  • Publish the release to DockerHub
    using kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub or ...
  • 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 ( 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 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
  • 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 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 ...
  • 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
  • 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
@hacdias hacdias pinned this issue May 9, 2023
@BigLep
Copy link
Contributor Author

BigLep commented May 30, 2023

The issue description has been updated with the updated set of items that are required for the 2023-06-01 RC.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 3, 2023

Issue description has been updated, but we should update to the latest go-libp2p (which is now go-libp2p 0.27.5, rather than 0.27.4).

@BigLep
Copy link
Contributor Author

BigLep commented Jun 5, 2023

Concerning go-libp2p related releases...

We're not going to depend on the upcoming go-libp2p 0.28 release. go-libp2p v0.28.0 will introduce smart dialling. Smart dialling prioritizes LAN addresses when possible so if you know about a LAN address of someone else, you will first ONLY try those. Unfortunately we announce LAN addresses in the DHT, so those dials habr to fail (or a timer has to expire) before we actually try the public IPs to avoid a performance hit on all connection to nodes that are not on your LAN. As a result, we need libp2p/go-libp2p-kad-dht#839 which removes the private IPs from the public DHT. However if we add libp2p/go-libp2p-kad-dht#839 we are breaking the cloud VPC usecase by removing the ability to use private IPs on the DHT. Arguably relying on private IPs over public DHT was a bug, so we should fix it by giving users control over their private DHT too with #9884.

The Kubo release is already falling behind and I want to minimize the scope creep. We need to stick to the required items above. As a result, I think the actions are:

  1. Kubo 0.21 depends on go-libp2p 0.27.5 (not 0.28)
  2. Kubo 0.21 depends on a go-libp2p-kad-dht release that has fix: don't add unresponsive DHT servers to the Routing Table libp2p/go-libp2p-kad-dht#820 but not filter local addresses (for WAN) and localhost addresses (for LAN) libp2p/go-libp2p-kad-dht#839

Cc @marten-seemann and @guillaumemichel so they're aware

@BigLep
Copy link
Contributor Author

BigLep commented Jun 6, 2023

Update concerning the go-libp2p release per Slack thread...

Kubo can update to go-libp2p 0.28 if it's ready since it won't incure extra work on the maintainers. This is because for go-libp2p 0.28 smart dialing local addresses and public addresses are dialed in parallel. For non-relay addresses, ranking and delaying dials happens within the address groups, not between address groups. It will not first dial localhost & LAN then public then relay. Instead go-libp2p v0.28 will first dial in parallel the best LAN, the best public v4 and the best public v6. There are docs about this in libp2p/go-libp2p#2336.

If go-libp2p 0.28 is ready when we start the Kubo release, we'll pick it up.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 8, 2023

2023-06-08 maintainer conversation: we aren't going to do the RC until 2023-06-12 because we're waiting on libp2p/go-libp2p-kad-dht#820. Per that PR, we don't expect that to land until 2023-06-12.

@hacdias
Copy link
Member

hacdias commented Jun 12, 2023

Early testers ping for v0.21.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.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 12, 2023

There has been some discussion amongst Kubo and go-libp2p maintainers on whether the 0.21 release should hold up for the recent 0.28 go-libp2p release.

Kubo 0.21 with ship with go-libp2p 0.27.6 (not the newly release 0.28.0).

Given that I held up the 0.21 release for other things, why won't I hold it up for a new go-libp2p?

The Kubo release mostly slipped for the operational item fixes that we had discussed or drafted 3+ months ago (item 1, item 2). They had been spoken about for multiple months, and I didn't want to go into Q3 with those still open. They would have slipped to Q3 if 0.21 had shipped without them (since 0.22 won't happen until July). This is a judgement call, but for me it boils down to psychological, following through with public commitment to complete these changes by end of the quarter, and emphasizing that operational items are important (i.e., the train will depart to miss out on features, but we will cause disruption for security and operational items).

I don't want to take on go-libp2p 0.28 right now because:

  1. It does take some extra time from @hacdias to do another RC (and a new minor release of go-libp2p should always require an RC).
  2. It reduces the chances that we can complete the 0.21 release by EOD Thursday 2023-06-15 (which is then only one week behind our original date).
  3. Internally to PL EngRes, we've got enough other stuff happening this month with H2 planning and perf that want to avoid unnecessary disruptions.

There is a lot of great functionality in go-libp2p 0.28, and I look forward it to landing in master/main soon and going out with Kubo 0.22, with a current RC targeting 2023-07-13.

How close do Kubo maintainers hit their release dates?

  • 0.19 - 2 weeks late
  • 0.20 - 2 weeks late (but IPFS Thing and an additional RC was also in there)
  • 0.21 - currently targeting to be 1 week late.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 12, 2023

@hacdias : a couple of things about the release:

  1. Can you please copy / paste in the checklist from https://github.com/ipfs/kubo/blob/master/docs/RELEASE_ISSUE_TEMPLATE.md so it's clear where we're at ? Alternatively or in addition, let's paste in the kubo release output for visibility.
  2. Probably an item for the "improve the release process" PR, but it would be great if the PRs that are getting cut related to the release referenced this issue so that the two-way links show up in the audit trail.
  3. I would like us to push towards doing the final release on Thursday, 2023-06-15. The key data point we need is the Thunderdome testing. Can you please start on that on Tuesday (I believe @Jorropo shadowed Gus on this last time), and @iand is a good source of help as well.

Thank you!

@SgtPooki
Copy link
Member

Any chance we can get the latest webui in the this release? #9940

@hacdias
Copy link
Member

hacdias commented Jun 13, 2023

@SgtPooki it will, but the interop tests with the WebUI are failing. Please check the comment I wrote on #9940. I was hoping you could take a look at it, because it seems something might've changed on the Web UI side.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 13, 2023

2023-06-13 maintainer conversation:

Things for RC2:

  • go-libp2p update (0.27.6)
  • fix for whatever is the problem with go routine leak found during Thunderdome testing

@p-shahi
Copy link

p-shahi commented Jun 13, 2023

libp2p go routine leak is being tracked here libp2p/go-libp2p-kad-dht#849
@BigLep is there a link to the Thuderdome test results?

@BigLep
Copy link
Contributor Author

BigLep commented Jun 13, 2023

I believe the Thunderdome results will be published to https://www.notion.so/kubo-prerelease-21-93caf901a408490480438b48974d8a07

@lidel
Copy link
Member

lidel commented Jun 14, 2023

RC2 should also include #9926 and #9945 (i've included dag import section in changelog, this is required since we've included other IPIP-402 changes already)

@BigLep
Copy link
Contributor Author

BigLep commented Jun 15, 2023

I updated the issue description with the items I believe need to make it into RC2:

In terms of timing, best case is we cut RC2 on 2023-06-14. We will need to do another round of Thunderdome testing. That doesn't look like that will happen until 2023-06-19, which leaves us with a best possible ship date of 2023-06-19 assuming no other problems found.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 15, 2023

The Kubo 0.21 release isn't done yet per above, but here was the status of the 0.21 iteration before prepping for 0.22:

https://github.com/orgs/ipfs/projects/16/views/1?filterQuery=iteration%3A%22kubo+0.21%22

Repository Title Status Theme
ipfs/boxo Streamed pins 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo Move AcceleratedDHTClient from being experimental 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo Provide easy/clear notification/error if falling behind reproviding 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo Guide users who are doing "a lot" of provides into the AcceleratedDHTClient 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo Improve config and docs around Experimental.AcceleratedDHTClient and Reprovider 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo feat: warn users who are falling behind reprovides 🎉 Done ⚠️ Critical fix or improvement
ipfs/boxo provider: refactor to only maintain one batched implementation and add throughput callback 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo v0.20.0-rc2: cannot build plugins 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo panic in "ipfs bitswap reprovide" 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo Kubo, invalid memory address or nil pointer dereference from IpfsNode.Bootstrap 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo docs: Reprovider config 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo client/rpc: migrate go-ipfs-http-client 🎉 Done ⚠️ Critical fix or improvement
ipfs/go-ipfs-http-client deprecate all types and stub them to Kubo 🎉 Done ⚠️ Critical fix or improvement
ipfs/kubo client/rpc: use streaming pin listing 🎉 Done ⚠️ Critical fix or improvement
libp2p/go-libp2p-kbucket fix: fix abba bug in UsefullNewPeer 🔎 In Review ⚠️ Critical fix or improvement
libp2p/go-libp2p-kad-dht fix: issues discovered in kubo v0.21.0-rc1 🔎 In Review ⚠️ Critical fix or improvement
ipfs/kubo Pubsub flood due to same message propagated multiple times 🛑 Blocked ⚠️ Critical fix or improvement
libp2p/go-libp2p-kad-dht bug/regression: goroutine leak 🥞 Todo ⚠️ Critical fix or improvement
ipfs/kubo secp256k1 key support is missing pem-pkcs8-cleartext import/export 🥞 Todo ⚠️ Critical fix or improvement
  ⬇️⬇️⬇️ Security/Operational Incidents ⬇️⬇️⬇️   ⚠️ Critical fix or improvement
  ⬇️⬇️⬇️ Other Items ⬇️⬇️⬇️   ⚠️ Critical fix or improvement
  ⬆️⬆️⬆️ Items that should make it into this iteration ⬆️⬆️⬆️   ⚠️ Critical fix or improvement
ipfs/specs Update Frontmatter Information 🎉 Done 🧑🏻‍⚖️ Governance/Specs
ipfs/in-web-browsers [IANA #1272257] application/vnd.ipfs.ipns-record registration request 🎉 Done 🧑🏻‍⚖️ Governance/Specs
ipfs/specs Move Routing Specs to Website and Fix Broken Links 🎉 Done 🧑🏻‍⚖️ Governance/Specs
ipfs/specs feat: bump spec-generator version 🎉 Done 🧑🏻‍⚖️ Governance/Specs
ipfs/specs IPIP-410: Streaming Routing V1 HTTP API 🔎 In Review 🧑🏻‍⚖️ Governance/Specs
ipfs/boxo Boxo gateway should support IPIP-402 parameters 🎉 Done 🌉 Gateways and Clients
ipfs/boxo feat(gateway): redirect ipns b58mh to cid 🎉 Done 🌉 Gateways and Clients
ipfs/kubo feat(gateway): redirect /ipns/b58mh to /ipns/cidb36 🎉 Done 🌉 Gateways and Clients
ipfs/boxo feat(gateway): implement IPIP-402 extensions for gateway CAR requests 🎉 Done 🌉 Gateways and Clients
ipfs/kubo feat(gateway): support for IPIP-402 CAR params 🎉 Done 🌉 Gateways and Clients
ipfs/gateway-conformance feat: tests for IPIP-402 CAR parameters 🎉 Done 🌉 Gateways and Clients
ipfs/kubo feat(gateway): support for IPIP-402 CAR params 🎉 Done 🌉 Gateways and Clients
ipfs/boxo feat(gateway)!: deserialised responses turned off by default 🎉 Done 🌉 Gateways and Clients
ipfs/kubo feat: Gateway.DeserializedResponses config flag 🎉 Done 🌉 Gateways and Clients
ipfs/boxo Gateway metric tracking partial failures 🎉 Done 🌉 Gateways and Clients
ipfs/boxo gateway: return user-friendly HTML with HTTP errors 🎉 Done 🌉 Gateways and Clients
ipfs/boxo feat(gateway): improved templates, user friendly errors 🎉 Done 🌉 Gateways and Clients
ipfs/boxo More useful html with dag-cbor 🎉 Done 🌉 Gateways and Clients
ipfs/boxo feat(gateway): visualize dag-cbor and dag-json 🎉 Done 🌉 Gateways and Clients
ipfs/boxo gateway: add trustless-only mode 🎉 Done 🌉 Gateways and Clients
ipfs/boxo bug: _redirects parsing error does not provide enough info 🎉 Done 🌉 Gateways and Clients
ipfs/kubo Kubo mishandles ? in path names in IPNS context, confusing standards-conformant browsers 🎉 Done 🌉 Gateways and Clients
ipfs/boxo feat(gw): add ipfs_http_gw_request_types metric 🎉 Done 🌉 Gateways and Clients
ipfs/kubo feat(gateway): human error pages, dag-cbor/dag-json preview 🎉 Done 🌉 Gateways and Clients
ipfs/boxo fix(gateway): question marks in url.Path when redirecting 🎉 Done 🌉 Gateways and Clients
ipfs/kubo fix(gateway): question marks in url.Path when redirecting 🎉 Done 🌉 Gateways and Clients
ipfs/kubo fix(gateway)!: no duplicate payload during subdomain redirects 🎉 Done 🌉 Gateways and Clients
ipfs/gateway-conformance fix: remove body check for subdomain redirection 🎉 Done 🌉 Gateways and Clients
ipfs/specs IPIP-402: Partial CAR Support on Trustless Gateways 🔎 In Review 🌉 Gateways and Clients
ipfs/specs IPIP-412: Signaling Block Order in CARs on HTTP Gateways 🔎 In Review 🌉 Gateways and Clients
ipfs/boxo fix(gateway): ensure 'X-Ipfs-Root' header is valid 🔎 In Review 🌉 Gateways and Clients
ipfs/gateway-conformance Port all "simple" sharness tests 🏃‍♀️ In Progress 🌉 Gateways and Clients
  👀 bifrost-gateway Project Board   🌉 Gateways and Clients
ipfs/bifrost-gateway meta: GRAPH_BACKEND fixes and latency improvements   🌉 Gateways and Clients
  ⬇️⬇️⬇️ Needs Triage ⬇️⬇️⬇️   🌉 Gateways and Clients
ipfs/go-datastore feat: return error from txn.Discard() 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-pinning-service-http-client Deprecate Types and Readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-path Deprecate Types and Readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-namesys Deprecate Types and Readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-mfs Deprecate Types and Readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-provider Deprecate Types and Readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-keystore Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-pinner Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-filestore Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipns Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-blockservice Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-chunker Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-fetcher Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-blockstore Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-posinfo Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-util Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-ds-help Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-verifcid Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-exchange-offline Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-exchange-interface Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-routing Deprecate types and readme 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/kubo Replace flaky test/sharness/t0172-content-routing-over-http.sh with go harness 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/boxo go-merkledag duplicates and global variables 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/boxo Feat: reduce globals 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/boxo rename unixfs protobuf package to unixfs.v1 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipld-format feat: remove block decoding global registry 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/boxo rename dagpb protobuf to merkledag.v1 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/boxo feat: remove ipld legacy and format globals in ipld/merkledag 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-http-client chore: v0.6.0 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/go-ipfs-exchange-interface chore: bump version (with deprecated types) 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/boxo coreiface: add a testing.T argument to the provider 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/boxo chore: do not rely on deprecated logger 🎉 Done 👷🏾 Maintainer/Contributor Experience
ipfs/kubo feat: cmd/ipfs: Make it possible to depend on cmd/ipfs 🔎 In Review 👷🏾 Maintainer/Contributor Experience
ipfs/boxo [Milestone] Getting boxo "over the hump" 🏃‍♀️ In Progress 👷🏾 Maintainer/Contributor Experience
ipfs/boxo Handle relationship between boxo and go-car and go-merkledag 🏃‍♀️ In Progress 👷🏾 Maintainer/Contributor Experience
ipfs/boxo [Tracking issue] Release for the "over the hump" copy repo consolidation 🏃‍♀️ In Progress 👷🏾 Maintainer/Contributor Experience
  ⬇️⬇️⬇️ go-libipfs: getting over the hump / 🦆 🦆 🦆 ⬇️⬇️⬇️   👷🏾 Maintainer/Contributor Experience
  ⬇️⬇️⬇️ Other⬇️⬇️⬇️   👷🏾 Maintainer/Contributor Experience
ipfs/boxo Kubo/Boxo: pre PR signal that a contributor needs to run "go mod tidy"   👷🏾 Maintainer/Contributor Experience
  ⬆️⬆️⬆️ Items that should make it into this iteration ⬆️⬆️⬆️   👷🏾 Maintainer/Contributor Experience
ipfs/kubo docs: add Thunderdome docs for releases 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/boxo Release 0.9.0 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo Release 0.20.1 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo chore: update dependencies 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/boxo chore: update dependencies 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo Automate Kubo release process 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/go-ipfs-priv ci: enable access to any private gh repo 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/distributions fix: unify build matrix for amd64-v2 and v3 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/distributions perf: remove amd64 microarchitecture levels from the template 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo Windows arm64 native support 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/distributions Add Universal Mac OS build 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo Disable the build tests for PRs to any markdown files in the repo. 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo ci: simplify self-hosted runner selection 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/distributions fix(site): default apple downloads to arm64 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/boxo Update RELEASE.md based on 0.9 release 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo feat: webui@4.0.1 🎉 Done 🚅 Release Process, Artifacts, CI/CD
ipfs/kubo Release 0.21 🏃‍♀️ In Progress 🚅 Release Process, Artifacts, CI/CD
ipfs/boxo Ensure releases use up-to-date CHANGELOG.md 🥞 Todo 🚅 Release Process, Artifacts, CI/CD
ipfs/boxo Enforce changelog updates in CI 🥞 Todo 🚅 Release Process, Artifacts, CI/CD
ipfs/boxo Source GitHub Release description from CHANGELOG.md 🥞 Todo 🚅 Release Process, Artifacts, CI/CD
ipfs/boxo Announce releases on blog.ipfs.tech 🥞 Todo 🚅 Release Process, Artifacts, CI/CD
ipfs/kuboreleaser Kubo v0.20.0-rc2 findings   🚅 Release Process, Artifacts, CI/CD
ipfs/kuboreleaser Add step to log the list of Boxo/Kubo commits in master/main that aren't making it into a release   🚅 Release Process, Artifacts, CI/CD
  ⬆️⬆️⬆️ Items that should make it into this iteration ⬆️⬆️⬆️   🚅 Release Process, Artifacts, CI/CD
ipfs/boxo valuify blocks.Block 🏃‍♀️ In Progress ❓ Unsure

@BigLep
Copy link
Contributor Author

BigLep commented Jun 15, 2023

I updated the issue description with the items I believe need to make it into RC2

I forgot to save (doh!), but have done so now.

@hacdias
Copy link
Member

hacdias commented Jun 15, 2023

Early testers ping for v0.21.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.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 19, 2023

In terms of release date, this will be 2023-06-19 at the earlier as need a successful thunderdome test run of RC2. I currently don't see one: https://protocollabs.grafana.net/d/GE2JD7ZVz/experiment-timeline?from=now-7d&to=now&var-experiment=kubo-prerelease-21&var-timeframe=6h&orgId=1

@BigLep
Copy link
Contributor Author

BigLep commented Jun 19, 2023

(I'm recalling more details. I believe there will be a RC3 with a new go-libp2p 0.27.x patchh release. We'd then Thunderdome test that and confirm results before release.). Please correct me if I have any of that wrong @Jorropo .

@lidel
Copy link
Member

lidel commented Jun 19, 2023

Found a bug during RC2 testing, we need to include ipfs/boxo#358 in Kubo 0.21 (release blocker)

@hacdias
Copy link
Member

hacdias commented Jun 19, 2023

Boxo patch release is up and Kubo is updated.

@hacdias
Copy link
Member

hacdias commented Jun 20, 2023

Early testers ping for v0.21.0-rc3 testing 😄.

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

@BigLep
Copy link
Contributor Author

BigLep commented Jun 20, 2023

In terms of next steps for completing the release, @Jorropo has confirmed in Thunderdome testing that goroutine leak and deadlock problems have been addressed. We now want to be confident that TTFB hasn't regressed. @Jorropo will capture his analysis in https://www.notion.so/pl-strflt/kubo-prerelease-21-93caf901a408490480438b48974d8a07. Once that is good, we'll release. We expect to do so by EOD Thursday, 2023-06-22, assuming no issues are found. Internal performance review work has reduced our bandwidth for getting this over the line quicker.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 22, 2023

2023-06-22 maintainer conversation:
Open things to fix:

@iand
Copy link
Contributor

iand commented Jun 22, 2023

Every Thunderdome experiment has a configured duration, specified in minutes in when thunderdome deploy is run. After that time the experiment is terminated and all instances halted and deprovisioned. 6 hours is the recommended duration of a useful Kubo experiment, but I note that the example in the release docs uses 120 minutes.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 26, 2023

@Jorropo : can you please provide an update on how your three things from the 2023-06-22 conversation are going?

@Jorropo
Copy link
Contributor

Jorropo commented Jun 27, 2023

The fix for the migration and config issues are here #9995

@hacdias
Copy link
Member

hacdias commented Jun 27, 2023

Quick comment here that we will want to include some Boxo fixes in the 0.21:

I think it is safe to release a Boxo 0.11 (there were breaking changes in boxo/ipns public API) and also include 5156f21 here. If there are any concerns, I can also work on releasing a cherry-picked patch release for Boxo with only the fixes above.

@marten-seemann
Copy link
Member

@BigLep What's the timeline for this release? The release timeline seems to be quite outdated:

  • Expected RC date: 2023-06-01 2023-06-08 2023-06-12
  • 🚢 Expected final release date: 2023-06-08 2023-06-15

@hacdias
Copy link
Member

hacdias commented Jun 27, 2023

@marten-seemann this week if Thunderdome testing results are good to go.

@marten-seemann
Copy link
Member

Thank you @hacdias!
It would be really helpful if you could keep the issue up to date, so people can see what the current plan is 🙏

@Jorropo
Copy link
Contributor

Jorropo commented Jun 29, 2023

From thunderdome testing all kubo rc4 are still running with no memory leak, they keep memory very cool (~6GiB) compared to v0.20 (has a memory leak ~32GiB then crashes).
TTFB is noisy, but low connections dropped so that means the loadbalancer is able to get requests through, I think it's fine but what do I know ?

That a 🟢 on release for me on the thunderdom side.

@hacdias
Copy link
Member

hacdias commented Jun 29, 2023

Release is scheduled for Monday 2023-07-04 2023-07-03.

@hacdias
Copy link
Member

hacdias commented Jul 3, 2023

🎉 Kubo v0.21.0 is out!

@hacdias
Copy link
Member

hacdias commented Jul 3, 2023

The release is essentially done, so I'm closing 😄 There are still one or two things left that will be taken care async.

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

8 participants