release:framework
Release a new version of splent_framework to GitHub and PyPI.
Usage
splent release:framework [<version>] [--skip-checks]
When <version> is omitted, the interactive semver wizard runs. It fetches the latest tag from GitHub and offers patch, minor, or major bump options.
--skip-checks bypasses the pre-release gate (lint + tests), for emergencies only.
Examples
Interactive (recommended).
splent release:framework
Explicit version (CI / automation).
splent release:framework v1.4.1
Pipeline
- Validates environment credentials.
- Channel gate, pass one. Proves GitHub and PyPI would accept this exact version before anything is spent on tests.
- Pre-release gate.
rufflint +pytest tests/forsplent_framework. Aborts with no changes if either fails. Skip with--skip-checks. - Channel gate, pass two. The binding one, so the verdict acted on is seconds old.
- Bumps the version in
splent_framework/pyproject.toml, stages and commits. - Cleans build artifacts, builds the package, and uploads to PyPI.
- Pushes
main, creates and pushes the Git tag (v<version>), creates the GitHub Release.
PyPI goes first because a PyPI version can never be replaced or removed, while an unpushed tag costs nothing. If step 7 fails after step 6 succeeded, the run says the channels have diverged and prints the release:resume command that finishes the job without bumping the version.
--no-github, --no-pypi and --allow-unfinished are available here too. See Declaring channels.
Requirements
| Variable | Description |
|---|---|
GITHUB_TOKEN |
Required. The channel gate refuses to start without it, because a push, a tag and a release cannot be verified. Also what keeps the semver wizard off the anonymous rate limit. |
TWINE_USERNAME / PYPI_USERNAME |
PyPI authentication (usually __token__). |
TWINE_PASSWORD / PYPI_PASSWORD |
PyPI API token. |
Verify credentials before releasing.
splent check:github
splent check:pypi
See also
release:cli. Same pipeline forsplent_clirelease:resume. Finish an interrupted releasefeature:release. Feature release pipelineproduct:release. Product release pipeline