You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Project title
JSON Schema Compatibility Checker — Detect Breaking Changes Between Schema Versions
Brief Description
JSON Schema is great at validating data, but it has no way to answer a critical question: "Will this schema change break existing data?"
When teams evolve their schemas in production — adding a required field, tightening a constraint, or removing an enum value — they often discover problems only after deployment. Existing data that was valid suddenly fails validation. APIs break. Incidents happen.
Other schema ecosystems solved this years ago:
Protobuf has buf breaking with 53 compatibility rules
Avro has Schema Registry with built-in backward/forward compatibility checking
JSON Schema has no official tool for this. The closest alternatives (getsentry/json-schema-diff, json-schema-diff on npm) are self-described as "work-in-progress" with incomplete keyword coverage.
This project would create a focused compatibility checker — a CLI tool and library that performs a semantic comparison of two schema versions and reports exactly what changed and whether it's safe and whether it breaks backward or forward compatibility.
Relationship to #969:
This proposal complements @jagpreetrahi's SchemaShift (#969). While #969 focuses on generating migration code, this project focuses purely on detection. As @jviotti noted in #969, combining both detection and migration "might be too much" for a single project. A focused detection tool can serve as the foundation that migration tools build upon.
This Project focuses on detection (identifying the break). By separating concerns, we ensure the detection engine is lightweight, reliable, and can be used by other tools (including SchemaShift) as a dependency.
Expected Outcomes
A TypeScript/JavaScript library that compares two JSON Schema versions and returns a structured compatibility report (breaking changes, warnings, safe changes)
A CLI tool with human-readable output showing exactly what changed, where, and why it matters
20+ semantic compatibility rules mapped from industry standards (buf breaking, Confluent):
The core of the work of the compatibility checker has been largely done, so the vast majority of the work will be on the CLI experience around it. So the main things I want to see are:
You have the ability to write idiomatic modern C++ (C++20 in this case)
You know at least a bit about the CMake build system, which we use for both the JSON Schema CLI and t…
Project title
JSON Schema Compatibility Checker — Detect Breaking Changes Between Schema Versions
Brief Description
JSON Schema is great at validating data, but it has no way to answer a critical question: "Will this schema change break existing data?"
When teams evolve their schemas in production — adding a required field, tightening a constraint, or removing an enum value — they often discover problems only after deployment. Existing data that was valid suddenly fails validation. APIs break. Incidents happen.
Other schema ecosystems solved this years ago:
buf breakingwith 53 compatibility rulesJSON Schema has no official tool for this. The closest alternatives (getsentry/json-schema-diff, json-schema-diff on npm) are self-described as "work-in-progress" with incomplete keyword coverage.
This project would create a focused compatibility checker — a CLI tool and library that performs a semantic comparison of two schema versions and reports exactly what changed and whether it's safe and whether it breaks backward or forward compatibility.
Output formats: Human-readable (CLI), machine-readable JSON (API)
Relationship to #969:
This proposal complements @jagpreetrahi's SchemaShift (#969). While #969 focuses on generating migration code, this project focuses purely on detection. As @jviotti noted in #969, combining both detection and migration "might be too much" for a single project. A focused detection tool can serve as the foundation that migration tools build upon.
In short:
Expected Outcomes
A TypeScript/JavaScript library that compares two JSON Schema versions and returns a structured compatibility report (breaking changes, warnings, safe changes)
A CLI tool with human-readable output showing exactly what changed, where, and why it matters
20+ semantic compatibility rules mapped from industry standards (
buf breaking,Confluent):minLength,maxLength,minimum,maximum,pattern)allOf,anyOf,oneOf)$refresolution and circular reference handlingDocumentation with compatibility matrix
npm package published to @json-schema-org scope
Stretch Goals (if time permits)
Skills Required
Mentors
And Open to additional TSC members or experienced contributors.
Expected Difficulty
Medium. I think as of.
Expected Time Commitment
90 hours (Small project)
Why This Matters
Real production need — Teams choose Protobuf over JSON Schema partly because of missing compatibility tooling
Existing tools are incomplete — getsentry/json-schema-diff says "use as best-effort only"
Addresses TSC-identified gap: As noted in GSOC-26 : Automated JSON Schema Evolution and Data Migration CLI #969 discussion, a focused detection tool is the missing foundation for schema evolution workflows
Benefits the whole ecosystem — Every validator user, every CI pipeline, every team maintaining schemas
References
Qualification Task
The main goal of this project is to take the version compatibility C++ project that @thclark will open-source into a full fledged CLI, either directly on https://github.com/sourcemeta/jsonschema or as a separate CLI project that proofs the concept to eventually be released on https://github.com/sourcemeta/jsonschema.
The core of the work of the compatibility checker has been largely done, so the vast majority of the work will be on the CLI experience around it. So the main things I want to see are: