Changelog
View SourceAll 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.shand refreshed example suite.
Changed
- Big-bang refactor of core schema/validation architecture per technical design.
- JSON Schema validation now uses
jsv0.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/3base path ordering.
0.0.2 - 2025-12-27
Changed
- Switched JSON Schema validation to
ex_json_schemav0.11.2. - Updated generated
$schemato 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:
- Unified schema definition with
Sinter.Schema.define/2 - Single validation pipeline with
Sinter.Validator.validate/3 - JSON Schema generation with
Sinter.JsonSchema.generate/2 - Dynamic schema creation for frameworks like DSPy
- Schema inference from examples
- Schema merging for composition
- Provider-specific JSON Schema optimizations
- Unified schema definition with
- Convenience helpers:
validate_type/3for one-off type validationvalidate_value/4for single field validationvalidate_many/1for multiple value validation
- Compile-time macro support with
use_schema - Comprehensive example suite
- Full test coverage
- Documentation and API reference