# CID 1.0 and beyond ## Agenda - How do we make decisions today ? - Removing node Buffer dependency - Renaming `.buffer` property to `.bytes` - Do we even need `.buffer` / `.bytes` if `CID` is `ArrayBufferView` ? - Deprecating properties requing codec tabes - [`.codec`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L123-L125) - [`.mulibaseName`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L127-L129) - [`.prefix`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L131-L133) - [`.toBaseEncodedString`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L153-L155) - [Creating `code` in place of `codec`](https://github.com/multiformats/js-multiformats/blob/3e7fbad65eafb7774c5b1511466fd5b1e720d202/cid.js#L74) - Replacing `.isCID` pattern with `.asCID` - [Discussion thread](https://github.com/multiformats/js-cid/issues/111) - [Changes landed is js-multiformats](https://github.com/multiformats/js-multiformats/pull/23) - `CID` as `ArrayBufferView` - [Proposed changes](https://github.com/multiformats/js-multiformats/pull/29) - [`/` property for circular reference](https://github.com/multiformats/js-multiformats/issues/27) - [Reducing CID constructor overload](https://github.com/multiformats/js-cid/issues/83#issuecomment-668748578) ## Notes - Deprecation - In js-multiformats we print warning when using `CID.isCID(x)` that will start throwing in next major release. Seems like an overal pattern worth adopting for easing transitions. - From @mikeal in slack: > we should only ever print the warning once - Maybe not throw until we switch to js-mulitformats - The reason we might want to have warning even if we never change js-cids is because ipfs.* will return CID instances so it's not up to them to switch. - Can we provide an alternative to string table. - Instead point to the migration guide. - `toBaseEncodedString` - print warning. - `toString` - print warning when encoding would be differnt. - `prefix` - warn then remove. - TODO: open issue in https://github.com/ipfs/js-ipfs-bitswap(?) - warn on construction. - Add `asCID` and migrate, but keep the `isCID`. - In second phase print warning - Check our assumbtions `.buffer`. - Throw if offset is not 0