Repository navigation
Closed
Labels
iteration/2026-q2On maintainer radar for Q2 2026On maintainer radar for Q2 2026kind/maintenanceWork required to avoid breaking changes or harm to project's status quoWork required to avoid breaking changes or harm to project's status quoneed/maintainers-inputNeeds input from the current maintainer(s)Needs input from the current maintainer(s)
Description
Note
Part of remaining Q3 maintenance commitment of key libraries and services the Shipyard team does for IPFS Foundation:
Important
This is the last Kubo release with new features from the Shipyard team. Our IPFS work ends on September 30, 2026. Until then we will ship security and bug fix releases if any are needed. After that date, no one at Shipyard maintains Kubo. If you depend on Kubo, read the announcement and send us your transition questions before the end of September.
Update: there is a community discussion here if you need support beyond Sep 30.
Meta
- Release owner: @lidel
- Release reviewer/backup: @gammazero
- Expected RC1 date: Jun 23rd
- Expected RC1 date: Jul 29th?
- 🚢 Expected final release date: TBD
- Release PR: Release v0.43.0 #11402
- Accompanying PR for improving the release process: TBD
- Internal Staging tests by Shipyard: TBD
- Changelog: https://github.com/ipfs/kubo/blob/master/docs/changelogs/v0.43.md
Items In Scope
Required for v0.43.1
- chore: bump swiss for Go 1.27 support #11450
- docs: clearer datastore layouts and init errors #11449
- fix: daemon exit on RPC shutdown with --enable-gc #11447
- test(unixfs): lock in CID profile behavior (IPIP-550) #11439
- fix: Ipfs-Uri gateway header (IPIP-548) #11437
- chore: bump go-libp2p-kad-dht to v0.42.2 #11436 (with fix(records): batch provider datastore writes and GC deletes libp2p/go-libp2p-kad-dht#1293 (fix for Constant writes of DHT provider records to datastore/*.log #11432))
- boxo https://github.com/ipfs/boxo/releases/tag/v0.42.2 or later
- cherry pick any things from master + move them to changelog v0.43.1
- https://github.com/quic-go/quic-go/releases/tag/v0.62.0 (or 0.60.x backport)
- remove shipyard telemetry endpoint
- any opportunistic deps bumps
Required for RC2
- fix: harden CAR streaming and truncation #11409
- docs: go-libp2p v0.49.0 + boxo v0.42.1 #11410
- fix(http-routing): keep browser transports in provider records #11394
- test: fix flakes that force CI re-runs #11413
- chore: update p2p-forge to v0.10.1 #11414
- chore: restore default telemetry for now #11415
Required
- fix(gateway): renew cache freshness on 304 boxo#1188
- DNSLink TTL wiring with feat(namesys): propagate DNSLink TXT TTL boxo#1167 and:
- feat(autotls): skip issuance when broker is down #11397
- feat(cli): accept native ipfs:// and ipns:// URIs #11375
- NPM >=v12 fix: fix: fetch binary on demand from github releases npm-kubo#83
- feat: make telemetry opt-in #11374
- cleanup redundant in-memory cidsets and allow passing alternatives
- chore(deps): bump go-libp2p-kad-dht to v0.41.0 #11377
- chore(deps): bump go-libp2p and go-libp2p-pubsub #11389
- go-libp2p-pubsub with
- libp2p with fixed
/webrtc-directfeat(webrtc): support webrtc-direct v2 libp2p/go-libp2p#3520 (context: WebRTC-Direct: Chrome may be removing ICE credential munging libp2p/specs#672 (comment))
- boxo with
- feat(ux): warn when behind CGNAT #11352 - warn when behind CGNAT
- fix: bound ipns caching and validate lifetimes #11349 - bound IPNS caching, validate lifetimes
⚠️ daemon now refuses to start whenIpns.RecordLifetime<Ipns.RepublishPeriod - fix(daemon): return config errors instead of calling log.Fatal #11373 + fix: return error instead of log.Fatal in HolePunching #11365 - config errors instead of
log.Fatal - fix(config): protect and derive PeerID during JSON replace #11344 -
config replacekeeps PeerID and private key in sync - fix(libp2p): quieter dead-listener check #11342 - quieter dead-listener check, adds
Internal.DeadListenerCheck - feat: derive AgentSuffix from build origin #11341 - derive AgentSuffix from build origin
- fix: correct test for opt-in and opt-out messages #11383 - fix opt-in/opt-out message check (follow-up to feat: make telemetry opt-in #11374)
- pin
boxoto tagged release - chore: update webui to v4.13.0 #11396
Nice To Have (Optional)
- pin
go-libp2pto tagged release (not a blocker) - go-libp2p with
- secp256k1 key support is missing pem-pkcs8-cleartext import/export #9912
- deps: drop gogo protobuf from libp2p stack #11384
- (tbd, needs triage first) webrtc-direct and AutoTLS /tls/ws missing from provider records announced to delegated HTTP routers on AutoNAT-confirmed-public nodes #11369
- feat: add experimental on-demand pinning #11252
- Unified Provide Interface for Content Routers #10097 ?
- denylist:
?format=cardoes not skip directly blocked CIDs #10361 - MFS bug:
ipfs files rmhanging #10842 - fix(cli): deduplicate dag stat blocks by multihash #11098
- Support consuming https://badbits.dwebops.pub/badbits.deny rainbow#126 (same applies to Kubo)
- fix(gateway): prevent blocked CIDs in CAR responses #10948
- ipfs blockservice is incompatible with sessions ipfs-shipyard/nopfs#34 (re-triage once kubo#10948 is done)
- HTTPSubscriber: check with If-None-Match or If-Modified-Since ipfs-shipyard/nopfs#38
- HTTPSubscriber: detect when list is not append-only ipfs-shipyard/nopfs#39
- fix(gateway): prevent blocked CIDs in CAR responses #10948
- feat(client/rpc): add
provide statanddag importsupport #11069 / feat(client/rpc): auto-generate RPC GO client #11210 - TBD
Metadata
Metadata
Assignees
Labels
iteration/2026-q2On maintainer radar for Q2 2026On maintainer radar for Q2 2026kind/maintenanceWork required to avoid breaking changes or harm to project's status quoWork required to avoid breaking changes or harm to project's status quoneed/maintainers-inputNeeds input from the current maintainer(s)Needs input from the current maintainer(s)

