monochange_schema
monochange_schema owns durable JSON wire contracts for monochange artifacts that are embedded in git history or written to disk for later monochange commands.
Reach for this crate when you need to render, validate, or migrate public artifact versions without depending on the higher-level release planner.
Why use it?
- keep durable wire schemas separate from internal Rust structs
- parse schema versions in the public
major.minorformat written asv - validate commit-embedded release records before the CLI deserializes them into domain types
- publish machine-readable migration changelog metadata next to the schema assets
Version policy
The crate package version and durable artifact schema version are intentionally independent.
- The crate starts at
0.0.0on development branches so release planning can explicitly publish the first crate release. - Durable release records already use public schema version
0.1because0.1is the first supported wire contract. - Patch releases of this crate do not change a durable
vvalue. - Future breaking durable schema changes add a new
major.minorvalue plus migration changelog entries.
Public schema assets
Current moving aliases are published with the documentation site:
- https://monochange.github.io/monochange/schemas/release-record.schema.json
- https://monochange.github.io/monochange/schemas/monochange.schema.json
Stable versioned copies are also generated for durable/editor integrations that need a non-moving URL, starting with release-record.v0.1.schema.json and monochange.v0.1.schema.json.
Run the repository scripts when changing schema templates or public constants:
schema:update regenerates committed schema assets from the templates and Rust wire constants. schema:check compares the generated output against the committed files and is part of lint:all.
Example
use CURRENT_SCHEMA_VERSION_TEXT;
use release_record;
use json;
let durable = render_current_value?;
assert_eq!;
assert!;
# Ok::
Scope
SchemaVersionparsing and renderingrelease_recorddurable wire validation and rendering helpersmigration_changelogstructured migration metadata- committed JSON Schema and migration changelog assets under
schemas/