ADR-017: contract versioning — core crate's semver is the contract version (OQ-10 resolved)
This commit is contained in:
1 parent
8c8fec5cb8
commit
eba77909a7
9 files changed
+473
-51
No files matched your search
@@ -18,9 +18,13 @@ taxonomy, config split — amended in place, pre-implementation, by
|
||||
joins the `TxHandle` trait, and by
|
||||
[ADR-015](decisions/015-streams-depth.md): streams depth — key
|
||||
semantics, `StreamEvent` shape, the ordering row, `trim_to`,
|
||||
and `publish_with_key_tx`); ADR-009/ADR-010 add the first *post-v1
|
||||
contract extensions* (scheduler collapse surface, `QueueOpts` depth —
|
||||
versioning discipline for such extensions is OQ-10's);
|
||||
and `publish_with_key_tx`); ADR-009/ADR-010 add the first extensions
|
||||
beyond ADR-008's original v1 partition (scheduler collapse surface,
|
||||
`QueueOpts` depth — factually pre-release additions per ADR-017's
|
||||
class 1, shipped inside the initial contract v1 text; versioning
|
||||
discipline for the surface's changes is
|
||||
[ADR-017](decisions/017-contract-versioning.md)'s, resolved: the
|
||||
core crate's semver is the contract version);
|
||||
[ADR-016](decisions/016-deployment-honesty.md) decides the parked
|
||||
capability-surface question: **none, by default ever** — engine
|
||||
differences surface at compile time (engine-crate identity) and in
|
||||
@@ -509,13 +513,14 @@ before the engine specs are called `stable`:
|
||||
| [006](decisions/006-wake-and-delivery-contract.md) | Wake contract | opaque wake + re-read; notify-vs-streams guarantee split |
|
||||
| [007](decisions/007-transactional-seam.md) | Tx seam | caller-held handle, `*_tx` methods, native commit-atomicity |
|
||||
| [008](decisions/008-contract-v1-pinning.md) | Contract v1 pinning | surface partition, `TxHandle` trait shape, `Wake` type, reserved strings, error taxonomy, config split, locks guarantee row |
|
||||
| [009](decisions/009-scheduler-collapse.md) | Scheduler collapse (post-v1 extension) | queues + `schedule()`/`run_schedules`, `@every`-only v1, boundary guarantee row |
|
||||
| [010](decisions/010-queue-semantics-depth.md) | Queue depth (post-v1 extension) | visibility/renewal, opts stamping, backoff curve, dead-letter, sweep, layout |
|
||||
| [009](decisions/009-scheduler-collapse.md) | Scheduler collapse (pre-release extension) | queues + `schedule()`/`run_schedules`, `@every`-only v1, boundary guarantee row |
|
||||
| [010](decisions/010-queue-semantics-depth.md) | Queue depth (pre-release extension) | visibility/renewal, opts stamping, backoff curve, dead-letter, sweep, layout |
|
||||
| [011](decisions/011-sqlite-substrate-fork.md) | Substrate fork | SQLite substrate owned (`__alkstore_*` naming); queue ops re-derived on contract v1 |
|
||||
| [012](decisions/012-forked-substrate-design.md) | Fork design | contract-blind substrate boundary; engine-side formula arithmetic pinned equivalent by the contract suite |
|
||||
| [014](decisions/014-outbox-tx-enqueue.md) | Outbox tx enqueue (amends 008) | `outbox_enqueue_tx` on `TxHandle`; outbox-name validation; derived backing queue reached only through the outbox surface |
|
||||
| [015](decisions/015-streams-depth.md) | Streams depth (amends 006/008) | key = carried metadata, global-FIFO ordering row, `StreamEvent` shape, `publish_with_key_tx`, `trim_to` |
|
||||
| [016](decisions/016-deployment-honesty.md) | Deployment honesty (decides 008's parked question) | no runtime capability surface — compile-time engine identity + documented matrix; `PayloadTooLarge` occurrence asymmetry pinned |
|
||||
| [017](decisions/017-contract-versioning.md) | Contract versioning (governs this surface's changes) | core crate's semver *is* the contract version; four change classes; amend-in-place ends at first release; pairing = manifest pin + version-stamped contract suite + docs |
|
||||
|
||||
## Open Questions
|
||||
|
||||
@@ -523,14 +528,19 @@ Open questions are tracked in
|
||||
[open-questions.md](open-questions.md). Key
|
||||
questions affecting this document:
|
||||
|
||||
- **OQ-10**: contract versioning discipline across engine crates
|
||||
([open](open-questions.md))
|
||||
- **OQ-10**: contract versioning discipline across engine crates —
|
||||
**resolved** ([ADR-017](decisions/017-contract-versioning.md)):
|
||||
the core crate's semver is the contract version; change classes
|
||||
pinned; the verification backlog below matures into the
|
||||
version-stamped contract suite (the pairing instrument).
|
||||
|
||||
Resolved on this document's surface: **OQ-09** (scheduler collapse —
|
||||
[ADR-009](decisions/009-scheduler-collapse.md)), **OQ-05** (queue
|
||||
semantics depth — [ADR-010](decisions/010-queue-semantics-depth.md)),
|
||||
**OQ-13** (transactional outbox enqueue shape —
|
||||
[ADR-014](decisions/014-outbox-tx-enqueue.md)), **OQ-12** (streams
|
||||
depth — [ADR-015](decisions/015-streams-depth.md)), and **OQ-08**
|
||||
depth — [ADR-015](decisions/015-streams-depth.md)), **OQ-08**
|
||||
(capability-surface shape — none, by default ever;
|
||||
[ADR-016](decisions/016-deployment-honesty.md)), 2026-10-05/06.
|
||||
[ADR-016](decisions/016-deployment-honesty.md)), and **OQ-10**
|
||||
(the versioning discipline this document's surface is governed by —
|
||||
[ADR-017](decisions/017-contract-versioning.md)), 2026-10-05/06.
|
||||
Reference in new issue
Block a user