Skip to main content

simtabi-release-kit

CI PyPI Python License

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:

  1. 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.
  2. 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:

  1. CLI flags (--target pypi --apply)
  2. Environment variables (loaded from .env in dev; from CI secret store in prod)
  3. 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)

Source distribution for simtabi-release-kit 0.4.0
File Size Uploaded
simtabi_release_kit-0.4.0.tar.gz 137.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simtabi-release-kit 0.4.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.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