Check release dependencies and a deadline
A release request depends on approved components. This short example transfers the dispatch pattern into software delivery: the fixed catalogue supplies allowed dependency nodes and edges, and the model checks claimed reachable dependencies and a release deadline. It checks readiness facts; it does not deploy software.
Use an activated GND environment in an empty directory:
from importlib.resources import files
from shutil import copytree
copytree(str(files("gnd") / "examples" / "release"), "release-demo")
The first request misses its modeled deadline:
The supplied repair satisfies the same model:
from gnd import api
result = api.check("release-demo/model.orm.json", "release-demo/seed.pop.json", admission=True)
failed = [v for v in result["report"]["verdicts"] if v["verdict"] == "fail"]
assert result["exit_code"] == 1
assert len(failed) == 1 and failed[0]["constraint_ref"] == "constraints[1]"
print("Release deadline finding:", failed[0]["message"])
Compare the model's domain vocabulary with dispatch. The two examples intentionally use similar mechanics so that you can see which pieces belong to GND and which describe your domain. For a different development workflow, continue with expense approvals.