Skip to content
deploydoublesPublic

About

An open standard and reference apps for verifying that a deploy actually works.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Deploy Doubles

spec: v0.1 draft code: MIT spec text: CC BY 4.0

Deployed is not the same as working.

Deploy Doubles is an open standard and a set of reference apps for answering one question: did this deploy actually work?

A platform can report a deploy as successful while the app behind it is broken — the new release never took over, the queue worker is still running last week's code, the cache silently fell back to the filesystem, the scheduler never started. Deploy Doubles makes those failures visible, from the inside and from the outside, as one exit code.

  • The standard — a report an app serves about itself at /.well-known/deploy-report, a manifest (double.json) of what it needs, and outside checks a verifier runs. Any app can implement the report.
  • The doubles — small reference apps, one per framework and service combination, that implement the standard exactly and exist to be deployed. In testing, a test double stands in for a real dependency; a deploy double stands in for your app while you test a deploy.
  • The verifier — npx deploydoubles verify, which reads the report, runs the outside checks and returns 0, 1, 2 or 3.

Three steps

  1. Pick a double that matches what you want to test — npx deploydoubles list --needs postgres,worker — and read its double.json to see what it needs (services, processes, environment).

  2. Deploy it on any platform, the way you would deploy your own app.

  3. Verify it:

    npx deploydoubles verify https://your-deploy.example --commit <deployed sha> --json

    Exit 0 means every check passed on the release you deployed. Anything else comes with a hint for each failing check.

What is in this repository

Path What it is
spec/ The specification and its JSON Schemas (CC BY 4.0)
verifier/ The deploydoubles CLI (npm)
checks/php/ deploydoubles/checks-php — generates the report in PHP apps (Laravel, Symfony, plain PHP)
checks/node/ @deploydoubles/checks — generates the report in Node apps (Next.js)
doubles/ The reference apps
catalog.json Every double's manifest and whether it is broken, generated by scripts/build-catalog — never edited by hand
scripts/conformance.sh Starts a double with Docker Compose and verifies it
scripts/conformance-failure.sh Starts a double, makes it fail on purpose (failure modes) and asserts the failure

This is the monorepo. Each double, the spec and the check libraries are also mirrored into read-only repositories under the deploydoubles organisation, with the app at the repository root, so any platform can deploy a double from a plain repository URL. Changes are made here.

Status

v0.1 is a draft. Breaking changes are allowed until 1.0. The project is useful before it is a standard: the doubles and the verifier exist to catch real deploy bugs first.

How this is built

Deploy Doubles is authored by Jan Peter Wiersma. Most of the code and text is drafted by AI agents under his direction and review: agent-written commits carry a Co-Authored-By trailer, and he is accountable for every line that is merged. Contributors are asked to disclose AI assistance in their pull requests — see CONTRIBUTING.md.

A standard built for agents, built mostly by agents, with a human accountable for it.

Licence

Code is MIT. The specification text in spec/ is CC BY 4.0.


Started and stewarded by Strackt. See GOVERNANCE.md.

About

An open standard and reference apps for verifying that a deploy actually works.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages