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, the command does the following.
- 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. It 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.