product:auto-require
Introduction
product:auto-require adds to your pyproject.toml the features the UVL model requires and your product does not declare. It follows the A => B constraints all the way down. It needs a selected product (SPLENT_APP).
splent product:auto-require --dry-run
UVL complete
Product : my_shop
UVL : /workspace/splent_spl_shop/shop_spl.uvl
Features : 12
Missing features (by name):
- billing
Will add to pyproject [tool.splent].features
- splent-io/splent_feature_billing
Dry-run (use --yes or confirm prompt to modify pyproject.toml).
product:missing shows the same gaps without writing anything.
Adding the features
splent product:auto-require --yes
Without --yes it asks first. It backs up pyproject.toml.bak and appends each entry to [tool.splent].features as org/package, from the org and package of the model, with no version. Pin it later with feature:attach.
Only those entries change. Comments, blank lines, key order and quote style stay as they were. When the edit cannot be made exactly, it writes nothing, prints <path> was left as it was, because <reason> and exits 1.
Once it has added features, it brings the product’s forge workflows in step, as product:sync-template --ci would.
What it adds and what it does not
It reads the selection product:validate checks, [tool.splent].features plus features_dev or features_prod for the current SPLENT_ENV (dev when unset). The nodes your parameter values select count as selected too.
A feature already declared in features, features_dev or features_prod, pinned or not, is never added again.
Not added: <name> is already declared in <list>.
No changes needed (entries already present).
A parameter node a constraint asks for has no package, so it is never added. The command names the value to set instead.
Not added, values to set in [tool.splent.config]: CAPTCHA_PROTECTED_FORMS includes login
Where the model comes from
It reads the model of your product’s SPL from the working copy splent_spl_<name>/, then from .splent_cache/spls/, and otherwise downloads it from UVLHub by the DOI in [tool.splent.spl_model]. A product without [tool.splent].spl reads <product>/uvl/<file> from [tool.splent.uvl].file.
Reference
| Option | Description |
|---|---|
--pyproject PATH |
Edit this pyproject.toml instead of the product’s |
--yes |
Write without asking |
--dry-run |
Show what would be added and write nothing |
--default-org ORG |
Accepted and ignored. Entries are always org/package |