feature:impact

Introduction

feature:impact shows what a feature depends on and what depends on it, directly and transitively, read from your product’s UVL constraints. Run it before you remove a feature, to see what would break, or before you add one, to see what it pulls in.

splent feature:impact notes
  feature:impact — notes
  Product: my_product
  UVL:     my_spl.uvl

  Depends on
    (none) — this feature is independent

  Depended on by
    ← followers  (direct)
    ← notes_tags  (direct)
    ← reports  (direct)
      ← pdf_export  (transitive)

  Removing notes would break 4 feature(s).

A direct dependency is a constraint in the model, such as pdf_export => reports. A transitive one comes through the graph, as in pdf_export => reports => notes.


Checking that a feature is safe to remove

splent feature:impact pdf_export
  Depends on
      → notes  (transitive)
    → reports  (direct)

  Depended on by
    (none) — safe to remove

  Removing pdf_export has no impact on other features.

Nothing depends on pdf_export, so removing it breaks nothing. What it depends on stays in the product.


What it reads

Only the features your product declares take part, [tool.splent].features plus features_dev or features_prod as SPLENT_ENV says. With SPLENT_ENV unset only features is read, as at runtime. The product’s .env normally sets it.

The model is your product’s SPL model, read offline, from the working copy splent_spl_<name>/ first and then from .splent_cache/spls/<name>@<version>/. A product that sets [tool.splent.uvl].file reads <product>/uvl/<file>.


Reference

Argument Description
FEATURE_REF A short name (notes) or a package name (splent_feature_notes)
Message What to do
No UVL file found Fetch the model with spl:fetch
'<feature>' is not declared in this product. Check the name, and that SPLENT_ENV selects the list that declares it

Both exit 1.


Requirements

  • A selected product (SPLENT_APP).

See also


Back to top

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