Skip to content

GSoC 2026: JSON Schema Compatibility Checker - Detect Breaking Changes Between Schema Versions #984

@vtushar06

Description

@vtushar06

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:

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.

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):

    • Type changes (widening/narrowing)
    • Required field additions/removals
    • Enum value additions/removals
    • Constraint changes (minLength, maxLength, minimum, maximum, pattern)
    • Composition keyword changes (allOf, anyOf, oneOf)
    • $ref resolution and circular reference handling
  • Documentation with compatibility matrix

  • npm package published to @json-schema-org scope

Stretch Goals (if time permits)

  • GitHub Action for automated PR compatibility checks
  • Extended draft support (2019-09, Draft-06, Draft-04)
  • Performance benchmarks and optimization for large schema sets

Skills Required

  • JavaScript/TypeScript proficiency
  • Understanding of JSON Schema keywords across drafts (draft-07, 2019-09, 2020-12)
  • Familiarity with tree traversal and comparison algorithms
  • Experience writing CLI tools and test suites
  • Ability to read and interpret specifications (JSON Schema spec, relevant RFCs)

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

  1. Real production needTeams choose Protobuf over JSON Schema partly because of missing compatibility tooling

  2. Existing tools are incomplete — getsentry/json-schema-diff says "use as best-effort only"

  3. 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

  4. Benefits the whole ecosystem — Every validator user, every CI pipeline, every team maintaining schemas


References

Pinned by Honyii

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: AcceptedIt's clear what the subject of the issue is about, and what the resolution should be.gsocGoogle Summer of Code Project Idea

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions