kubo/docs/changelogs/v0.37.md
Andrew Gillis d4ab5129e9
fix(cmd): exit 1 on error (#10903)
* Fix command stream result handling

Do not close the stream prematurely in a deferred function. Also, avoid possible shadowing errors.

Closes #9007

* test(cli): test/cli/cid_test.go

includes regression tests for https://github.com/ipfs/kubo/issues/9007
and better coverage than the old test/sharness/t0290-cid.sh

(identified bug in basemoji)

* fix: base256emoji in cid bases --prefix

changed the character display logic from ASCII range check to
unicode.IsPrint() to properly handle Unicode characters including
emojis.

* docs: changelog

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-08 17:25:05 -07:00

5.0 KiB
Raw Blame History

Kubo changelog v0.37

This release was brought to you by the Shipyard team.

v0.37.0

Overview

🔦 Highlights

Clear provide queue when reprovide strategy changes

Your content sharing strategy changes now take effect cleanly, without interference from previously queued items.

When you change Reprovider.Strategy and restart Kubo, the provide queue is automatically cleared. This ensures only content matching your new strategy will be announced to the network.

A new ipfs provide clear command also allows manual queue clearing for debugging purposes.

Note

Upgrading to Kubo 0.37 will automatically clear any preexisting provide queue. The next time Reprovider.Interval hits, Reprovider.Strategy will be executed on a clean slate, ensuring consistent behavior with your current configuration.

🧷 Named pins in ipfs add command

Added --pin-name flag to ipfs add for assigning names to pins.

$ ipfs add --pin-name=testname cat.jpg
added bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi cat.jpg

$ ipfs pin ls --names
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi recursive testname

⚙️ Reprovider.Strategy is now consistently respected

Prior to this version, files added, blocks received etc. were "provided" to the network (announced on the DHT) regardless of the "reproviding strategy" setting. For example:

  • Strategy set to "pinned" + ipfs add --pin=false → file was provided regardless
  • Strategy set to "roots" + ipfs pin add → all blocks (not only the root) were provided

Only the periodic "reproviding" action (runs every 22h by default) respected the strategy.

This was inefficient as content that should not be provided was getting provided once. Now all operations respect Reprovider.Strategy. If set to "roots", no blocks other than pin roots will be provided regardless of what is fetched, added etc.

Note

Behavior change: The --offline flag no longer affects providing behavior. Both ipfs add and ipfs --offline add now provide blocks according to the reproviding strategy when run against an online daemon (previously --offline add did not provide). Since ipfs add has been nearly as fast as offline mode since v0.35, --offline is rarely needed. To run truly offline operations, use ipfs --offline daemon.

Removed unnecessary dependencies

Kubo has been cleaned up by removing unnecessary dependencies and packages:

  • Removed thirdparty/assert (replaced by github.com/stretchr/testify/require)
  • Removed thirdparty/dir (replaced by misc/fsutil)
  • Removed thirdparty/notifier (unused)
  • Removed goprocess dependency (replaced with native Go context patterns)

These changes reduce the dependency footprint while improving code maintainability and following Go best practices.

Improved ipfs cid

Certain ipfs cid commands can now be run without a daemon or repository, and return correct exit code 1 on error, making it easier to perform CID conversion in scripts and CI/CD pipelines.

While at it, we also fixed unicode support in ipfs cid bases --prefix to correctly show base256emoji 🚀 :-)

Deprecated ipfs stats reprovide

The ipfs stats reprovide command has moved to ipfs provide stat. This was done to organize provider commands in one location.

Note

ipfs stats reprovide still works, but is marked as deprecated and will be removed in a future release.

📦 Important dependency updates

📝 Changelog

👨‍👩‍👧‍👦 Contributors