SPL commands

Commands for creating, querying and maintaining Software Product Line definitions, and for the UVL variability model each one carries.

Command Description
spl:create Start a new SPL model at splent_spl_<name>/
spl:list List the models this workspace knows
spl:info Show where one model lives and what points at it
spl:features List features in an SPL
spl:add-feature Add a feature with auto-detected constraints
spl:add-constraints Add missing constraints interactively
spl:deps Show feature dependencies
spl:configurations Count valid configurations
spl:compare Compare two products by feature set
spl:fetch Download a model from UVLHub by DOI
spl:publish Publish a model through the marketplace
spl:pin Record the model DOI in the active product
spl:outdated Report products pinned to an older model
spl:migrate-catalog One off, adopt a legacy splent_catalog

Where a model lives

There is no catalog repository any more. Three places hold a model, and they are tried in this order.

  1. The working copy, splent_spl_<name>/. Your own repository, the mirror image of splent_feature_<name>/. This is where a model is edited and where a model that has never been published lives. Nothing ever overwrites it.
  2. The cache, .splent_cache/spls/<name>@<version or DOI>/. Derived data, mirroring .splent_cache/features/<org>/<feature>@<version>. Deleting it costs one download and nothing else. The leaf is keyed on the version when the pin records one and on the DOI otherwise, never on the name alone, so two products pinning two versions never share a directory.
  3. UVLHub, by DOI. Whatever comes down is written into the cache, so the next resolution and every one after it works offline.

The name alone cannot be turned into a download, so the product records the DOI next to it in its own pyproject.toml under [tool.splent.spl_model]. See spl:pin. With that, deriving a product needs the product’s own repository and UVLHub, and never the marketplace.


Reading and writing are not symmetric

Direction Who it goes through What you need
Reading, spl:fetch UVLHub directly, by DOI Nothing. No account
Writing, spl:publish The marketplace, which holds the only UVLHub key splent login

You never generate a UVLHub API key.


Table of contents


Back to top

splent. Distributed by an LGPL license v3. Contact us: drorganvidez@us.es