diff --git a/docs/changelogs/v0.37.md b/docs/changelogs/v0.37.md index 97f62a8c0..f0f1800af 100644 --- a/docs/changelogs/v0.37.md +++ b/docs/changelogs/v0.37.md @@ -1,4 +1,4 @@ -# Kubo changelog v0.37 +[#](#) Kubo changelog v0.37 @@ -13,16 +13,16 @@ This release was brought to you by the [Shipyard](https://ipshipyard.com/) team. - [๐Ÿš€ Repository migration from v16 to v17 with embedded tooling](#-repository-migration-from-v16-to-v17-with-embedded-tooling) - [๐Ÿšฆ Gateway concurrent request limits and retrieval timeouts](#-gateway-concurrent-request-limits-and-retrieval-timeouts) - [๐Ÿ”ง AutoConf: Complete control over network defaults](#-autoconf-complete-control-over-network-defaults) - - [New IPNS publishing options](#new-ipns-publishing-options) - - [Clear provide queue when reprovide strategy changes](#clear-provide-queue-when-reprovide-strategy-changes) + - [๐Ÿ—‘๏ธ Clear provide queue when reprovide strategy changes](#-clear-provide-queue-when-reprovide-strategy-changes) - [๐Ÿชต Revamped `ipfs log level` command](#-revamped-ipfs-log-level-command) - [๐Ÿ“Œ Named pins in `ipfs add` command](#-named-pins-in-ipfs-add-command) - - [Custom sequence numbers in `ipfs name publish`](#custom-sequence-numbers-in-ipfs-name-publish) + - [๐Ÿ“ New IPNS publishing options](#-new-ipns-publishing-options) + - [๐Ÿ”ข Custom sequence numbers in `ipfs name publish`](#-custom-sequence-numbers-in-ipfs-name-publish) - [โš™๏ธ `Reprovider.Strategy` is now consistently respected](#-reprovider-strategy-is-now-consistently-respected) - [โš™๏ธ `Reprovider.Strategy=all`: improved memory efficiency](#-reproviderstrategyall-improved-memory-efficiency) - - [Removed unnecessary dependencies](#removed-unnecessary-dependencies) - - [Improved `ipfs cid`](#improved-ipfs-cid) - - [Deprecated `ipfs stats reprovide`](#deprecated-ipfs-stats-reprovide) + - [๐Ÿงน Removed unnecessary dependencies](#-removed-unnecessary-dependencies) + - [๐Ÿ” Improved `ipfs cid`](#-improved-ipfs-cid) + - [โš ๏ธ Deprecated `ipfs stats reprovide`](#-deprecated-ipfs-stats-reprovide) - [๐Ÿ”„ AutoRelay now uses all connected peers for relay discovery](#-autorelay-now-uses-all-connected-peers-for-relay-discovery) - [๐Ÿ“Š Anonymous telemetry for better feature prioritization](#-anonymous-telemetry-for-better-feature-prioritization) - [๐Ÿ“ฆ๏ธ Important dependency updates](#-important-dependency-updates) @@ -31,6 +31,8 @@ This release was brought to you by the [Shipyard](https://ipshipyard.com/) team. ### Overview +Kubo 0.37.0 introduces embedded repository migrations, gateway resource protection, complete AutoConf control, improved reprovider strategies, and anonymous telemetry for better feature prioritization. This release significantly improves memory efficiency, network configuration flexibility, and operational reliability while maintaining full backward compatibility. + ### ๐Ÿ”ฆ Highlights #### ๐Ÿš€ Repository migration from v16 to v17 with embedded tooling @@ -89,27 +91,7 @@ ipfs config --json DNS.Resolvers '{".": ["https://dns.example.com/dns-query"], " Organizations can host custom AutoConf manifests for private networks. See [AutoConf documentation](https://github.com/ipfs/kubo/blob/master/docs/config.md#autoconf) and format spec at https://conf.ipfs-mainnet.org/ -#### New IPNS publishing options - -Added support for controlling IPNS record publishing strategies. - -**Delegated publishers configuration:** - -[`Ipns.DelegatedPublishers`](https://github.com/ipfs/kubo/blob/master/docs/config.md#ipnsdelegatedpublishers) configures HTTP endpoints for IPNS publishing. Supports `"auto"` for network defaults or custom HTTP endpoints. - -**New command flags:** -```bash -# Publish only to HTTP services defined in Ipns.DelegatedPublishers (skip DHT entirely) -ipfs name publish --delegated-only /ipfs/QmHash - -# Publish only locally (no network requests) -ipfs name publish --allow-offline /ipfs/QmHash -``` - -These flags enable HTTP-only publishing or offline-only operations for testing. - - -#### Clear provide queue when reprovide strategy changes +#### ๐Ÿ—‘๏ธ Clear provide queue when reprovide strategy changes Changing [`Reprovider.Strategy`](https://github.com/ipfs/kubo/blob/master/docs/config.md#reproviderstrategy) and restarting Kubo now automatically clears the provide queue. Only content matching the new strategy will be announced. @@ -152,7 +134,28 @@ $ ipfs pin ls --names bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi recursive testname ``` -#### โš™๏ธ `Reprovider.Strategy` is now consistently respected. +#### ๐Ÿ“ New IPNS publishing options + +Added support for controlling IPNS record publishing strategies with new command flags and configuration. + +**New command flags:** +```bash +# Publish without network connectivity (local datastore only) +ipfs name publish --allow-offline /ipfs/QmHash + +# Publish without DHT connectivity (uses local datastore and HTTP delegated publishers) +ipfs name publish --allow-delegated /ipfs/QmHash +``` + +**Delegated publishers configuration:** + +[`Ipns.DelegatedPublishers`](https://github.com/ipfs/kubo/blob/master/docs/config.md#ipnsdelegatedpublishers) configures HTTP endpoints for IPNS publishing. Supports `"auto"` for network defaults or custom HTTP endpoints. The `--allow-delegated` flag enables publishing through these endpoints without requiring DHT connectivity, useful for nodes behind restrictive networks or during testing. + +#### ๐Ÿ”ข Custom sequence numbers in `ipfs name publish` + +Added `--sequence` flag to `ipfs name publish` for setting custom sequence numbers in IPNS records. This enables advanced use cases like manually coordinating updates across multiple nodes. See `ipfs name publish --help` for details. + +#### โš™๏ธ `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](https://github.com/ipfs/kubo/blob/master/docs/config.md#reproviderstrategy). For example: @@ -175,7 +178,7 @@ As part of this improvement, the `flat` reprovider strategy has been renamed to > [!NOTE] > **Migration guidance:** If you experience undesired announcement delays of root CIDs with the new `all` strategy, switch to `pinned+mfs` for root prioritization. -#### Removed unnecessary dependencies +#### ๐Ÿงน Removed unnecessary dependencies Kubo has been cleaned up by removing unnecessary dependencies and packages: @@ -186,17 +189,13 @@ Kubo has been cleaned up by removing unnecessary dependencies and packages: These changes reduce the dependency footprint while improving code maintainability and following Go best practices. -#### Custom sequence numbers in `ipfs name publish` - -Added `--sequence` flag to `ipfs name publish` for setting custom sequence numbers in IPNS records. This enables advanced use cases like manually coordinating updates across multiple nodes. See `ipfs name publish --help` for details. - -#### Improved `ipfs cid` +#### ๐Ÿ” 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` +#### โš ๏ธ 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. @@ -217,6 +216,8 @@ Per a suggestion from the IPFS Foundation, Kubo now sends optional anonymized te **What**: Currently, we send the following anonymous metrics: +
Click to see telemetry metrics example + ``` "uuid": "", "agent_version": "kubo/0.37.0-dev", @@ -245,6 +246,8 @@ Per a suggestion from the IPFS Foundation, Kubo now sends optional anonymized te "platform_vm": false ``` +
+ The exact data sent for your node can be inspected by setting `GOLOG_LOG_LEVEL="telemetry=debug"`. Users will see an informative message the first time they launch a telemetry-enabled daemon, with time to opt-out before any data is collected. Telemetry data is sent every 24h, with the first collection starting 15 minutes after daemon launch. **User control**: You can opt-out at any time: