Skip to content

Releases: omarish/metadata-enforcer

metadata-enforcer 2.0.0

Choose a tag to compare

@omarish omarish released this 08 Aug 21:05
v2.0.0

Breaking rewrite

Replace the v0.1 YAML/columns.yaml → JSON Schema design with Django-style Python models.

What changed

  • Schema: Python Model classes + field types (TextField, BooleanField, DateField, TagsField, UUIDField, URLField, URLPathField)
  • Routing: ROUTES / MODEL_BY_PATH map directory prefixes to models (longest prefix wins)
  • CLI: check / fix / watch (Click)
    • check — validate only
    • fix — write missing defaults + apply field_order
    • watch — re-run on .md changes (--fix optional)
  • Config: vault schema.py (or --schema PATH), default ROOT/schema.py

Removed

  • columns.yaml / JSON Schema compiler
  • metadata-enforcer init
  • Dependencies: jsonschema, python-frontmatter
  • Wikilink unwrapping

Install

uv tool install --force git+https://github.com/omarish/metadata-enforcer.git@v2.0.0
# or from a checkout:
make install

Quick start

metadata-enforcer check ~/vault
metadata-enforcer fix ~/vault --verbose
metadata-enforcer watch ~/vault --fix

See the README and examples/sample-vault/.

metadata-enforcer v0.1.0

Choose a tag to compare

@omarish omarish released this 30 Jul 20:31
v0.1.0

First release of metadata-enforcer.

Highlights:

  • Human-friendly columns.yaml schemas compiled to JSON Schema 2020-12
  • Cold-start schema inference with metadata-enforcer init
  • Recursive and watch-mode validation for Obsidian vaults
  • Wiki-link title normalization and nullable/mixed-type inference
  • Precise file, field, and invalid UTF-8 diagnostics

Install from source with uv and see README.md for usage.