feature:upgrade
Upgrade declared features to the latest version available on GitHub.
Usage
splent feature:upgrade [<feature_name>] [--yes]
| Argument / Option | Description |
|---|---|
<feature_name> |
Optional. Upgrade only this feature (e.g. splent_feature_auth). If omitted, all declared features are checked. |
--yes |
Skip the confirmation prompt. |
Examples
Check and upgrade all declared features:
splent feature:upgrade
Upgrade a specific feature:
splent feature:upgrade splent_feature_auth
Non-interactive upgrade (CI/scripts):
splent feature:upgrade --yes
Example output
Checking latest versions on GitHub...
Features to upgrade (2):
splent_io/splent_feature_auth v1.0.2 → v1.2.7
splent_io/splent_feature_mail editable → v0.9.1
Proceed with upgrade? [y/N]: y
⬇️ Cloning splent_io/splent_feature_auth@v1.2.7...
✔ splent_io/splent_feature_auth → v1.2.7
✔ splent_io/splent_feature_mail → v0.9.1
Done. Run 'splent product:resolve' to reinstall pip dependencies.
Description
Queries the GitHub API to find the latest tag for each declared feature, then upgrades any that are behind:
- Calls the GitHub tags API to resolve the true latest version.
- Clones the new version into
.splent_cacheif not already present. - Updates the version reference in
pyproject.toml(name@old_ver→name@new_ver). - Replaces the symlink in
{product}/features/{namespace}/to point to the new cached version.
Features declared without a version (editable) are always offered for upgrade to the latest tagged release.
After upgrading, run splent product:resolve to reinstall pip dependencies with the new versions.
Notes
- Set
GITHUB_TOKENto raise the API rate limit from 60 to 5,000 requests per hour. - To check what versions are available without upgrading, use
feature:outdated. - To upgrade all outdated features at once, use
feature:outdated --upgrade. - To pin a specific version (not the latest), use
feature:attachinstead.
Pairs well with
feature:outdated— check for newer versions across all pinned features.feature:outdated --upgrade— upgrade all outdated features at once.product:resolve— reinstalls pip dependencies after an upgrade.feature:pull— keeps editable features up to date viagit pull.