Bump github.com/ipld/go-ipld-prime from 0.16.0 to 0.19.0
Bumps github.com/ipld/go-ipld-prime from 0.16.0 to 0.19.0.
Release notes
Sourced from github.com/ipld/go-ipld-prime's releases.
v0.19.0
go-ipld-prime's release policy says that:
even numbers should be easy upgrades; odd numbers may change things
The only major, potentially disruptive change in this release is a bump to Go 1.18.
π Breaking Changes
Update go.mod to Go 1.18.
π¦ Highlights
- Codecs: Correct JSON codec Bytes handling. This change does not impact DAG-JSON, which is the generally recommended codec for JSON output as the JSON codec cannot properly handle Bytes or Links.
- Dependencies:
v0.18.0
go-ipld-prime's release policy says that:
even numbers should be easy upgrades; odd numbers may change things
So, as an even number, this v0.18.0 release should be a smooth ride for upgraders from v0.17.0. We have 3 major feature additions, all focused on Bindnode.
π¦ Highlights
- Bindnode: Custom Go type converters - Bindnode performs bidirectional mapping of Go types to the IPLD Data Model, and in doing so, it assumes a straightforward mapping of values to their encoded forms. But there are common cases where a Go type doesn't have a straightforward path to serialization, either because the encoded form needs a custom layout, or because bindnode doesn't have enough information to infer a serialization pattern. Custom Go type converters for bindnode allow a user to supply a pair of converter functions for a Go type that dictate how to map that type to an IPLD Data Model kind. See the bindnode documentation for more information.
- Bindnode: Type registry - Setting up Go type mappings with Bindnode involves some boilerplate. A basic type registry is now available that takes some of this boilerplate away; giving you a single place to register, and perform conversions to and from Go types, Data Model (
Node) forms or directly through serialization. See the bindnode/registry documentation for more information.- Bindnode: Full
uint64support - theuint64support introduced in [email protected] has been wired into Bindnode. The Data Model (Node) forms expose integers asint64values, which is lossy for unsigned 64-bit integers. Bindnode Go types usinguint64values are now lossless in round-trips through serialization to codecs that support the full range (DAG-CBOR most notably).You can see all of these new features in action using Filecoin Go types, allowing a mapping between Go types, Data Model (
Node) forms, and their DAG-CBOR serialized forms with data-transfer vouchers. These features also allow us to interact with the original Go types, without modification, includingbig.Intserialization toBytes, FilecoinSignatureserialization to a byte-prefix discriminatedBytesand more. Since the Go types are unchanged, they can also simultaneously support cbor-gen serialization, allowing an easier migration path.v0.17.0
go-ipld-prime's release policy says that:
even numbers should be easy upgrades; odd numbers may change things
In that spirit, this v0.17.0 release includes some potentially breaking changes. Although minor, they are marked below and they may lead to behavioral changes in your use of this library.
π Breaking Changes
- Codecs:
- DAG-CBOR, DAG-JSON: Error on
cid.Undeflinks in dag{json,cbor} encoding - previously, encoding Link nodes that were empty CIDs (uninitialized zero-value or explicitlycid.Undef) would have passed through the DAG-CBOR or DAG-JSON codecs, silently producing erroneous output that wouldn't successfully pass back through a decode. (Rod Vagg)- Bindnode:
- Panic early if API has been passed ptr-to-ptr - previous usage of bindnode using pointers-to-pointers may have deferred (or in some cases avoided) panics until deeper usage of the API, this change makes it earlier to make it clear that pointer-to-pointer is not appropriate usage. (Rod Vagg)
- Build:
- Drop Go 1.16.x testing & begin testing Go 1.18.x (Daniel MartΓ)
- Note also that in this release, the github.com/ipfs/go-cid dependency is upgraded from 0.0.4 to 0.2.0 which includes a breaking change with the removal of the
cid.Codecsandcid.CodecToStrmaps which may disruptive. See the [email protected] release page for details.
... (truncated)
Changelog
Sourced from github.com/ipld/go-ipld-prime's changelog.
v0.19.0
2022 October 13
go-ipld-prime's release policy says that:
even numbers should be easy upgrades; odd numbers may change things
The major change in this release is a bump to Go 1.18.
π Breaking Changes
Update go.mod to Go 1.18.
π¦ Highlights
- Codecs: Correct JSON codec Bytes handling. This change does not impact DAG-JSON, which is the generally recommended codec for JSON output as the JSON codec cannot properly handle Bytes or Links.
- Dependencies:
v0.18.0
2022 August 01
go-ipld-prime's release policy says that:
even numbers should be easy upgrades; odd numbers may change things
So, as an even number, this v0.18.0 release should be a smooth ride for upgraders from v0.17.0. We have 3 major feature additions, all focused on Bindnode.
π¦ Highlights
- Bindnode: Custom Go type converters - Bindnode performs bidirectional mapping of Go types to the IPLD Data Model, and in doing so, it assumes a straightforward mapping of values to their encoded forms. But there are common cases where a Go type doesn't have a straightforward path to serialization, either because the encoded form needs a custom layout, or because bindnode doesn't have enough information to infer a serialization pattern. Custom Go type converters for bindnode allow a user to supply a pair of converter functions for a Go type that dictate how to map that type to an IPLD Data Model kind. See the bindnode documentation for more information.
- Bindnode: Type registry - Setting up Go type mappings with Bindnode involves some boilerplate. A basic type registry is now available that takes some of this boilerplate away; giving you a single place to register, and perform conversions to and from Go types, Data Model (
Node) forms or directly through serialization. See the bindnode/registry documentation for more information.- Bindnode Full
uint64support - theuint64support introduced in [email protected] has been wired into Bindnode. The Data Model (Node) forms expose integers asint64values, which is lossy for unsigned 64-bit integers. Bindnode Go types usinguint64values are now lossless in round-trips through serialization to codecs that support the full range (DAG-CBOR most notably).You can see all of these new features in action using Filecoin Go types, allowing a mapping between Go types, Data Model (
Node) forms, and their DAG-CBOR serialized forms with data-transfer vouchers. These features also allow us to interact with the original Go types, without modification, includingbig.Intserialization toBytes, FilecoinSignatureserialization to a byte-prefix discriminatedBytesand more. Since the Go types are unchanged, they can also simultaneously support cbor-gen serialization, allowing an easier migration path.v0.17.0
2022 Jun 15
go-ipld-prime's release policy says that:
even numbers should be easy upgrades; odd numbers may change things
In that spirit, this v0.17.0 release includes some potentially breaking changes. Although minor, they are marked below and they may lead to behavioral changes in your use of this library.
... (truncated)
Commits
ac99fc3Prepare v0.19.0146d1c8fix: correct json codec links & bytes handling7548eb8build(deps): bump github.com/google/go-cmp from 0.5.8 to 0.5.9 (#468)4b84debbuild(deps): bump github.com/ipfs/go-cid from 0.3.0 to 0.3.2 (#466)a007538build(deps): bump github.com/ipfs/go-cid in /storage/bsadapter (#465)6c3aeeabuild(deps): bump github.com/ipfs/go-cid in /storage/bsrvadapter (#464)8fd3deatest(basicnode): increase test coverage for int and map types (#454)e57582fbuild(deps): bump github.com/ipfs/go-cid in /storage/bsrvadapter8572ef0build(deps): bump github.com/ipfs/go-cid in /storage/bsadaptere23acb3build(deps): bump github.com/ipfs/go-cid from 0.2.0 to 0.3.0- Additional commits viewable in compare view
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labelswill set the current labels as the default for future PRs for this repo and language@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the Security Alerts page.