product:validate

Validate the product: configuration, compatibility, and dependencies.


Table of contents

  1. Usage
  2. Description
  3. Example output
  4. Options
    1. Running a single phase
  5. When to use
  6. See also

Usage

splent product:validate [--pyproject PATH] [--print-config] [--features "feat1,feat2,..."]

Description

Runs three validation phases and gives a single verdict:

Phase What it checks Fails when
1. Configuration (UVL) Is the feature selection satisfiable? Mandatory features missing, mutual exclusions violated, cross-tree constraints broken
2. Compatibility (contracts) Route, blueprint, model, or service collisions between features Two features register the same route or blueprint name
3. Dependencies (imports) Do Python imports in feature code respect UVL constraints? A feature imports another without a UVL dependency declaration

All three phases must pass for the product to be valid.


Example output

  Validating my_first_app...

  1. Configuration (UVL)
     ✅ Feature selection is satisfiable (9 features)

  2. Compatibility (contracts)
     ✅ No collisions detected
     ℹ️  3 informational note(s)

  3. Dependencies (imports)
     ✅ All imports respect UVL constraints (12 checks)

  ✅ Product is valid.

Options

Option Description
--only Run a single phase: config (UVL SAT), compat (contracts), or deps (imports).
--pyproject Override the pyproject.toml path.
--print-config Print the resolved feature configuration (0/1 assignment).
--features Validate a comma-separated list of features instead of reading from pyproject.toml.

Running a single phase

splent product:validate --only config   # Only UVL satisfiability
splent product:validate --only compat   # Only contract compatibility
splent product:validate --only deps     # Only import constraints

When to use

  • After adding or removing features from a product
  • Before running product:derive or product:build (both run this as pre-flight)
  • In CI/CD pipelines to catch configuration issues early

See also


Back to top

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