feature:detach
Introduction
feature:detach unpins a released version from the selected product, the reverse of feature:attach. The entry goes back to the bare, editable <namespace>/<feature>, and the feature is uninstalled from the running app. The snapshot in .splent_cache stays for the next time.
splent feature:detach splent-io/splent_feature_notes v1.2.0
notes@v1.2.0 removed from pyproject.toml
uninstalling from web container...
done.
The feature stays declared, now as the editable copy. Run feature:remove next to take it out. Comments, blank lines, key order and quote style stay as they were in pyproject.toml.
When it refuses
Cannot detach 'notes': the following features depend on it:
- splent_feature_reports
Remove those first, or use --force.
Another installed feature requires it in its contract. Detach or remove that one first.
notes has migrations applied (state: migrated).
Roll them back first: splent db:rollback splent_feature_notes --steps 999
Or use --force.
Roll its migrations back first, so no orphaned tables stay. The state active does not block. --force skips both checks.
Reference
| Argument or option | Description |
|---|---|
FEATURE_IDENTIFIER |
<namespace>/<feature>, or <feature> for splent-io |
VERSION |
The attached version, such as v1.2.0 |
--force |
Skip the dependency and migration checks |
| Message | Exit | What to do |
|---|---|---|
<short>@<version> is not attached to this product. Declared: ... |
1 | Pass the version the product declares |
<short> is not declared in this product under '<namespace>'. |
1 | Check the namespace |
<path> was left as it was, because <reason> |
1 | Make the edit by hand. Nothing was written |
Requirements
- A selected product (
SPLENT_APP) with apyproject.toml.
See also
feature:removetakes the feature out of the product.feature:attachattaches a version again.db:rollbackrolls back migrations before detaching.