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

  1. Validates environment credentials.
  2. Channel gate, pass one. Proves GitHub and PyPI would accept this exact version before anything is spent on tests.
  3. Pre-release gate. ruff lint + pytest tests/ for splent_framework. Aborts with no changes if either fails. Skip with --skip-checks.
  4. Channel gate, pass two. The binding one, so the verdict acted on is seconds old.
  5. Bumps the version in splent_framework/pyproject.toml, stages and commits.
  6. Cleans build artifacts, builds the package, and uploads to PyPI.
  7. 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


Back to top

splent. Distributed by an LGPL license v3. Contact us: drorganvidez@us.es