Activity
lidel commentedon Jul 22, 2026
✅ Release Checklist (v0.43.0-rc1)
Release types: RC (Release Candidate)
1. Prepare Release Branch
git fetch origin master releaserelease-vX.Y.Z(base from:masterif Z=0 for new minor/major,releaseif Z>0 for patch)masterbranch and prepare for next release cycle:vX.Y+1.0-dev(./docs/changelogs/vX.Y+1.mdand add link in CHANGELOG.mdrelease-vX.Y.Zbranch and update version.go tovX.Y.Z(-rcN)(release-vX.Y.Z→release(example)masterintorelease-vX.Y.Z:git cherry-pick -x <commit>(example)-xflag records original commit SHA for traceability and cleaner merge historyChangelogandContributorssections inrelease-vX.Y.Zwith./bin/mkreleaselogstdout (do NOT copy stderr)release-vX.Y.Z→release) usingCreate a merge commitSquash and mergenorRebase and merge; we want the releaser's GPG signature on the merge commitrelease-vX.Y.Zbranch (needed for future patch releases and git history)2. Tag & Publish
Create Tag
If you're making a release for the first time, do pair programming and have the release reviewer verify all commands.
release-vX.Y.Zbranch:git tag -s vX.Y.Z-rcN -m 'Prerelease X.Y.Z-rcN'releasebranch:git tag -s vX.Y.Z -m 'Release X.Y.Z'git show vX.Y.Z(-rcN)git push origin vX.Y.Z(-rcN)git push --tags(pushes every local tag, cluttering the repo)Publish Artifacts
git checkout -b release-kubo-X.Y.Z(-rcN).tool-versionsgolang matches Kubo's CIgo-version:(update if needed)./dist.sh add-version kubo vX.Y.Z(-rcN)(usage)dists/kubo/versions, FINAL also updatesdists/kubo/current- example)vX.Y.Z(-rcN)This is a pre-release3. Post-Release
Technical Tasks
release→mastermerge-release-vX.Y.Zfromreleasemastertomerge-release-vX.Y.Zfirst, and resolve conflict inversion.go-devversion frommasterin version.go, discard version fromreleasemerge-release-vX.Y.ZtomasterusingCreate a merge commitSquash and mergenorRebase and merge; onlyCreate a merge commitpreserves commit history and the audit trail of what was merged wherepackage.jsonandpackage-lock.jsonPromotion
Kubo vX.Y.Z(-rcN) is out!, tag:kubo##) in descriptionFinal Steps
go.mod(go get -uas it will upgrade indirect dependencies which may cause problems)make mod_tidygo.modandgo.sumupdateslidel commentedon Jul 23, 2026
Early testers ping for v0.43.0-rc1 👋
v0.43.0-rc1 is out: https://github.com/ipfs/kubo/releases/tag/v0.43.0-rc1 (announcement: https://discuss.ipfs.tech/t/kubo-v0-43-0-rc1-is-out/20288). Please give it a spin and report anything you hit.
You're getting this message because you're listed here. Please update that list if you no longer want to be included.
lidel commentedon Jul 29, 2026
✅ Release Checklist (v0.43.0-rc2)
Release types: RC (Release Candidate)
1. Prepare Release Branch
git fetch origin master releaserelease-vX.Y.Z(base from:masterif Z=0 for new minor/major,releaseif Z>0 for patch)masterbranch and prepare for next release cycle:vX.Y+1.0-dev(./docs/changelogs/vX.Y+1.mdand add link in CHANGELOG.mdrelease-vX.Y.Zbranch and update version.go tovX.Y.Z(-rcN)(release-vX.Y.Z→release(example)masterintorelease-vX.Y.Z:git cherry-pick -x <commit>(example)-xflag records original commit SHA for traceability and cleaner merge historyChangelogandContributorssections inrelease-vX.Y.Zwith./bin/mkreleaselogstdout (do NOT copy stderr)release-vX.Y.Z→release) usingCreate a merge commitSquash and mergenorRebase and merge; we want the releaser's GPG signature on the merge commitrelease-vX.Y.Zbranch (needed for future patch releases and git history)2. Tag & Publish
Create Tag
If you're making a release for the first time, do pair programming and have the release reviewer verify all commands.
release-vX.Y.Zbranch:git tag -s vX.Y.Z-rcN -m 'Prerelease X.Y.Z-rcN'releasebranch:git tag -s vX.Y.Z -m 'Release X.Y.Z'git show vX.Y.Z(-rcN)git push origin vX.Y.Z(-rcN)git push --tags(pushes every local tag, cluttering the repo)Publish Artifacts
git checkout -b release-kubo-X.Y.Z(-rcN).tool-versionsgolang matches Kubo's CIgo-version:(update if needed)./dist.sh add-version kubo vX.Y.Z(-rcN)(usage)dists/kubo/versions, FINAL also updatesdists/kubo/current- example)vX.Y.Z(-rcN)This is a pre-release3. Post-Release
Technical Tasks
release→mastermerge-release-vX.Y.Zfromreleasemastertomerge-release-vX.Y.Zfirst, and resolve conflict inversion.go-devversion frommasterin version.go, discard version fromreleasemerge-release-vX.Y.ZtomasterusingCreate a merge commitSquash and mergenorRebase and merge; onlyCreate a merge commitpreserves commit history and the audit trail of what was merged wherepackage.jsonandpackage-lock.jsonPromotion
Kubo vX.Y.Z(-rcN) is out!, tag:kubo##) in descriptionFinal Steps
go.mod(go get -uas it will upgrade indirect dependencies which may cause problems)make mod_tidygo.modandgo.sumupdateslidel commentedon Jul 29, 2026
Early testers ping for v0.43.0-rc2 👋
v0.43.0-rc2 is out: https://github.com/ipfs/kubo/releases/tag/v0.43.0-rc2 (announcement: https://discuss.ipfs.tech/t/kubo-v0-43-0-rc2-is-out/20288). Please give it a spin and report anything you hit.
You're getting this message because you're listed here. Please update that list if you no longer want to be included.
sanderpick commentedon Jul 29, 2026
docs: remove Textile from early testers
lidel commentedon Aug 3, 2026
✅ Release Checklist (v0.43.0)
Release typs: FINAL
1. Prepare Release Branch
git fetch origin master releaserelease-vX.Y.Z(base from:masterif Z=0 for new minor/major,releaseif Z>0 for patch)masterbranch and prepare for next release cycle:vX.Y+1.0-dev(./docs/changelogs/vX.Y+1.mdand add link in CHANGELOG.mdrelease-vX.Y.Zbranch and update version.go tovX.Y.Z(-rcN)(release-vX.Y.Z→release(example)masterintorelease-vX.Y.Z:git cherry-pick -x <commit>(example)-xflag records original commit SHA for traceability and cleaner merge historyChangelogandContributorssections inrelease-vX.Y.Zwith./bin/mkreleaselogstdout (do NOT copy stderr)release-vX.Y.Z→release) usingCreate a merge commitSquash and mergenorRebase and merge; we want the releaser's GPG signature on the merge commitrelease-vX.Y.Zbranch (needed for future patch releases and git history)2. Tag & Publish
Create Tag
If you're making a release for the first time, do pair programming and have the release reviewer verify all commands.
release-vX.Y.Zbranch:git tag -s vX.Y.Z-rcN -m 'Prerelease X.Y.Z-rcN'releasebranch:git tag -s vX.Y.Z -m 'Release X.Y.Z'git show vX.Y.Z(-rcN)git push origin vX.Y.Z(-rcN)git push --tags(pushes every local tag, cluttering the repo)Publish Artifacts
git checkout -b release-kubo-X.Y.Z(-rcN).tool-versionsgolang matches Kubo's CIgo-version:(update if needed)./dist.sh add-version kubo vX.Y.Z(-rcN)(usage)dists/kubo/versions, FINAL also updatesdists/kubo/current- example)vX.Y.Z(-rcN)This is a pre-release3. Post-Release
Technical Tasks
release→mastermerge-release-vX.Y.Zfromreleasemastertomerge-release-vX.Y.Zfirst, and resolve conflict inversion.go-devversion frommasterin version.go, discard version fromreleasemerge-release-vX.Y.ZtomasterusingCreate a merge commitSquash and mergenorRebase and merge; onlyCreate a merge commitpreserves commit history and the audit trail of what was merged wherepackage.jsonandpackage-lock.jsonPromotion
Kubo vX.Y.Z(-rcN) is out!, tag:kubo##) in descriptionFinal Steps
go.mod(go get -uas it will upgrade indirect dependencies which may cause problems)make mod_tidygo.modandgo.sumupdateslidel commentedon Aug 3, 2026
Kubo 0.43.0 is out 🚢
lidel commentedon Aug 3, 2026
IPFS Desktop v0.50.0 is out
lidel commentedon Aug 21, 2026
Reopening to track v0.43.1
lidel commentedon Sep 10, 2026
Status: Kubo v0.43.1 has been waiting on a go-libp2p release for about three weeks.
To not hold the fixes back further, we ship on Monday, Sep 14, with or without it.
lidel commentedon Sep 14, 2026
✅ Release Checklist (v0.43.1)
Release types: PATCH
1. Prepare Release Branch
git fetch origin master releaserelease-vX.Y.Z(base from:masterif Z=0 for new minor/major,releaseif Z>0 for patch)masterbranch and prepare for next release cycle:vX.Y+1.0-dev(./docs/changelogs/vX.Y+1.mdand add link in CHANGELOG.mdrelease-vX.Y.Zbranch and update version.go tovX.Y.Z(-rcN)(release-vX.Y.Z→release(example)masterintorelease-vX.Y.Z:git cherry-pick -x <commit>(example)-xflag records original commit SHA for traceability and cleaner merge historyChangelogandContributorssections inrelease-vX.Y.Zwith./bin/mkreleaselogstdout (do NOT copy stderr)release-vX.Y.Z→release) usingCreate a merge commitSquash and mergenorRebase and merge; we want the releaser's GPG signature on the merge commitrelease-vX.Y.Zbranch (needed for future patch releases and git history)2. Tag & Publish
Create Tag
If you're making a release for the first time, do pair programming and have the release reviewer verify all commands.
release-vX.Y.Zbranch:git tag -s vX.Y.Z-rcN -m 'Prerelease X.Y.Z-rcN'releasebranch:git tag -s vX.Y.Z -m 'Release X.Y.Z'git show vX.Y.Z(-rcN)git push origin vX.Y.Z(-rcN)git push --tags(pushes every local tag, cluttering the repo)Publish Artifacts
git checkout -b release-kubo-X.Y.Z(-rcN).tool-versionsgolang matches Kubo's CIgo-version:(update if needed)./dist.sh add-version kubo vX.Y.Z(-rcN)(usage)dists/kubo/versions, FINAL also updatesdists/kubo/current- example)vX.Y.Z(-rcN)This is a pre-release3. Post-Release
Technical Tasks
release→mastermerge-release-vX.Y.Zfromreleasemastertomerge-release-vX.Y.Zfirst, and resolve conflict inversion.go-devversion frommasterin version.go, discard version fromreleasemerge-release-vX.Y.ZtomasterusingCreate a merge commitSquash and mergenorRebase and merge; onlyCreate a merge commitpreserves commit history and the audit trail of what was merged wherepackage.jsonandpackage-lock.jsonPromotion
Kubo vX.Y.Z(-rcN) is out!, tag:kubo##) in descriptionFinal Steps
go.mod(go get -uas it will upgrade indirect dependencies which may cause problems)make mod_tidygo.modandgo.sumupdateslidel commentedon Sep 15, 2026