Open source · Data & Analytics

Dataset Schema Diff

Compare dataset schemas while preserving compatible and breaking change detail.

v0.1.0 · Node.js 22+ · MIT

Browse the public repository · View releases

Compare two versioned schema manifests — columns, types, nullability and units — and classify every difference under a declared compatibility policy. A difference it cannot classify is reported as unclassified and the run is incomplete, because "no breaking changes found" is a sentence people act on.

This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+; inspect the source before using it on your own files.

Run the checked-in example

# A compatible change: widened types and an added nullable column.
node bin/dataset-schema-diff.mjs \
  --root examples/compatible \
  --before orders.2026-01.json \
  --after  orders.2026-04.json \
  --policy examples/compatible/policy.json
# exit 0

# A breaking change: a narrowed key, a tightened column, a changed unit and a
# reordering, judged against a policy that calls reordering breaking.
node bin/dataset-schema-diff.mjs \
  --root examples/breaking \
  --before orders.2026-04.json \
  --after  orders.2026-07.json \
  --column-order breaking
# exit 1

Read the result

To run the CLI from its public GitHub source without installing a registry package, use npm exec --yes --package=git+https://github.com/edilec/dataset-schema-diff.git -- dataset-schema-diff --help.

Where this check stops

Each is enforced before the work it bounds, so a legal-sized input cannot exhaust memory. Exceeding one is an incomplete result with a finding naming the limit — never a silent truncation, never a pass. Every one is tested from both sides: that it fires at N+1, and that it stays silent at exactly N.

Before adapting the command to your own workflow, review the accepted inputs, exit codes and safety boundaries in the README.

Compiled with AI assistance from checked-in public documentation and example scripts. Run the example and review the repository's current documentation before relying on its result.