Skip to main content

Release Certify

CI Python 3.11+ License: MIT

Release Certify proves that the exact Python artifact you are about to release passed your repository's declared quality, packaging, installation, and runtime checks.

uv tool install release-certify
cd your-python-project
release-certify

Prefer pipx? Install the same isolated command with:

pipx install release-certify

Release Certify reads release.evidence.yaml, runs every declared check, installs the release in a clean environment, verifies its public imports and startup command, and writes a deterministic certificate. Exit code 0 means the evidence was certified; exit code 1 means it was not.

It does not replace Ruff, MyPy, or pytest. It proves that all of them—and the installable result—agree that this release is ready.

Contract

This application example is ready to copy into release.evidence.yaml; replace the commands and import with your repository's actual release process.

release:
  kind: application

quality:
  lint:
    command: python -m ruff check .
  typing:
    command: python -m mypy .
  tests:
    command: python -m pytest -q

packaging:
  install:
    command: python -m pip install -r requirements.txt

runtime:
  smoke:
    - command: python app.py --help
      expected_exit: 0

imports:
  - my_app

artifact:
  type: source-tree

Run release-certify from the repository root. A failure identifies the missing proof and the next action.

Commands

release-certify
release-certify --verbose
release-certify --json
release-certify --output release_certificate.json
release-certify --root path/to/repository
release-certify inspect
release-certify inspect --json
release-certify --help
release-certify --version

Inspect repository evidence

release-certify inspect performs a read-only inspection and displays a non-authoritative starter contract when the existing deterministic inference can support one:

release-certify inspect
release-certify inspect --json
release-certify inspect --root path/to/repository

Inspection reports repository facts as OBSERVED, contract suggestions as INFERRED, and decisions that require an engineer as UNRESOLVED. It does not run certification, use cached evidence as proof, create a certificate, or claim release readiness. Suggested commands are unreviewed policy proposals even when repository tool configuration supports them. Inspection does not parse or execute CI workflows.

By default, inspection writes nothing. Copy the displayed proposed YAML into release.evidence.yaml only after reviewing it against the repository's actual release policy. When an explicit contract already exists, inspection reports it and does not propose a replacement. --output <path> explicitly writes inspection JSON; it never writes or overwrites release.evidence.yaml implicitly.

Evidence diagnostics

Use --verbose to inspect why category evidence was executed or reused, including deterministic cache fingerprints and invalidation reasons. When a freshly executed provider command fails, Release Certify displays a bounded excerpt of that provider's stdout and stderr. The provider output remains the provider's testimony; Release Certify does not reinterpret Ruff, MyPy, pytest, or arbitrary declared tools. Raw provider streams are not persisted in certificates or cache.

Release Certify remains evidence-driven and fail-closed: missing, invalid, ambiguous, or failed required evidence cannot produce a successful certificate.

What certification means

A successful certificate says EVIDENCE CERTIFIED: the declared commands passed for the byte-identified artifact in the recorded environment. It does not claim that those commands are adequate or that untested environments are safe. The Certificate Trust Model defines the exact guarantee and its limits.

Development

python -m pip install -e ".[dev]"
python -m ruff check .
python -m mypy src tests benchmarks tools
python -m pytest
python benchmarks/mutation_benchmark.py

See CONTRIBUTING.md for the contribution and pull-request process.

Metadata

Release files for release-certify 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for release-certify 1.1.0
File Size Uploaded
release_certify-1.1.0.tar.gz 32.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for release-certify 1.1.0
File Interpreter ABI Platform
release_certify-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 66.9 kB

Release files / release_certify-1.1.0.tar.gz

Download URL release_certify-1.1.0.tar.gz
Size 32.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b0a72e278c128659ae7b7cfb6cedf404905b94e479b2b92a34d0babce2f06ffa
BLAKE2b-256 checksum
How to use checksums
dc19d0c218dec7be4278a3506bc63ec126bb86a2e2c33b93c889f9fd8477d7dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release files / release_certify-1.1.0-py3-none-any.whl

Download URL release_certify-1.1.0-py3-none-any.whl
Size 34.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60c5475825c97f8178f92be24adbe92d93239dfd2d490144b23a154c273b96e4
BLAKE2b-256 checksum
How to use checksums
57b7913817e1bfce95845492d4870a3a49e2bee7740e314e8de610861a77dbcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page