simtabi-release-kit
Multi-registry publishing automation. One config file, one command, every registry your project needs.
pip install simtabi-release-kit
release-kit init
release-kit doctor # green / amber / red per target
release-kit publish --apply # dry-run is the default
What it does
- Publishes to package registries: PyPI, npm (+ GitHub Packages, GitLab npm), Docker Hub, GHCR, GitLab Container Registry, AWS ECR, Google Artifact Registry, Azure Container Registry, Homebrew tap, Maven Central, RubyGems, crates.io, NuGet, Packagist.
- Automates git hosts: GitHub.com, GitHub Enterprise (Cloud + Server), GitLab.com, GitLab Self-Managed, Bitbucket Cloud, Bitbucket Data Center, Gitea / Forgejo, Azure DevOps.
- OIDC-first: prefers passwordless trusted publishing.
Refuses to fall back to long-lived tokens without
--allow-token-auth. - Dry-run by default: nothing publishes until
--apply. - Pluggable: third parties register custom platforms via
[project.entry-points."release_kit.platforms"]without forking.
Quick start
# 1. Install
pip install simtabi-release-kit
# 2. Scaffold a config + .env template
release-kit init
# 3. Verify your credentials and connectivity
release-kit doctor
# 4. Dry-run a publish to selected targets
release-kit publish --target pypi --target ghcr
# 5. For real
release-kit publish --target pypi --target ghcr --apply
Two artefacts in one repo
This repository ships:
- A reference playbook at
docs/playbook/— 33 markdown files covering every supported registry and git host, following an identical 8-section template. Read it standalone even if you never install the package. - The Python automation package under
src/release_kit/— Typer CLI + config-driven runner + per-platform implementations.
Status
| Version | 0.1.0 |
| Python | ≥ 3.11 |
| Platforms (playbook) | 26 platforms documented |
| Platforms (code) | 25 platforms registered (16 registries + 8 git hosts + 1 sub-class via inheritance) |
| Tests | 158 passing, 76% coverage (gate 70%) |
| Type-check | mypy --strict clean on 47 source files |
Configuration
Three layers, highest wins:
- CLI flags (
--target pypi --apply) - Environment variables (loaded from
.envin dev; from CI secret store in prod) - JSON config (
release.json, validated against the bundled schema)
Example release.json:
{
"$schema": "./schema/release-kit.schema.json",
"project": {
"name": "my-project",
"version_source": "pyproject.toml"
},
"targets": {
"pypi": { "enabled": true, "auth": "oidc" },
"ghcr": { "enabled": true, "auth": "oidc", "image": "ghcr.io/my-org/my-project" },
"github_release": { "enabled": true, "draft": false, "generate_notes": true }
},
"policies": {
"require_clean_git": true,
"require_tag_match": true,
"continue_on_error": false,
"default_dry_run": true
}
}
Full schema: docs/configuration.md.
JSON Schema (machine-readable): src/release_kit/schema/release-kit.schema.json.
CLI surface
| Command | Purpose |
|---|---|
release-kit init |
Scaffold release.json + .env-example in the current dir |
release-kit doctor |
Per-target readiness check (green / amber / red) |
release-kit publish [--target NAME ...] [--apply] |
Run the publish flow |
release-kit bootstrap-repo [--apply] |
Apply topics + branch protection per config |
release-kit verify [--target NAME ...] |
Run each target's verify step to confirm artifacts are live |
release-kit rotate-tokens [--platform SLUG ...] [--list] |
Interactive token rotation helper |
release-kit version |
Print version |
Full reference: docs/cli.md.
Documentation
docs/playbook/ |
The standalone reference for every supported platform |
docs/architecture.md |
How the package is laid out + extension points |
docs/configuration.md |
Full JSON config schema |
docs/cli.md |
Every command, every flag |
docs/security.md |
Token handling, OIDC, rotation cadence |
docs/workflows/ |
End-to-end how-tos (first publish, CI release, OIDC bootstrap) |
docs/recipes/ |
Copy-pasteable example configs |
docs/troubleshooting.md |
Symptom → cause → fix |
Built by
Simtabi LLC · MIT license · contributions welcome.
Metadata
Release files for simtabi-release-kit 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simtabi_release_kit-0.4.0.tar.gz | 137.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simtabi_release_kit-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 220.7 kB
Release files / simtabi_release_kit-0.4.0.tar.gz
| Download URL | simtabi_release_kit-0.4.0.tar.gz |
|---|---|
| Size | 137.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5298e7bcd61bdaa2bd3e11039223a7a983deda4b034311d61c88e513d665c59
|
|
BLAKE2b-256 checksum How to use checksums |
a0749535261248d1b5cbc70798dc77ad402f25c3eaae15fa0fbe55e709b4146c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 16, 2026.
Transparency logRelease files / simtabi_release_kit-0.4.0-py3-none-any.whl
| Download URL | simtabi_release_kit-0.4.0-py3-none-any.whl |
|---|---|
| Size | 82.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aca10006420034af61945c41d0812cd3a2f58d6fdffe095395af4b4afa752b55
|
|
BLAKE2b-256 checksum How to use checksums |
7b58b4fd332892dc8da43ed3d0eaae144821a21d0e8e499da201e9ea16a9cc66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 16, 2026.
Transparency log