Replies: 3 comments
-
|
Tracking
Phase 0 issue updates (structural hooks aligned with this RFC): |
Beta Was this translation helpful? Give feedback.
-
|
Decision / next sequencing (maintainer note, Mar 2026) Phase 1 design-data tooling is now on Chosen order for upcoming work
This matches the project board item Define spec evolution policy and migration contract (still Todo) and unblocks Phase 2 without rework. |
Beta Was this translation helpful? Give feedback.
-
Resolution: Versioning and Evolution PolicyPR #793 resolves the open questions in this RFC. The normative outcome is Decisions on open questions1. Spec versioning scheme — SemVer. Currently 2. Change classification
3. 4. Schema 5. Rule catalog evolution — 6. Coexistence during migration — Cascade format is the authoritative source. Legacy output ( 7. SDK behavior across spec versions — Validate against the current spec version. 8. Cross-repo upgrade timeline — Deferred. No platform consumers are pinning foundation versions yet. Automated upgrade PRs will be designed when the first platform repo adopts the SDK. Migration windowsDeprecated tokens must remain for at least 2 minor versions before removal. Major version releases may clean up all accumulated deprecations. If Token lifecycle fieldsSee the resolution comment on #623 for the full lifecycle model ( |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
This RFC proposes a dedicated track for how the Design Data Specification, JSON Schemas, rule catalog, and conformance fixtures evolve in a distributed model (foundation repo + platform repos). Structural validation (JSON Schema) cannot express graph rules; we also need a clear compatibility contract so pinned
foundationVersionvalues, SDK behavior, and upgrade paths are predictable.This discussion complements (does not replace) token-level lifecycle in #623 and distributed manifests in #715.
Relationship to other work
deprecated,renamed, …)Open questions
Resolved
1.0.0-draft. Seespec/evolution.md.spec/evolution.md. New optional fields and new advisory rules are minor; tightening required-ness or removing fields is major.spec/evolution.md: schemas atX.Yare a strict superset ofX.0for the same token shape; validators built forX.xaccept all data valid underX.0.setsand cascade tokens coexist; resolution rules inspec/cascade.mdand a legacy mapping table inspec/evolution.md.spec/evolution.md§"Migration windows"); major-version escape hatch permitted. Full token-level lifecycle in #623.introduced_in— every rule inrules/rules.yamlcarriesintroduced_in(e.g."1.0.0-draft"); SPEC-001 through SPEC-014 implemented.Still open
$id/ URI strategy — no formal policy yet; v0 URIs in use de facto. Tracked via #720.--spec-versionflag, validate-against-pinned vs validate-with-latest) not yet implemented.Phase alignment (non-binding)
$idstrategy,introduced_inon rules (see linked issues).Inspiration (informative)
Other ecosystems handle “schema as contract” differently (e.g. strict immutability vs semver). This RFC should pick an approach that fits Spectrum’s backward-compat and multi-repo constraints—not adopt another stack wholesale.
Please comment with preferences, constraints from Adobe org process, and links to prior art.
Beta Was this translation helpful? Give feedback.
All reactions