fix: restore required semantics for a bare Link[T] - #170
simontaurus wants to merge 1 commit into
Conversation
Reverts the optionality change shipped in 2.0.0. #159 records a preliminary decision for option 2, then a counter-proposal keeping the bare form required and raising the unresolved chain-resolution question. The design is not settled, so the library should not have adopted one side of it. The emitter conformance work from the same pull request stays.
Release previewNo version bump from the current commits (stays at Changelog preview (truncated)Preview via python-semantic-release and conventional commits. |
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Not reverting. Reverting to required now and later adopting a third shape would be two breaking changes where one has already been paid for. #159 stays open: the counter-proposal and the chain-resolution question it raises are still unanswered, and whatever settles them can land as one change from here. |
Reverts the
Link[T]optionality change that shipped in 2.0.0. Everything else from #162 stays: the emitter conformance work is unaffected, and emitted schemas still validate against OO-LD 1.0.0-rc.5.#162 carried
feat!: a bare Link[T] annotation is optionaland closed #159 automatically. #159 is not settled:Link[T]stays required withOptional[Link["Person"]] = Nonefor the optional case, and raises the open question of what happens when one link ina.father.father.fathercannot be resolvedA preliminary decision plus an unanswered counter-proposal is not a decision. The library adopted one side of it.
Reopening #159. The chain-resolution question Matthias raised is the part that decides this: if a bare
Link[T]is optional, guard-free chaining stops being guaranteed, which is the property the annotation exists to provide.Surgical: only
1eb6a57is reverted, leaving the four emitter fixes and the tests from the same branch.751 passed, 10 skipped, 1 xfailed.