Skip to main content

AI-assisted CLI release manager powered by Backboard

Project description

Rel-Ease

Rel-Ease (release-cli on PyPI) is a terminal release manager that pairs a Click CLI with a Backboard assistant. The LLM reads your diff, proposes SemVer bumps, updates release_notes.md, stages commits, and for Python packages runs uv build and twine upload — all through explicit tools you control.

Requirements

  • Python 3.11+
  • git, BACKBOARD_API_KEY
  • Python projects: uv, twine (and PyPI credentials via TWINE_USERNAME / TWINE_PASSWORD or standard twine config)
  • Node/TypeScript: npm (for npm install --package-lock-only after version bumps)
  • Rust: manual cargo publish after the assistant bumps Cargo.toml and commits (by design)

Install

cd rel-ease
uv sync
uv pip install -e .
# or: uv tool install .

Quick start

export BACKBOARD_API_KEY=sk-...

# Sanity-check environment and repo detection
rel-ease doctor .

# Show how the project is classified (no network)
rel-ease detect .

# Run the release assistant (creates/updates Backboard assistant named `rel-ease`)
rel-ease release .

# Read-only rehearsal
rel-ease release . --dry-run

# Extra guidance for the model
rel-ease release . --hint "User asked for a minor bump for the new API."

Optional: set REL_EASE_ASSISTANT_ID to pin a specific Backboard assistant UUID after the first run.

Repo detection (deterministic)

Order of precedence from the repository root:

  1. RustCargo.toml with a [package] version
  2. Pythonpyproject.toml with [project].version
  3. Node/TSpackage.json with version

If the kind is Python, uv_build and twine_upload run for real. For Node or Rust, those tools return a skipped result so the model does not pretend PyPI ran.

Tools exposed to the assistant

Tool Role
get_repo_context Refresh kind, version file, current version
increment_version Bump patch / minor / major or set explicit_version
git_diff git diff with optional --stat and path filters
git_status_files Porcelain status per path
git_add Stage explicit paths
git_commit Commit with your message
uv_build Clean dist/ and uv build (Python only)
release_notes_update Create/update release_notes.md (replace or append)
twine_upload Upload artifacts from dist/ (Python only)

The Backboard model interprets diffs and drives the sequence; every mutation goes through these tools on your machine.

Environment

Variable Purpose
BACKBOARD_API_KEY Required for rel-ease release
REL_EASE_ASSISTANT_ID Optional UUID override
TWINE_USERNAME / TWINE_PASSWORD PyPI upload (if not using another twine config)

What Rel-Ease does not do

  • No automatic git push, tags, or GitHub releases (keep using gh or CI).
  • No cargo publish wrapper yet — the assistant will remind you after a Rust bump.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

release_cli-0.2.5.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

release_cli-0.2.5-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file release_cli-0.2.5.tar.gz.

File metadata

  • Download URL: release_cli-0.2.5.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for release_cli-0.2.5.tar.gz
Algorithm Hash digest
SHA256 a8db21b5b4491bdd5c0d8f8952bf799505a552c95cd19ab50c2d2e19d78efc7c
MD5 5970f8f2390ddab53a9b656ccd958b55
BLAKE2b-256 b2b7f50a9bd110607a3c6e4662edd292e5e53ad56295f6019964b37e227c05d4

See more details on using hashes here.

File details

Details for the file release_cli-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: release_cli-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for release_cli-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fc43a6e6d0159bd6e2c54a6099a71408e01b4b91668e53009f1500da43bb4996
MD5 c889fedab871f453c5037a07b2fa84ef
BLAKE2b-256 99881725eb39246127e45efa602e3acdbc5d7c3921f322d2633e2f4285622216

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page