Source: surfaced while adding dprod-contracts/validate.py.
CI currently does not validate the ontology or examples — .github/workflows/build-spec.yml only builds/deploys the spec; nothing parses the TTLs or runs SHACL. A regression in dprod-contracts/*.ttl or any example would not be caught until someone runs the generator by hand.
The branch now ships dprod-contracts/validate.py, which:
- parses every
dprod-contracts/**/*.ttl as Turtle, and
- SHACL-validates each example under
dprod-contracts/examples/ against dprod-contracts-shapes.ttl (ontology as ont_graph, RDFS inference on),
- exiting non-zero on any parse error or SHACL violation.
Ask: add a CI step (extend build-spec.yml or a small dedicated workflow) that runs pip install -r requirements.txt && python dprod-contracts/validate.py on push / PR, gating merges on a green validation.
Related: #92 (validate the core examples/ via JSON-LD→Turtle) — complementary; this issue covers the contracts SHACL gate specifically.
Source: surfaced while adding
dprod-contracts/validate.py.CI currently does not validate the ontology or examples —
.github/workflows/build-spec.ymlonly builds/deploys the spec; nothing parses the TTLs or runs SHACL. A regression indprod-contracts/*.ttlor any example would not be caught until someone runs the generator by hand.The branch now ships
dprod-contracts/validate.py, which:dprod-contracts/**/*.ttlas Turtle, anddprod-contracts/examples/againstdprod-contracts-shapes.ttl(ontology asont_graph, RDFS inference on),Ask: add a CI step (extend
build-spec.ymlor a small dedicated workflow) that runspip install -r requirements.txt && python dprod-contracts/validate.pyon push / PR, gating merges on a green validation.Related: #92 (validate the core
examples/via JSON-LD→Turtle) — complementary; this issue covers the contracts SHACL gate specifically.