Skip to content

Record the small open questions; propose tagged unions - #64

Merged
Kinflou merged 1 commit into
mainfrom
docs/small-questions
Oct 20, 2026
Merged

Kinflou merged 1 commit into
mainfrom
docs/small-questions

Conversation

@Kinflou

@Kinflou Kinflou commented Oct 20, 2026

Copy link
Copy Markdown
Member

Records the decisions from 2026-10-20's pass through the smaller open questions.

schema-compatibility.md

  • A constant's value change counts by what it reaches (validator/bound → validator rules; field default → patch; otherwise minor).
  • Narrowed validation is reported as "validation tightened".
  • Unknown enum variants: strict by default, @open opt-in (Unknown(raw) case), no silent fallback; toggling @open is major.
  • Forbidding a break: versioning.allow plus build --deny (cli#80). Allowing one needs nothing new (@unverified).
  • Builds and releases are separate: builds get pre-release versions; comline release takes the highest computed bump since the last release plus any raise/lower with its reason.
  • msgpack@2's keys = name | id parameter.

extensibility.md

  • Test vectors and trust: official / third-party with vectors / without (gives up encoding conformance).
  • An encoding's package can suggest a default implementation per language; shipping implementations waits for dependency publishing.
  • Package-level @unverified: on the encoding's declaration, lowering at release, consumer accept_unverified written by tooling, its own diagnostics family; "not accepted" can't be lowered.

packet-dispatch.md

  • Framing instance names can't contain @; a dependency's instances are used by qualified name.
  • @consumer is only the counterpart of @provider.

New: proposals/tagged-unions/ (index plus A union declaration, B enum variants with data, C both), under discussion and leaning towards A, so more pros and cons can be gathered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant