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]inpyproject.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:releasebumps 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 entireindex.jsonfrom the sources of truth. Nothing is ever edited in place. - No data server. The published index is a static
index.jsonbuilt by CI insplent-io/splent_indexand 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
- Browsing the catalog — the web catalog: search, filters, feature sheets and product lines
- The configurator — pick a line, select features with live UVL validation, copy the commands
- Installing features — consuming the marketplace from the CLI
- Publishing your feature — how third parties release, get listed and publish their UVL models
- Architecture — the index schema, the CI pipeline and the dependency model, for contributors
For the command reference, see the Marketplace commands section of the CLI docs.