feature:versions
List all available versions of a feature from GitHub tags and PyPI releases.
Table of contents
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>/jsonand 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_TOKENto raise the GitHub API rate limit from 60 to 5 000 requests per hour and to access private repositories. --allmakes one GitHub request per feature — setGITHUB_TOKENto 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