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.
-
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 (to decide)
1. Spec versioning scheme
1.0.0-draft) inspec/index.mdonce it exists?2. Change classification
What changes are minor (backward compatible) vs major (breaking)?
3. Compatibility contract for
foundationVersionFrom #715, manifests pin a foundation version. What does the pin guarantee?
3.xaccept all data valid under3.0?3.2are a strict superset of3.0for the same token shape?4. Schema
$id/ URI strategyTwo common patterns (both valid starting points for discussion):
…/schemas/v1/token.schema.json— explicit in the URL; major bumps may introduce new paths.$idURLs; carry spec version in schema metadata or a wrapper document.Phase 0 implementation work should pick one early (see #720).
5. Rule catalog evolution
For
rules/rules.yaml(SPEC-001, …):introduced_in(spec version) per rule — required from day one?6. Coexistence during migration
setsvs cascade tokens — how long both are accepted?7. SDK behavior across spec versions
--spec-versionfor CI reproducibility?8. Cross-repo upgrade timeline
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