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:

  1. Calls the GitHub tags API to resolve the true latest version.
  2. Clones the new version into .splent_cache if not already present.
  3. Updates the version reference in pyproject.toml (name@old_vername@new_ver).
  4. 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_TOKEN to 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:attach instead.

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 via git pull.

Back to top

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