You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Changes on master branch but not yet Released](#unreleased-on-master)
15
14
-[Released Changes Log](#released-changes)
16
15
17
16
@@ -20,34 +19,67 @@ Planned/Upcoming Changes
20
19
21
20
Here are some outlines of changes we intend to make that affect the public API:
22
21
23
-
- ... the critical list is relatively empty, for now :)
24
-
- There have been some recurring wishes to do something about the Selector package layout. There's no intended or prioritized date for this. See https://github.com/ipld/go-ipld-prime/issues/236 for more.
25
-
- There may be some upcoming changes to exactly how "not found" values are handled in order to clarify and standardize the subject. There's no finalized date for this. See https://github.com/ipld/go-ipld-prime/issues/360 for more.
26
-
27
-
This is not an exhaustive list of planned changes, and does not include any internal changes, new features, performance improvements, and so forth.
28
-
It's purely a list of things you might want to know about as a downstream consumer planning your update cycles.
29
-
30
-
We will make these changes "soon" (for some definition of "soon").
31
-
They are currently not written on the master branch.
32
-
The definition of "soon" may vary, in service of a goal to sequence any public API changes in a way that's smooth to migrate over, and make those changes appear at an overall bearable chronological frequency.
33
-
Tagged releases will be made when any of these changes land, so you can upgrade intentionally.
34
-
35
-
36
-
Unreleased on master
37
-
--------------------
38
-
39
-
Changes here are on the master branch, but not in any tagged release yet.
40
-
When a release tag is made, this block of bullet points will just slide down to the [Released Changes](#released-changes) section.
41
-
42
-
-_nothing yet :)_
43
-
44
-
It's entirely possible there are more changes than are noted here -- consider checking the git commit log as the ultimate source of truth.
45
-
46
-
22
+
-**Bindnode improvements**: Candidates for merge and release include:
23
+
- Custom Go type to IPLD kind conversion `Option`s: https://github.com/ipld/go-ipld-prime/pull/414
24
+
- Type registry for easier local maintenance of type to `Type` & `TypedPrototype` mappings and utilities for dealing with them: https://github.com/ipld/go-ipld-prime/pull/437
25
+
-**Selectors**: There have been some recurring wishes to do something about the Selector package layout. There's no intended or prioritized date for this. See https://github.com/ipld/go-ipld-prime/issues/236 for more.
26
+
-**Absent / "Not found" values**: There may be some upcoming changes to exactly how "not found" values are handled in order to clarify and standardize the subject. There's no finalized date for this. See https://github.com/ipld/go-ipld-prime/issues/360 for more.
47
27
48
28
Released Changes
49
29
----------------
50
30
31
+
### v0.17.0
32
+
33
+
_2022 Jun 15_
34
+
35
+
go-ipld-prime's release policy says that:
36
+
37
+
> even numbers should be easy upgrades; odd numbers may change things
38
+
39
+
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.
40
+
41
+
#### 🛠 Breaking Changes
42
+
43
+
***Codecs**:
44
+
* DAG-CBOR, DAG-JSON: [Error on `cid.Undef` links in dag{json,cbor} encoding](https://github.com/ipld/go-ipld-prime/pull/433) - previously, encoding Link nodes that were empty CIDs (uninitialized zero-value or explicitly `cid.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)
45
+
***Bindnode**:
46
+
*[Panic early if API has been passed ptr-to-ptr](https://github.com/ipld/go-ipld-prime/pull/427) - 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)
47
+
***Build**:
48
+
*[Drop Go 1.16.x testing & begin testing Go 1.18.x](https://github.com/ipld/go-ipld-prime/pull/394) (Daniel Martí)
49
+
* Note also that in this release, the [github.com/ipfs/**go-cid**](https://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.Codecs` and `cid.CodecToStr` maps which may disruptive. See [the go-cid@0.2.0 release page for details](https://github.com/ipfs/go-cid/releases/tag/v0.2.0).
50
+
51
+
#### 🔦 Highlights
52
+
53
+
***Data Model**:
54
+
*[Introduce `UIntNode` interface, used within DAG-CBOR codec to quietly support full uint64 range](https://github.com/ipld/go-ipld-prime/pull/413) (Rod Vagg)
55
+
***Bindnode**:
56
+
* Fuzzing and hardening for production use (Daniel Martí)
57
+
* Refuse to decode empty union values (Daniel Martí)
58
+
*[Allow nilable types for IPLD `optional`/`nullable`](https://github.com/ipld/go-ipld-prime/pull/401) (Daniel Martí)
59
+
*[More helpful error message for common enum value footgun](https://github.com/ipld/go-ipld-prime/pull/430) (Rod Vagg)
60
+
*[Infer links and `Any` from Go types](https://github.com/ipld/go-ipld-prime/pull/432) (Rod Vagg)
61
+
***Schemas**:
62
+
* DMT: Proper checking for unknown union members (Daniel Martí)
63
+
* DMT: Enum representations must be valid members (Daniel Martí)
64
+
* DMT: Reject duplicate or missing union representation members (Daniel Martí)
65
+
* DSL: [Support `stringjoin` struct representation and `stringprefix` union representation](https://github.com/ipld/go-ipld-prime/pull/397) (Eric Evenchick)
*[Add initial version of IPLD Patch feature](https://github.com/ipld/go-ipld-prime/pull/350) (Eric Myhre) *(helped across the line by mauve and Rod Vagg)*
*[Make staticcheck and govet happy across codebase](https://github.com/ipld/go-ipld-prime/pull/406) (Rod Vagg)
78
+
* Enable full [unified-ci](https://github.com/protocol/.github) GitHub Actions suite, including auto-updating (Rod Vagg)
79
+
*[Enable dependabot, with monthly checks](https://github.com/ipld/go-ipld-prime/pull/417) (and update all dependencies) (Rod Vagg)
80
+
81
+
Special thanks to **Daniel Martí** for many bindnode improvements and hardening, fuzzing across the library and improvements to the Schema DMT and DSL.
0 commit comments