| 1 | # Kubo changelog v0.29 |
| 2 | |
| 3 | - [v0.29.0](#v0290) |
| 4 | |
| 5 | ## v0.29.0 |
| 6 | |
| 7 | - [Overview](#overview) |
| 8 | - [🔦 Highlights](#-highlights) |
| 9 | - [Add search functionality for pin names](#add-search-functionality-for-pin-names) |
| 10 | - [Customizing `ipfs add` defaults](#customizing-ipfs-add-defaults) |
| 11 | - [📝 Changelog](#-changelog) |
| 12 | - [👨👩👧👦 Contributors](#-contributors) |
| 13 | |
| 14 | ### Overview |
| 15 | |
| 16 | ### 🔦 Highlights |
| 17 | |
| 18 | #### Add search functionality for pin names |
| 19 | |
| 20 | It is now possible to search for pins by name via `ipfs pin ls --name "SomeName"`. |
| 21 | The search is case-sensitive and will return all pins that contain the specified substring in their name. |
| 22 | |
| 23 | > [!TIP] |
| 24 | > The `ipfs pin ls -n` is now a shorthand for `ipfs pin ls --name`, mirroring the behavior of `ipfs pin add`. |
| 25 | > See `ipfs pin ls --help` for more information. |
| 26 | |
| 27 | #### Customizing `ipfs add` defaults |
| 28 | |
| 29 | This release supports overriding global data ingestion defaults used by commands like `ipfs add` via user-defined [`Import.*` configuration options](../config.md#import). |
| 30 | The hash function, CID version, or UnixFS raw leaves and chunker behaviors can be set once, and used as the new implicit default for `ipfs add`. |
| 31 | |
| 32 | > [!TIP] |
| 33 | > As a convenience, two CID [profiles](../config.md#profile) are provided: `legacy-cid-v0` and `test-cid-v1`. |
| 34 | > A test profile that defaults to modern CIDv1 can be applied via `ipfs config profile apply test-cid-v1`. |
| 35 | > We encourage users to try it and report any issues in [kubo#4143](https://github.com/ipfs/kubo/issues/4143). |
| 36 | |
| 37 | ### 📝 Changelog |
| 38 | |
| 39 | <details><summary>Full Changelog</summary> |
| 40 | |
| 41 | - github.com/ipfs/kubo: |
| 42 | - fix(cli): unify --name param in ls and add (#10439) ([ipfs/kubo#10439](https://github.com/ipfs/kubo/pull/10439)) |
| 43 | - chore: set version to 0.29.0-rc2 |
| 44 | - fix(libp2p): streams config validation in resource manager (#10435) ([ipfs/kubo#10435](https://github.com/ipfs/kubo/pull/10435)) |
| 45 | - chore: update version |
| 46 | - chore: libp2p 0.34.1 (#10429) ([ipfs/kubo#10429](https://github.com/ipfs/kubo/pull/10429)) |
| 47 | - refactor: stop using github.com/pkg/errors (#10431) ([ipfs/kubo#10431](https://github.com/ipfs/kubo/pull/10431)) |
| 48 | - chore: fix --help text |
| 49 | - config: introduce Import section (#10421) ([ipfs/kubo#10421](https://github.com/ipfs/kubo/pull/10421)) |
| 50 | - feat: enables searching pins by name (#10412) ([ipfs/kubo#10412](https://github.com/ipfs/kubo/pull/10412)) |
| 51 | - fix(fuse): ipfs path parsing (#10243) ([ipfs/kubo#10243](https://github.com/ipfs/kubo/pull/10243)) |
| 52 | - core/node: fix divide by zero fatal crash for reprovide rate check (#10411) ([ipfs/kubo#10411](https://github.com/ipfs/kubo/pull/10411)) |
| 53 | - chore: bump to go-ipfs-cmds @ v0.11 |
| 54 | - chore: create next changelog |
| 55 | - Merge Release: v0.28.0 [skip changelog] ([ipfs/kubo#10402](https://github.com/ipfs/kubo/pull/10402)) |
| 56 | - docs: update release checklist (#10401) ([ipfs/kubo#10401](https://github.com/ipfs/kubo/pull/10401)) |
| 57 | - chore: update version |
| 58 | - github.com/ipfs/boxo (v0.19.0 -> v0.20.0): |
| 59 | - Release v0.20.0 ([ipfs/boxo#613](https://github.com/ipfs/boxo/pull/613)) |
| 60 | - github.com/ipfs/go-blockservice (v0.5.0 -> v0.5.2): |
| 61 | - docs: remove contribution section |
| 62 | - chore: bump version |
| 63 | - chore: deprecate types and readme |
| 64 | - chore: release v0.5.1 |
| 65 | - fix: remove busyloop in getBlocks by removing batching |
| 66 | - github.com/ipfs/go-ipfs-blockstore (v1.3.0 -> v1.3.1): |
| 67 | - docs: remove contribution section |
| 68 | - chore: bump version |
| 69 | - chore: deprecate types and readme |
| 70 | - github.com/ipfs/go-ipfs-cmds (v0.10.0 -> v0.11.0): |
| 71 | - chore: release v0.11.0 (#253) ([ipfs/go-ipfs-cmds#253](https://github.com/ipfs/go-ipfs-cmds/pull/253)) |
| 72 | - chore: update deps (#252) ([ipfs/go-ipfs-cmds#252](https://github.com/ipfs/go-ipfs-cmds/pull/252)) |
| 73 | - chore: release 0.10.2 (#251) ([ipfs/go-ipfs-cmds#251](https://github.com/ipfs/go-ipfs-cmds/pull/251)) |
| 74 | - fix(http): return error in case of panic (#250) ([ipfs/go-ipfs-cmds#250](https://github.com/ipfs/go-ipfs-cmds/pull/250)) |
| 75 | - chore: release v0.10.1 |
| 76 | - github.com/ipfs/go-ipfs-ds-help (v1.1.0 -> v1.1.1): |
| 77 | - docs: remove contribution section |
| 78 | - chore: bump version |
| 79 | - chore: deprecate types and readme |
| 80 | - github.com/ipfs/go-ipfs-exchange-interface (v0.2.0 -> v0.2.1): |
| 81 | - chore: bump version |
| 82 | - Deprecate types and readme (#29) ([ipfs/go-ipfs-exchange-interface#29](https://github.com/ipfs/go-ipfs-exchange-interface/pull/29)) |
| 83 | - docs: Add proper documentation to the interface. |
| 84 | - github.com/ipfs/go-verifcid (v0.0.2 -> v0.0.3): |
| 85 | - chore: bump version |
| 86 | - chore: deprecate types and readme |
| 87 | - Make poseidon hashes good hashes ([ipfs/go-verifcid#19](https://github.com/ipfs/go-verifcid/pull/19)) |
| 88 | - sync: update CI config files (#18) ([ipfs/go-verifcid#18](https://github.com/ipfs/go-verifcid/pull/18)) |
| 89 | - github.com/ipld/go-car (v0.5.0 -> v0.6.2): |
| 90 | - v0.6.2 ([ipld/go-car#464](https://github.com/ipld/go-car/pull/464)) |
| 91 | - fix: opt-in way to allow empty list of roots in CAR headers ([ipld/go-car#461](https://github.com/ipld/go-car/pull/461)) |
| 92 | - feat: add inverse and version to filter cmd ([ipld/go-car#457](https://github.com/ipld/go-car/pull/457)) |
| 93 | - v0.6.1 bump |
| 94 | - chore: update usage of merkledag by go-car (#437) ([ipld/go-car#437](https://github.com/ipld/go-car/pull/437)) |
| 95 | - feat(cmd/car): add '--no-wrap' option to 'create' command ([ipld/go-car#432](https://github.com/ipld/go-car/pull/432)) |
| 96 | - fix: remove github.com/ipfs/go-ipfs-blockstore dependency |
| 97 | - feat: expose index for StorageCar |
| 98 | - perf: reduce NewCarReader allocations |
| 99 | - fix(deps): update deps for cmd (use master go-car and go-car/v2 for now) |
| 100 | - fix: new error strings from go-cid |
| 101 | - fix: tests should match stderr for verbose output |
| 102 | - fix: reading from stdin should broadcast EOF to block loaders |
| 103 | - refactor insertion index to be publicly accessible ([ipld/go-car#408](https://github.com/ipld/go-car/pull/408)) |
| 104 | - chore: unmigrate from go-libipfs |
| 105 | - Create CODEOWNERS |
| 106 | - blockstore: give a direct access to the index for read operations |
| 107 | - blockstore: only close the file on error in OpenReadWrite, not OpenReadWriteFile |
| 108 | - fix: handle (and test) WholeCID vs not; fast Has() path for storage |
| 109 | - ReadWrite: faster Has() by using the in-memory index instead of reading on disk |
| 110 | - fix: let `extract` skip missing unixfs shard links |
| 111 | - fix: error when no files extracted |
| 112 | - fix: make -f optional, read from stdin if omitted |
| 113 | - fix: update cmd/car/README with latest description |
| 114 | - chore: add test cases for extract modes |
| 115 | - feat: extract accepts '-' as an output path for stdout |
| 116 | - feat: extract specific path, accept stdin as streaming input |
| 117 | - fix: if we don't read the full block data, don't error on !EOF |
| 118 | - blockstore: try to close during Finalize(), even in case of previous error |
| 119 | - ReadWrite: add an alternative FinalizeReadOnly+Close flow |
| 120 | - feat: add WithTrustedCar() reader option (#381) ([ipld/go-car#381](https://github.com/ipld/go-car/pull/381)) |
| 121 | - blockstore: fast path for AllKeysChan using the index |
| 122 | - fix: switch to crypto/rand.Read |
| 123 | - stop using the deprecated io/ioutil package |
| 124 | - fix(doc): fix storage package doc formatting |
| 125 | - fix: return errors for unsupported operations |
| 126 | - chore: move insertionindex into store pkg |
| 127 | - chore: add experimental note |
| 128 | - fix: minor lint & windows fd test problems |
| 129 | - feat: docs for StorageCar interfaces |
| 130 | - feat: ReadableWritable; dedupe shared code |
| 131 | - feat: add Writable functionality to StorageCar |
| 132 | - feat: StorageCar as a Readable storage, separate from blockstore |
| 133 | - feat(blockstore): implement a streaming read only storage |
| 134 | - feat(cmd): add index create subcommand to create an external carv2 index ([ipld/go-car#350](https://github.com/ipld/go-car/pull/350)) |
| 135 | - chore: bump version to 0.6.0 |
| 136 | - fix: use goreleaser instead |
| 137 | - Allow using WalkOption in WriteCar function ([ipld/go-car#357](https://github.com/ipld/go-car/pull/357)) |
| 138 | - fix: update go-block-format to the version that includes the stubs |
| 139 | - feat: upgrade from go-block-format to go-libipfs/blocks |
| 140 | - cleanup readme a bit to make the cli more discoverable (#353) ([ipld/go-car#353](https://github.com/ipld/go-car/pull/353)) |
| 141 | - Update install instructions in README.md |
| 142 | - Add a debugging form for car files. (#341) ([ipld/go-car#341](https://github.com/ipld/go-car/pull/341)) |
| 143 | - ([ipld/go-car#340](https://github.com/ipld/go-car/pull/340)) |
| 144 | - add a `SkipNext` method on block reader (#338) ([ipld/go-car#338](https://github.com/ipld/go-car/pull/338)) |
| 145 | - feat: Has() and Get() will respect StoreIdentityCIDs option |
| 146 | - github.com/libp2p/go-libp2p (v0.33.2 -> v0.34.1): |
| 147 | - release v0.34.1 (#2811) ([libp2p/go-libp2p#2811](https://github.com/libp2p/go-libp2p/pull/2811)) |
| 148 | - config: fix Insecure security constructor (#2810) ([libp2p/go-libp2p#2810](https://github.com/libp2p/go-libp2p/pull/2810)) |
| 149 | - rcmgr: Backwards compatibility if you wrap default impl (#2805) ([libp2p/go-libp2p#2805](https://github.com/libp2p/go-libp2p/pull/2805)) |
| 150 | - v0.34.0 (#2795) ([libp2p/go-libp2p#2795](https://github.com/libp2p/go-libp2p/pull/2795)) |
| 151 | - swarm: fix addr for TestBlackHoledAddrBlocked (#2803) ([libp2p/go-libp2p#2803](https://github.com/libp2p/go-libp2p/pull/2803)) |
| 152 | - Add backwards compatibility with old well-known resource (#2798) ([libp2p/go-libp2p#2798](https://github.com/libp2p/go-libp2p/pull/2798)) |
| 153 | - rcmgr: remove a connection only once from the limiter (#2800) ([libp2p/go-libp2p#2800](https://github.com/libp2p/go-libp2p/pull/2800)) |
| 154 | - Adhere to request.Context when roundtripping on a stream (#2796) ([libp2p/go-libp2p#2796](https://github.com/libp2p/go-libp2p/pull/2796)) |
| 155 | - fix: Set missing deadlines (#2794) ([libp2p/go-libp2p#2794](https://github.com/libp2p/go-libp2p/pull/2794)) |
| 156 | - rcmgr: Add conn_limiter to limit number of conns per ip cidr (#2788) ([libp2p/go-libp2p#2788](https://github.com/libp2p/go-libp2p/pull/2788)) |
| 157 | - identify: refactor observed address manager to do address mapping at thin waist(IP+TCP/UDP) layer (#2793) ([libp2p/go-libp2p#2793](https://github.com/libp2p/go-libp2p/pull/2793)) |
| 158 | - fix: DNS protocol address is not reserved (#2792) ([libp2p/go-libp2p#2792](https://github.com/libp2p/go-libp2p/pull/2792)) |
| 159 | - Update github.com/quic-go/quic-go dependency (#2780) ([libp2p/go-libp2p#2780](https://github.com/libp2p/go-libp2p/pull/2780)) |
| 160 | - webrtc: add webrtc addresses to host normalizer (#2784) ([libp2p/go-libp2p#2784](https://github.com/libp2p/go-libp2p/pull/2784)) |
| 161 | - Add a "Limited" network connectivity state (#2696) ([libp2p/go-libp2p#2696](https://github.com/libp2p/go-libp2p/pull/2696)) |
| 162 | - basichost: append certhash for webrtc addresses provided via address factory (#2774) ([libp2p/go-libp2p#2774](https://github.com/libp2p/go-libp2p/pull/2774)) |
| 163 | - Fix comment (#2775) ([libp2p/go-libp2p#2775](https://github.com/libp2p/go-libp2p/pull/2775)) |
| 164 | - Update: update incomplete readmes (#2767) ([libp2p/go-libp2p#2767](https://github.com/libp2p/go-libp2p/pull/2767)) |
| 165 | - libp2phttp: Return connection: close when doing http over streams (#2756) ([libp2p/go-libp2p#2756](https://github.com/libp2p/go-libp2p/pull/2756)) |
| 166 | - Identify: emit useful events after identification (#2759) ([libp2p/go-libp2p#2759](https://github.com/libp2p/go-libp2p/pull/2759)) |
| 167 | - Update chat with rendezvous example (#2769) ([libp2p/go-libp2p#2769](https://github.com/libp2p/go-libp2p/pull/2769)) |
| 168 | - Rename well-known resource (#2757) ([libp2p/go-libp2p#2757](https://github.com/libp2p/go-libp2p/pull/2757)) |
| 169 | - quic: make server cmd use RFC 9000 instead of draft-29 (#2753) ([libp2p/go-libp2p#2753](https://github.com/libp2p/go-libp2p/pull/2753)) |
| 170 | - autonat: Clean up after close (#2749) ([libp2p/go-libp2p#2749](https://github.com/libp2p/go-libp2p/pull/2749)) |
| 171 | - webrtc: run onDone callback immediately on close (#2729) ([libp2p/go-libp2p#2729](https://github.com/libp2p/go-libp2p/pull/2729)) |
| 172 | - fix: add NullResourceManager to webrtc, fixes panic (#2752) ([libp2p/go-libp2p#2752](https://github.com/libp2p/go-libp2p/pull/2752)) |
| 173 | - feat: add tls KeyLogWriter option (#2750) ([libp2p/go-libp2p#2750](https://github.com/libp2p/go-libp2p/pull/2750)) |
| 174 | - Use any port, not a specific one for examples (#2748) ([libp2p/go-libp2p#2748](https://github.com/libp2p/go-libp2p/pull/2748)) |
| 175 | - quicreuse: remove workaround for quic-go listener close deadlock (#2746) ([libp2p/go-libp2p#2746](https://github.com/libp2p/go-libp2p/pull/2746)) |
| 176 | - use Fx to start and stop the host, swarm, autorelay and quicreuse (#2118) ([libp2p/go-libp2p#2118](https://github.com/libp2p/go-libp2p/pull/2118)) |
| 177 | - webrtc: set sctp receive buffer size to 100kB (#2745) ([libp2p/go-libp2p#2745](https://github.com/libp2p/go-libp2p/pull/2745)) |
| 178 | - basichost: log more info when protocol selection fails (#2734) ([libp2p/go-libp2p#2734](https://github.com/libp2p/go-libp2p/pull/2734)) |
| 179 | - chore: bump quic-go (#2742) ([libp2p/go-libp2p#2742](https://github.com/libp2p/go-libp2p/pull/2742)) |
| 180 | - security: remove unnecessary noise code (#2738) ([libp2p/go-libp2p#2738](https://github.com/libp2p/go-libp2p/pull/2738)) |
| 181 | - webrtc: increase receive buffer size on listener (#2730) ([libp2p/go-libp2p#2730](https://github.com/libp2p/go-libp2p/pull/2730)) |
| 182 | - webrtc: fix bug with logger wrapper (#2727) ([libp2p/go-libp2p#2727](https://github.com/libp2p/go-libp2p/pull/2727)) |
| 183 | - dcutr: fix log format to actually print error (#2725) ([libp2p/go-libp2p#2725](https://github.com/libp2p/go-libp2p/pull/2725)) |
| 184 | - webrtc: use a common logger for all pion logging (#2718) ([libp2p/go-libp2p#2718](https://github.com/libp2p/go-libp2p/pull/2718)) |
| 185 | - chore: remove unreadable code, move a test function to test code, better locking in webrtc control reader |
| 186 | - ping: use context.Afterfunc to avoid a lingering goroutine (#2723) ([libp2p/go-libp2p#2723](https://github.com/libp2p/go-libp2p/pull/2723)) |
| 187 | - webrtc: close mux when closing listener (#2717) ([libp2p/go-libp2p#2717](https://github.com/libp2p/go-libp2p/pull/2717)) |
| 188 | - webrtc: setup datachannel handlers before connecting to a peer (#2716) ([libp2p/go-libp2p#2716](https://github.com/libp2p/go-libp2p/pull/2716)) |
| 189 | - github.com/libp2p/go-libp2p-pubsub (v0.10.0 -> v0.11.0): |
| 190 | - Fix: Own our CertifiedAddrBook (#555) ([libp2p/go-libp2p-pubsub#555](https://github.com/libp2p/go-libp2p-pubsub/pull/555)) |
| 191 | - chores: bump go-libp2p (#558) ([libp2p/go-libp2p-pubsub#558](https://github.com/libp2p/go-libp2p-pubsub/pull/558)) |
| 192 | - fix: Don't bother parsing an empty slice (#556) ([libp2p/go-libp2p-pubsub#556](https://github.com/libp2p/go-libp2p-pubsub/pull/556)) |
| 193 | - Replace fragmentRPC with appendOrMergeRPC (#557) ([libp2p/go-libp2p-pubsub#557](https://github.com/libp2p/go-libp2p-pubsub/pull/557)) |
| 194 | - github.com/multiformats/go-multiaddr (v0.12.3 -> v0.12.4): |
| 195 | - Release v0.12.4 ([multiformats/go-multiaddr#245](https://github.com/multiformats/go-multiaddr/pull/245)) |
| 196 | - net: restrict unicast ip6 public address space (#235) ([multiformats/go-multiaddr#235](https://github.com/multiformats/go-multiaddr/pull/235)) |
| 197 | - github.com/whyrusleeping/cbor-gen (v0.1.0 -> v0.1.1): |
| 198 | - fix: reduce memory held by deferred objects (#96) ([whyrusleeping/cbor-gen#96](https://github.com/whyrusleeping/cbor-gen/pull/96)) |
| 199 | |
| 200 | </details> |
| 201 | |
| 202 | ### 👨👩👧👦 Contributors |
| 203 | |
| 204 | | Contributor | Commits | Lines ± | Files Changed | |
| 205 | |-------------|---------|---------|---------------| |
| 206 | | Henrique Dias | 33 | +4994/-579 | 115 | |
| 207 | | Rod Vagg | 29 | +3781/-1367 | 90 | |
| 208 | | sukun | 12 | +2026/-1215 | 39 | |
| 209 | | Marco Munizaga | 18 | +1482/-382 | 47 | |
| 210 | | Will | 5 | +769/-213 | 17 | |
| 211 | | Steven Allen | 5 | +540/-115 | 24 | |
| 212 | | Sukun | 4 | +274/-194 | 11 | |
| 213 | | Michael Muré | 7 | +372/-55 | 16 | |
| 214 | | Marten Seemann | 1 | +243/-141 | 10 | |
| 215 | | Marcin Rataj | 7 | +244/-134 | 13 | |
| 216 | | hannahhoward | 1 | +277/-0 | 2 | |
| 217 | | Will Scott | 5 | +54/-38 | 9 | |
| 218 | | Hector Sanjuan | 3 | +68/-20 | 5 | |
| 219 | | Jorropo | 5 | +34/-47 | 15 | |
| 220 | | Andrew Gillis | 2 | +67/-7 | 3 | |
| 221 | | IGP | 1 | +59/-8 | 5 | |
| 222 | | Adin Schmahmann | 2 | +50/-0 | 3 | |
| 223 | | Laurent Senta | 1 | +40/-4 | 2 | |
| 224 | | Brad Fitzpatrick | 1 | +42/-2 | 2 | |
| 225 | | Fabio Bozzo | 1 | +36/-1 | 3 | |
| 226 | | Yolan Romailler | 1 | +15/-19 | 4 | |
| 227 | | Hlib Kanunnikov | 2 | +14/-14 | 6 | |
| 228 | | Andreas Penzkofer | 1 | +22/-2 | 3 | |
| 229 | | Matthias Fasching | 1 | +8/-10 | 1 | |
| 230 | | gopherfarm | 2 | +16/-1 | 2 | |
| 231 | | Dreamacro | 1 | +1/-10 | 1 | |
| 232 | | web3-bot | 2 | +7/-3 | 4 | |
| 233 | | Rafał Leszko | 1 | +4/-4 | 1 | |
| 234 | | Oleg Kovalov | 1 | +4/-4 | 3 | |
| 235 | | dbeal | 1 | +5/-1 | 1 | |
| 236 | | Antonio Navarro Perez | 1 | +4/-1 | 1 | |
| 237 | | dozyio | 1 | +3/-0 | 1 | |
| 238 | | zhiqiangxu | 1 | +1/-1 | 1 | |
| 239 | | the harder the luckier | 1 | +1/-1 | 1 | |
| 240 | | Lukáš Lukáč | 1 | +1/-1 | 1 | |
| 241 | | Steve Loeppky | 1 | +1/-0 | 1 | |