Skip to content

Controlled Releases

The release registry turns an approved artifact into the only artifact production is allowed to run.

registry.json is an append-only, hash-chained event log. Release state is derived from its events:

propose -> draft -> approve -> approved -> publish -> published -> retire
Terminal window
devlish release propose pricing_tier.dvl --author andrew

Proposal compiles the rule, runs its golden cases, and records both the artifact hash and evidence hash. A failing rule cannot enter the registry.

Terminal window
devlish release approve pricing.tier@1.0.0 --approver dana
devlish release publish pricing.tier@1.0.0

The recorded author cannot approve their own release. Only approved versions can be published, and published effective windows for one rule identifier cannot overlap.

Terminal window
devlish run pricing_tier.dvl \
--governed registry.json \
--input '{"amount": 150}'

--governed recompiles the source and refuses it unless that exact artifact hash is currently published. A modified source file has a different hash and does not run.

Terminal window
devlish release list
devlish release verify
devlish release retire pricing.tier@2.0.0
devlish release publish pricing.tier@1.0.0

Rollback publishes a previously approved artifact as a new event. Registry history is not deleted.

--governed currently applies to native run execution. MCP and REPL execution do not consult the release registry yet.