product:missing
Introduction
product:missing lists the features your SPL’s UVL model requires, through its => constraints, that your product does not declare. Run it when product:validate says the selection is not satisfiable, then add them with product:auto-require. It needs a selected product (SPLENT_APP).
splent product:missing
UVL missing
Product : my_shop
UVL : /workspace/splent_spl_shop/shop_spl.uvl
Features : 12
Selected : app, billing, shop
Values : sells_items (SHOP_SELLS = items)
Missing dependencies detected:
- billing requires sells_subscriptions
Values to set in [tool.splent.config]: SHOP_SELLS includes subscriptions
With nothing missing it prints OK: no missing dependencies (implication constraints satisfied).
What it checks
The selection is the one product:validate checks. That is [tool.splent].features, plus features_dev or features_prod for the current SPLENT_ENV (dev when unset), plus the nodes your parameter values select (In the feature model).
A parameter node a constraint asks for has no package, so it is never a feature to add. The command names the value to set in [tool.splent.config] instead.
Failing a pipeline
splent product:missing --fail
--fail exits with 2 when a dependency is missing. Without it the command always exits 0.
Reference
| Option | Description |
|---|---|
--pyproject PATH |
Read this pyproject.toml instead of the product’s |
--fail |
Exit with 2 when a dependency is missing |
A feature in pyproject.toml that the model does not have stops the command with pyproject contains features not present in UVL: ....