DSDS 0.15.2 is a pre-1.0 draft. This page is the contract behind that status. It covers:
- what can change, and how you'll be told
- what will never change
- the record of the breaking window we already ran
- the conditions for declaring 1.0
Read this page, and you can price the risk of adopting now.
Published schema URLs are immutable. Every released version is served under its own path (
| Change | Version bump | Your documents |
|---|---|---|
| Documentation-only edits | none | Unaffected |
| Additions and loosenings (new optional fields, new union members, relaxed constraints) | patch | Remain valid unchanged |
| Tightenings and behavior changes (new constraints, new required fields, moved fields) | minor | May need edits; a changelog entry lists every affected position |
| Renames and removals | major (post-1.0) / batched minor pre-1.0 | Migration script provided |
Pre-1.0, minors carry tightenings without a deprecation window — that is what pre-1.0 means here. Post-1.0, this table becomes the contract described below.
From 0.13.0 onward, a form scheduled for removal:
- is marked
deprecated: true in the schema, where JSON Schema supports it - is flagged by a lint rule (a warning, never blocking)
- is documented with its replacement, in the schema description
- keeps validating for at least one further minor release
Removals happen only in the release that executes the breaking backlog below. Each removal ships with a migration script (
Nothing is currently deprecated: the 0.14.0 window removed both previously deprecated surfaces (
The backlog below was announced in 0.13.0. We carried it out in full — all at once, as this contract promised — in the 0.14.0 breaking window, with a migration script (
| # | Change | Before | Since 0.14.0 |
|---|---|---|---|
| 1 | Block-kind casing | ||
| 2 | Procedural entry naming | ||
| 3 | Scale step naming | ||
| 4 | System info naming | ||
| 5 | Status prose property | ||
| 6 | Event payload naming | ||
| 7 | validated with DSDS-010 warning | removed; | |
| 8 | Chunk's top-level | validated, marked deprecated | removed; |
| 9 | Draft metadata fields | shapes frozen |
The backlog is now empty. No further breaking changes are planned before 1.0. A new entry here would restart the clock on criterion 1 below.
1.0 is declared when all of the following hold, and not before:
- The breaking backlog is executed — the 0.14.0 window has shipped with its migration scripts, and at least one subsequent minor has passed without new entries being added to the backlog.
- The draft fields have survived contact —
governance anddocOrigin have been exercised by real documentation for a full review cycle without shape changes. - A second independent consumer exists — at least one tool not maintained by the spec author reads or writes DSDS documents in earnest, so the spec's assumptions have been tested from outside.
- The conformance surface is complete — the Conformance page's classes, the normative-statements index, and the negative-fixture suite are published as the versioned conformance kit for independent validators.
After 1.0, the 1.x line is additive only: new optional fields, new union members, new block kinds. Nothing existing tightens, gets renamed, or disappears. Anything breaking waits for 2.0. It arrives deprecation-first — a lint warning for at least two minors before removal — and ships with a migration script. The immutability guarantee above still applies to every released version.