feature:pin
Pin all editable features to their latest cached version.
Usage
splent feature:pin [--dry-run]
| Option | Description |
|---|---|
--dry-run |
Show what would change without modifying pyproject.toml. |
Examples
Preview what would be pinned:
splent feature:pin --dry-run
Pin all editables:
splent feature:pin
Example output
feature:pin
✓ admin → v1.0.1
✓ session_redis → v1.0.1
✓ mail → v1.3.2
✅ Pinned 3 feature(s) in pyproject.toml.
Run 'splent product:resolve' to update symlinks.
Description
After running feature:release on editable features, this command updates the product’s pyproject.toml to reference the latest version found in .splent_cache/ – turning editable entries into pinned ones.
For each editable feature (no @version) declared in pyproject.toml:
- Scans
.splent_cache/features/<org>/for versioned directories matching the feature name. - Sorts by semver and selects the highest version.
- Updates the entry from
splent-io/splent_feature_nametosplent-io/splent_feature_name@vX.Y.Z.
Features that have no cached version are skipped with a warning.
After pinning, run splent product:resolve to update symlinks.
Notes
- Only looks at the local cache – does not fetch from GitHub. Run
feature:releaseorfeature:clonefirst. - Works across all feature lists:
features,features_dev, andfeatures_prod. - To pin a single feature to a specific version, use
feature:attachinstead.
Pairs well with
feature:release– release features before pinning.feature:attach– pin a specific feature to a specific version.product:resolve– update symlinks after pinning.feature:outdated– check if pinned versions are up to date with GitHub.