Marketplace

The SPLENT Marketplace is how features and product lines are discovered, composed and consumed across the ecosystem — a public catalog at marketplace.splent.io (deployment in progress), the same data behind feature:search and feature:info in the CLI, and a UVL configurator that turns a feature selection into the exact splent commands that build a product.


The philosophy

The whole marketplace stands on one rule: the index is a regenerable cache, never a second source of truth.

  • Everything is derived. What the marketplace knows about a feature comes from the feature’s own auto-generated [tool.splent.contract] in pyproject.toml, read at its latest released tag. What it knows about product lines comes from the SPL catalog’s UVL variability models. Nothing is typed into the marketplace by hand.
  • Publishing is releasing. feature:release bumps the version, regenerates the contract, tags the repo and uploads to GitHub/PyPI. The tag IS the publication — there is no upload form, no login, and no publish API.
  • If the index is stale, wrong or lost: rebuild it. A single command, marketplace:index, regenerates the entire index.json from the sources of truth. Nothing is ever edited in place.
  • No data server. The published index is a static index.json built by CI in splent-io/splent_index and served from GitHub Pages. The web catalog, the configurator and the CLI all read that same file — there is no database and no API backend to operate, scale or breach.

The ecosystem at a glance

feature code ──▶ [tool.splent.contract] ──▶ feature:release (git tag + PyPI)
   (pyproject.toml, auto-generated)                  │
                                                     ▼
splent_catalog (UVL models) ──────────▶ marketplace:index (CI, splent_index)
        ▲      │                                     │
 spl:publish   │ spl:fetch                           ▼
        │      ▼                                index.json  (static, cached)
      UVLHub (remote source                     │         │
      of truth for .uvl files)                  ▼         ▼
                                        CLI (feature:      web catalog +
                                        search/info)       configurator
                                                     │
                                                     ▼
                                        splent commands ──▶ your product
                                        (feature:install / feature:add,
                                         product:resolve, product:derive)

The UVL models close their own loop with UVLHub: spl:publish uploads a line’s model and records its DOI, spl:fetch brings it back — the .uvl files are not tracked in git.

In this section

For the command reference, see the Marketplace commands section of the CLI docs.


Table of contents


Back to top

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