Skip to content

Add ADR-0015: SSVC JSON schemas use SchemaVer for versioning#1121

Open
sei-renae wants to merge 6 commits intomainfrom
adr-0015-schemaver
Open

Add ADR-0015: SSVC JSON schemas use SchemaVer for versioning#1121
sei-renae wants to merge 6 commits intomainfrom
adr-0015-schemaver

Conversation

@sei-renae
Copy link
Copy Markdown
Contributor

This pull request documents a new architectural decision to adopt SchemaVer for versioning SSVC JSON schemas, and updates the ADR index accordingly. The main goal is to provide a versioning scheme tailored to the compatibility needs of JSON schema consumers, rather than relying solely on Semantic Versioning (SemVer), which is already used for other SSVC components.

Documentation of new schema versioning approach:

  • Added ADR 0015 (0015-ssvc-json-schemas-use-schemaver.md) describing the adoption of SchemaVer for SSVC JSON schemas, detailing the rationale, versioning rules, and implications for compatibility and process.
  • Updated the ADR index (index.md) to include the new decision record for SchemaVer usage.Resolves Create ADR for SSVC JSON schema versioning #601. Documents the decision to adopt SchemaVer (MODEL-REVISION-ADDITION) for SSVC JSON schema versioning, explaining why it fits schema evolution better than SemVer or CalVer, and defines the rules for incrementing each component.

Resolves #601. Documents the decision to adopt SchemaVer (MODEL-REVISION-ADDITION)
for SSVC JSON schema versioning, explaining why it fits schema evolution better
than SemVer or CalVer, and defines the rules for incrementing each component.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sei-renae sei-renae requested a review from ahouseholder as a code owner April 24, 2026 12:54
Copilot AI review requested due to automatic review settings April 24, 2026 12:54
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an Architectural Decision Record (ADR) documenting adoption of SchemaVer for SSVC JSON schema versioning, and updates the ADR index to reference it (resolves #601).

Changes:

  • Added ADR-0015 describing SchemaVer (MODEL-REVISION-ADDITION) for SSVC JSON schema evolution.
  • Updated docs/adr/index.md to include ADR-0015 in the Accepted Records list.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

File Description
docs/adr/index.md Adds ADR-0015 link to the ADR index.
docs/adr/0015-ssvc-json-schemas-use-schemaver.md New ADR defining SchemaVer rationale, increment rules, and process implications for SSVC JSON schemas.

Comment thread docs/adr/0015-ssvc-json-schemas-use-schemaver.md Outdated
Comment thread docs/adr/0015-ssvc-json-schemas-use-schemaver.md Outdated
Comment thread docs/adr/0015-ssvc-json-schemas-use-schemaver.md Outdated
Comment on lines +46 to +50
| Component | When to increment | Compatibility implication |
|------------|-------------------|--------------------------|
| `MODEL` | Schema change is incompatible with **any** historical data | Existing data **will not** validate |
| `REVISION` | Schema change may prevent interaction with **some** historical data | Existing data **may not** validate |
| `ADDITION` | Schema change is compatible with **all** historical data | Existing data **will** continue to validate |
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SchemaVer table uses leading double pipes (||) which will render as an empty first column (or break table formatting) in many Markdown renderers. Use standard table syntax with a single leading | per row so the table renders correctly in MkDocs.

Copilot uses AI. Check for mistakes.
Comment on lines +62 to +65
- A previously optional field becomes required (breaks data that omitted it)
- An `enum` gains values that affect round-trip processing for some consumers
- Constraints are tightened in a way that some existing data would fail (e.g., a minimum length
is added to a string field)
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the REVISION criteria, “An enum gains values …” does not make existing historical data fail validation, so it doesn’t match the earlier REVISION compatibility implication (“existing data may not validate”). Either move this to ADDITION (if focusing on validation compatibility), or adjust the compatibility definitions/wording to explicitly account for consumer/tooling compatibility rather than schema validation.

Copilot uses AI. Check for mistakes.
Renae Metcalf and others added 5 commits April 24, 2026 08:58
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create ADR for SSVC JSON schema versioning

3 participants