@cryptotaxi247 / kubo / commits / baf8ff9cc

docs: use specs.ipfs.tech links for merged IPIPs (#11228)

- point to canonical URLs instead of github PR links - only updated active docs and v0.40 changelog - left old changelogs and unmerged IPIPs as-is

Marcin Rataj committed Mar 7, 2026 at 02:02 UTC baf8ff9cce895760405855dd3c8a762a26f1f2b2
6 files changed +17 -17
config/profile.go
+2 -2
@@ -327,7 +327,7 @@ fetching may be degraded.
327 Description: `Legacy UnixFS import profile for backward-compatible CID generation.
328 Produces CIDv0 with no raw leaves, sha2-256, 256 KiB chunks, and
329 link-based HAMT size estimation. Use only when legacy CIDs are required.
330 -See https://github.com/ipfs/specs/pull/499. Alias: legacy-cid-v0`,
330 +See https://specs.ipfs.tech/ipips/ipip-0499/. Alias: legacy-cid-v0`,
331 Transform: applyUnixFSv02015,
332 },
333 "legacy-cid-v0": {
@@ -338,7 +338,7 @@ See https://github.com/ipfs/specs/pull/499. Alias: legacy-cid-v0`,
338 Description: `Recommended UnixFS import profile for cross-implementation CID determinism.
339 Uses CIDv1, raw leaves, sha2-256, 1 MiB chunks, 1024 links per file node,
340 256 HAMT fanout, and block-based size estimation for HAMT threshold.
341 -See https://github.com/ipfs/specs/pull/499`,
341 +See https://specs.ipfs.tech/ipips/ipip-0499/`,
342 Transform: func(c *Config) error {
343 c.Import.CidVersion = *NewOptionalInteger(1)
344 c.Import.UnixFSRawLeaves = True
docs/changelogs/v0.40.md
+4 -4
@@ -49,7 +49,7 @@ This release brings reproducible file imports (CID Profiles), automatic cleanup
49
50 #### 🔢 IPIP-499: UnixFS CID Profiles
51
52 -CID Profiles are presets that pin down how files get split into blocks and organized into directories, so you get the same CID for the same data across different software or versions. Defined in [IPIP-499](https://github.com/ipfs/specs/pull/499).
52 +CID Profiles are presets that pin down how files get split into blocks and organized into directories, so you get the same CID for the same data across different software or versions. Defined in [IPIP-499](https://specs.ipfs.tech/ipips/ipip-0499/).
53
54 **New configuration [profiles](https://github.com/ipfs/kubo/blob/master/docs/config.md#profiles)**
55
@@ -94,7 +94,7 @@ Under the hood, the block storage layer (flatfs) was rewritten to use atomic bat
94
95 #### 🌍 Light clients can now use your node for delegated routing
96
97 -The [Routing V1 HTTP API](https://specs.ipfs.tech/routing/http-routing-v1/) is now exposed by default at `http://127.0.0.1:8080/routing/v1`. This allows light clients in browsers to use Kubo Gateway as a delegated routing backend instead of running a full DHT client. Support for [IPIP-476: Delegated Routing DHT Closest Peers API](https://github.com/ipfs/specs/pull/476) is included. Can be disabled via [`Gateway.ExposeRoutingAPI`](https://github.com/ipfs/kubo/blob/master/docs/config.md#gatewayexposeroutingapi).
97 +The [Routing V1 HTTP API](https://specs.ipfs.tech/routing/http-routing-v1/) is now exposed by default at `http://127.0.0.1:8080/routing/v1`. This allows light clients in browsers to use Kubo Gateway as a delegated routing backend instead of running a full DHT client. Support for [IPIP-476: Delegated Routing DHT Closest Peers API](https://specs.ipfs.tech/ipips/ipip-0476/) is included. Can be disabled via [`Gateway.ExposeRoutingAPI`](https://github.com/ipfs/kubo/blob/master/docs/config.md#gatewayexposeroutingapi).
98
99 #### 📊 See total size when pinning
100
@@ -108,13 +108,13 @@ Fetched/Processed 336 nodes (83 MB)
108
109 #### 🔀 IPIP-523: `?format=` takes precedence over `Accept` header
110
111 -The `?format=` URL query parameter now always wins over the `Accept` header ([IPIP-523](https://github.com/ipfs/specs/pull/523)), giving you deterministic HTTP caching and protecting against CDN cache-key collisions. Browsers can also use `?format=` reliably even when they send `Accept` headers with specific content types.
111 +The `?format=` URL query parameter now always wins over the `Accept` header ([IPIP-523](https://specs.ipfs.tech/ipips/ipip-0523/)), giving you deterministic HTTP caching and protecting against CDN cache-key collisions. Browsers can also use `?format=` reliably even when they send `Accept` headers with specific content types.
112
113 The only breaking change is for edge cases where a client sends both a specific `Accept` header and a different `?format=` value for an explicitly supported format (`tar`, `raw`, `car`, `dag-json`, `dag-cbor`, etc.). Previously `Accept` would win. Now `?format=` always wins.
114
115 #### 🚫 IPIP-524: Gateway codec conversion disabled by default
116
117 -Gateways no longer convert between codecs by default ([IPIP-524](https://github.com/ipfs/specs/pull/524)). This removes gateways from a gatekeeping role: clients can adopt new codecs immediately without waiting for gateway operator updates. Requests for a format that differs from the block's codec now return `406 Not Acceptable`.
117 +Gateways no longer convert between codecs by default ([IPIP-524](https://specs.ipfs.tech/ipips/ipip-0524/)). This removes gateways from a gatekeeping role: clients can adopt new codecs immediately without waiting for gateway operator updates. Requests for a format that differs from the block's codec now return `406 Not Acceptable`.
118
119 **Migration**: Clients should fetch raw blocks (`?format=raw` or `Accept: application/vnd.ipld.raw`)
120 and convert client-side using libraries like [@helia/verified-fetch](https://www.npmjs.com/package/@helia/verified-fetch).
docs/config.md
+6 -6
@@ -1158,7 +1158,7 @@ dag-pb or dag-cbor to dag-json).
1158
1159 When disabled (the default), the gateway returns `406 Not Acceptable` for
1160 codec mismatches, following behavior specified in
1161 -[IPIP-524](https://github.com/ipfs/specs/pull/524).
1161 +[IPIP-524](https://specs.ipfs.tech/ipips/ipip-0524/).
1162
1163 Most users should keep this disabled unless legacy
1164 [IPLD Logical Format](https://web.archive.org/web/20260204204727/https://ipld.io/specs/codecs/dag-pb/spec/#logical-format)
@@ -2829,7 +2829,7 @@ It specifies the routing type that will be created.
2829
2830 Currently supported types:
2831
2832 -- `http` simple delegated routing based on HTTP protocol from [IPIP-337](https://github.com/ipfs/specs/pull/337)
2832 +- `http` simple delegated routing based on HTTP protocol from [IPIP-337](https://specs.ipfs.tech/ipips/ipip-0337/)
2833 - `dht` provides decentralized routing based on [libp2p's kad-dht](https://github.com/libp2p/specs/tree/master/kad-dht)
2834 - `parallel` and `sequential`: Helpers that can be used to run several routers sequentially or in parallel.
2835
@@ -3695,7 +3695,7 @@ Type: `flag`
3695
3696 Options to configure the default parameters used for ingesting data, in commands such as `ipfs add` or `ipfs block put`. All affected commands are detailed per option.
3697
3698 -These options implement [IPIP-499: UnixFS CID Profiles](https://github.com/ipfs/specs/pull/499) for reproducible CID generation across IPFS implementations. Instead of configuring individual options, you can apply a predefined profile with `ipfs config profile apply <profile-name>`. See [Profiles](#profiles) for available options like `unixfs-v1-2025`.
3698 +These options implement [IPIP-499: UnixFS CID Profiles](https://specs.ipfs.tech/ipips/ipip-0499/) for reproducible CID generation across IPFS implementations. Instead of configuring individual options, you can apply a predefined profile with `ipfs config profile apply <profile-name>`. See [Profiles](#profiles) for available options like `unixfs-v1-2025`.
3699
3700 Note that using CLI flags will override the options defined here.
3701
@@ -3902,7 +3902,7 @@ Accepted values:
3902
3903 The `block` estimation is recommended for new profiles as it provides more
3904 accurate threshold decisions and better cross-implementation consistency.
3905 -See [IPIP-499](https://github.com/ipfs/specs/pull/499) for more details.
3905 +See [IPIP-499](https://specs.ipfs.tech/ipips/ipip-0499/) for more details.
3906
3907 Commands affected: `ipfs add`
3908
@@ -4147,7 +4147,7 @@ See <https://github.com/ipfs/kubo/blob/master/config/profile.go> for exact [`Imp
4147 > [!NOTE]
4148 > Use only when legacy CIDs are required. For new projects, use [`unixfs-v1-2025`](#unixfs-v1-2025-profile).
4149 >
4150 -> See [IPIP-499](https://github.com/ipfs/specs/pull/499) for more details.
4150 +> See [IPIP-499](https://specs.ipfs.tech/ipips/ipip-0499/) for more details.
4151
4152 ### `legacy-cid-v0` profile
4153
@@ -4164,7 +4164,7 @@ See <https://github.com/ipfs/kubo/blob/master/config/profile.go> for exact [`Imp
4164 > [!NOTE]
4165 > This profile ensures CID consistency across different IPFS implementations.
4166 >
4167 -> See [IPIP-499](https://github.com/ipfs/specs/pull/499) for more details.
4167 +> See [IPIP-499](https://specs.ipfs.tech/ipips/ipip-0499/) for more details.
4168
4169 ## Security
4170
docs/content-blocking.md
+3 -3
@@ -6,7 +6,7 @@
6 <br>
7 </h1>
8
9 -Kubo ships with built-in support for denylist format from [IPIP-383](https://github.com/ipfs/specs/pull/383).
9 +Kubo ships with built-in support for denylist format from [IPIP-383](https://specs.ipfs.tech/ipips/ipip-0383/).
10
11 ## Default behavior
12
@@ -41,7 +41,7 @@ caused the request to be blocked.
41
42 ## Denylist file format
43
44 -[NOpfs](https://github.com/ipfs-shipyard/nopfs) supports the format from [IPIP-383](https://github.com/ipfs/specs/pull/383).
44 +[NOpfs](https://github.com/ipfs-shipyard/nopfs) supports the format from [IPIP-383](https://specs.ipfs.tech/ipips/ipip-0383/).
45
46 Clear-text rules are simple: just put content paths to block, one per line.
47 Paths with unicode and whitespace need to be percent-encoded:
@@ -54,7 +54,7 @@ Paths with unicode and whitespace need to be percent-encoded:
54 Sensitive content paths can be double-hashed to block without revealing them.
55 Double-hashed list example: https://badbits.dwebops.pub/badbits.deny
56
57 -See [IPIP-383](https://github.com/ipfs/specs/pull/383) for detailed format specification and more examples.
57 +See [IPIP-383](https://specs.ipfs.tech/ipips/ipip-0383/) for detailed format specification and more examples.
58
59 ## How to suspend blocking without removing denylists
60
docs/experimental-features.md
+1 -1
@@ -599,7 +599,7 @@ ipfs config --json Experimental.GatewayOverLibp2p true
599 - [ ] Needs more people to use and report on how well it works
600 - [ ] Needs UX work for exposing non-recursive "HTTP transport" (NoFetch) over both libp2p and plain TCP (and sharing the configuration)
601 - [ ] Needs a mechanism for HTTP handler to signal supported features ([IPIP-425](https://github.com/ipfs/specs/pull/425))
602 -- [ ] Needs an option for Kubo to detect peers that have it enabled and prefer HTTP transport before falling back to bitswap (and use CAR if peer supports dag-scope=entity from [IPIP-402](https://github.com/ipfs/specs/pull/402))
602 +- [ ] Needs an option for Kubo to detect peers that have it enabled and prefer HTTP transport before falling back to bitswap (and use CAR if peer supports dag-scope=entity from [IPIP-402](https://specs.ipfs.tech/ipips/ipip-0402/))
603
604 ## Accelerated DHT Client
605
test/sharness/t0054-dag-car-import-export-data/README.md
+1 -1
@@ -28,5 +28,5 @@
28 - install `go-car` CLI from https://github.com/ipld/go-car
29
30 - partial-dag-scope-entity.car
31 - - unixfs directory entity exported from gateway via `?format=car&dag-scope=entity` ([IPIP-402](https://github.com/ipfs/specs/pull/402))
31 + - unixfs directory entity exported from gateway via `?format=car&dag-scope=entity` ([IPIP-402](https://specs.ipfs.tech/ipips/ipip-0402/))
32 - CAR roots includes directory CID, but only the root block is included in the CAR, making the DAG incomplete