ADR-017: contract versioning — core crate's semver is the contract version (OQ-10 resolved)

This commit is contained in:
glm-5.3-flash committed 2026-10-06 07:29:09 +00:00
1 parent 8c8fec5cb8
commit eba77909a7
9 files changed
+473 -51

No files matched your search

+10 -2
View File
@@ -81,7 +81,13 @@ crate. A consumer binary links at most one driver.
- A version-coordination duty: the core's trait surface is a contract
the engine crates must track. Version bumps in core must be adopted
by engines in lockstep when the contract changes (minor/major
discipline; no trait-default drift).
discipline; no trait-default drift). *(Discharged 2026-10-06: the
duty's concrete shape is the versioning discipline —
[ADR-017](017-contract-versioning.md), OQ-10's resolution: the
core crate's semver is the contract version, change classes +
lockstep duties pinned, the pairing tracked by manifest pin +
version-stamped contract suite + docs; released engines on a
breaking change keep their pinned majors — nothing forced.)*
- Slightly more crate plumbing; naming/publishing overhead.
- Consumers who want *both* engines in one binary (rare, unsupported-by
design) cannot get a both-features build today.
@@ -96,6 +102,8 @@ crate. A consumer binary links at most one driver.
link-collision constraint motivates this split.
- [ADR-004](004-postgres-driver.md) — the Postgres driver choice.
- OQ-10 (`docs/architecture/open-questions.md`) — trait-versioning
duties created here.
duties created here; resolved by
[ADR-017](017-contract-versioning.md); OQ-11 — the fork-follow-through
residue (per [ADR-013](013-fold-substrate-into-sqlite.md) §4).
[ADR-003]: 003-sqlite-driver.md
[ADR-004]: 004-postgres-driver.md