feature:release
Release a feature: bump version, tag, publish to GitHub and PyPI, and create a versioned cache snapshot.
Usage
splent feature:release <feature_ref> <version> [--attach]
Examples
Release and publish:
splent feature:release splent_io/notepad v1.3.0
Release and automatically attach to the current product:
splent feature:release splent_io/notepad v1.3.0 --attach
Description
This command performs a full release pipeline for a feature:
- Updates the version in
pyproject.toml. - Commits and pushes changes (if needed).
- Creates and pushes a Git tag.
- Creates a GitHub Release.
- Builds and uploads the package to PyPI.
- Creates a versioned snapshot in
.splent_cache. - Optionally attaches the released version to the active product.
The active product is determined by SPLENT_APP.
Requirements
Environment variables required:
SPLENT_APPTWINE_USERNAMEorPYPI_USERNAMETWINE_PASSWORDorPYPI_PASSWORD
Optional:
GITHUB_TOKEN(required for automatic GitHub Release)
Result
After a successful release:
- A Git tag is pushed.
- A GitHub Release is created.
- The package is published to PyPI.
- A versioned snapshot exists in:
<workspace>/.splent_cache/features/<namespace>/<feature_name>@<version>/
If --attach is used, the feature version is also linked to the current product.
Notes
- The feature must be in editable (non-versioned) state in the cache.
- Versioned references (e.g.,
feature@v1.0.0) cannot be released.