feature:versions

List all available versions of a feature from GitHub tags and PyPI releases.


Table of contents

  1. Usage
  2. Examples
    1. List all versions
    2. Show only the latest version (--latest)
    3. Compare against declared version (--status)
    4. Check GitHub/PyPI sync (--diff)
    5. Check all product features (--all)
  3. Description
  4. Notes

Usage

splent feature:versions [<feature_name>] [--github] [--pypi] [--latest] [--status] [--diff] [--all]
Argument / Option Description
<feature_name> Feature name (splent_feature_auth) or namespaced form (splent-io/splent_feature_auth). A version suffix is ignored if present. Required unless --all is used.
--github Show only GitHub tags.
--pypi Show only PyPI releases.
--latest Show only the latest available version from each source.
--status Compare the version declared in pyproject.toml against the latest on GitHub.
--diff Show versions missing from one source or the other.
--all Check all features declared in the active product.

Examples

List all versions

splent feature:versions splent_feature_auth
  Versions for splent-io/splent_feature_auth
  ──────────────────────────────────────────────────

  GitHub tags
    v1.2.7
    v1.2.7
    v1.0.4
    v1.0.3
    v1.0.2
    v1.0.0

  PyPI releases
    1.1.1
    1.1.0
    1.0.4
    1.0.3
    1.0.2
    1.0.1

  💡 Set GITHUB_TOKEN to avoid rate limits.

Show only the latest version (--latest)

splent feature:versions splent_feature_auth --latest
  Versions for splent-io/splent_feature_auth
  ──────────────────────────────────────────────────

  GitHub:    v1.2.7
  PyPI:      1.1.1

Compare against declared version (--status)

Shows the version pinned in pyproject.toml and how many GitHub tags behind it is.

splent feature:versions splent_feature_auth --status
  Versions for splent-io/splent_feature_auth
  ──────────────────────────────────────────────────

  Declared:    v1.0.2
  Latest (GH): v1.2.7
  Status:      ⚠  3 behind

Check GitHub/PyPI sync (--diff)

Shows a unified table with all versions from both sources, with arrows and colors indicating the status of each one:

splent feature:versions splent_feature_auth --diff
  Version     GitHub                PyPI
  ──────────────────────────────────────────────────────────────────
  v1.2.7      ✔  tagged            ↔   ✔  published
  v1.2.7      ✔  tagged            ↔   ✔  published
  v1.2.7      ✔  tagged            ↔   ✔  published
  v1.0.4      ✔  tagged            ↔   ✔  published
  v1.0.3      ✔  tagged            ↔   ✔  published
  v1.0.2      ✔  tagged            ↔   ✔  published
  v1.0.1      ✗  no tag            ←   ✔  published
  v1.0.0      ✔  tagged            →   ✗  not published

  ↔  in sync   →  only on GitHub   ←  only on PyPI
Symbol Meaning
green Version present in both sources — in sync
yellow Tagged on GitHub but not published on PyPI
yellow Published on PyPI but no tag on GitHub

--diff avoids false positives caused by PyPI CDN caching: if a version appears only on GitHub, it is verified directly against the PyPI per-version endpoint before marking it as absent.

Check all product features (--all)

splent feature:versions --all
  Feature                                Declared        Latest (GH)     Status
  ──────────────────────────────────────────────────────────────────────────────
  splent_feature_auth                    v1.0.2          v1.2.7          ⚠  3 behind
  splent_feature_mail                    v0.9.1          v0.9.1          ✔ up to date
  splent_feature_profile                 (editable)      v1.0.0          (editable)

  💡 Set GITHUB_TOKEN to avoid rate limits.

Description

Queries GitHub and PyPI independently:

  • GitHub tags — paginates through all tags in github.com/<namespace>/<feature_name>, newest first.
  • PyPI releases — fetches pypi.org/pypi/<feature_name>/json and sorts by upload date, newest first.

Version strings are normalised before comparison (leading v is stripped), so v1.2.7 and 1.1.1 are treated as the same version.

--diff merges both version lists into a single sorted table and verifies “only on GitHub” candidates against PyPI’s per-version endpoint to avoid false positives caused by CDN caching lag after a fresh release.

--all reads the features group from the active product’s pyproject.toml and makes one GitHub API call per feature.


Notes

  • Set GITHUB_TOKEN to raise the GitHub API rate limit from 60 to 5 000 requests per hour and to access private repositories.
  • --all makes one GitHub request per feature — set GITHUB_TOKEN to avoid hitting the rate limit.
  • To pin a specific version to the active product, use feature:attach:

    splent feature:attach splent_feature_auth v1.2.7
    

Back to top

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