Changelog

View Source

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.0 - 2025-12-27

Added

  • String-keyed schema fields and nested object schema DSL (Schema.object/1).
  • Built-in format types (:date, :datetime, :uuid, :null, {:nullable, type}).
  • JSON encode/decode helpers with transform pipeline (Sinter.JSON, Sinter.Transform, Sinter.NotGiven).
  • Example runner examples/run_all.sh and refreshed example suite.

Changed

  • Big-bang refactor of core schema/validation architecture per technical design.
  • JSON Schema validation now uses jsv 0.13.1 with Draft 2020-12 default and Draft 7 provider support.
  • Provider JSON Schema generation applies strictness recursively for nested objects.
  • Schema inference avoids atom leaks by defaulting to string keys.

Fixed

  • Required/default ordering so defaults apply before required checks.
  • validate_many/3 base path ordering.

0.0.2 - 2025-12-27

Changed

  • Switched JSON Schema validation to ex_json_schema v0.11.2.
  • Updated generated $schema to JSON Schema Draft 7 for validator compatibility.
  • Removed custom JSON Schema structural validation helpers in favor of meta-schema validation.

0.0.1 - 2025-07-05

Added

  • Initial release of Sinter
  • Unified schema definition, validation, and JSON generation for Elixir
  • Core features:
  • Convenience helpers:
    • validate_type/3 for one-off type validation
    • validate_value/4 for single field validation
    • validate_many/1 for multiple value validation
  • Compile-time macro support with use_schema
  • Comprehensive example suite
  • Full test coverage
  • Documentation and API reference