This page covers moving existing DSDS documents to a newer spec version. Each breaking release gets a section here: what changed, what the migration script does for you, and what it leaves for a human.
The Stability page explains when breaking changes happen. Short version: they are batched, announced one minor ahead, and shipped with a migration script.
0.15.0 is a minor release. It renames nothing and adds three constraints, so most documents migrate with only a
- Design-spec map keys must be lowercase kebab-case. In a
design-specifications block, the keys ofproperties ,spacing.internal ,spacing.external , andtypography must match^[a-z][a-z0-9-]*$ . Rename camelCase keys —textColor becomestext-color . spacing.internal andspacing.external cannot be empty. Drop an empty map, or give it at least one entry.- A deprecated API property needs a notice. An
apiProperty withdeprecated: true must carry a non-emptydeprecationNotice saying what to use instead.
Then set
0.14.0 is a breaking release. It applies every recorded naming exception and removes both deprecated surfaces. Documents at 0.10 through 0.13 migrate automatically.
Run the link converter first if your documents still relate entities through
Both accept
| Before (≤ 0.13) | After (0.14.0) |
|---|---|
| Block kind | Block kind |
| Status object | Status object |
| Link | Removed. A link is |
| Chunk top-level | Removed. Guidance lives in the chunk's |
Nothing else changed shape. Documents that used none of these forms migrate with only a version bump.
- Links that use an identifier. A link that pointed at another entity by
identifier no longer validates. The migrator reports each one instead of guessing. Convert it to a typedrelationships edge (composes ,depends-on ,alternative-to , …) or rewrite it as a plain URL link. - Chunks that had both forms. When a chunk carried the shorthand and an equivalent block, the block took priority. The migrator merges in any shorthand items the block doesn't already have, and reports the counts. Skim the report to confirm nothing merged that you meant to drop.
Validate the migrated documents against the bundled schema for the version you migrated to — every release is served at its own versioned URL on this site. In this repository,
Earlier breaking windows have their own scripts: