Installing features

Use the marketplace from the terminal. Search the index, inspect a contract and install into the active product.


Table of contents

  1. The three commands
  2. Where the index comes from
  3. Dev and prod
  4. Private features

The three commands

Command What it does
feature:search Searches the index by text, category, archetype, tag, or what a feature provides or requires. Instant and offline once an index is available
feature:info Shows a feature’s contract card (provides, requires, used by, PyPI state) without cloning it, with the install command for the active product
feature:install Clones, registers, configures and starts the feature in the active product, resolving hard dependencies recursively
splent feature:search --requires auth
splent feature:info signup
splent feature:install splent-io/splent_feature_signup

Where the index comes from

The CLI resolves the index local-first.

  1. The workspace copy at .splent_cache/marketplace/index.json.
  2. The URL in SPLENT_INDEX_URL, when set.

    SPLENT_INDEX_URL=https://git.splent.io/splent-io/splent_index/raw/branch/main/index.json
    
  3. The live forge. feature:info reads a feature’s pyproject.toml at its latest tag whenever the index has no entry for it. feature:search goes live only when there is no index at all. It then lists the organisation’s repositories (splent-io on git.splent.io by default) and ignores filters such as --requires and --category, which need an index.

Build the local copy whenever you want. By default marketplace:index reads every feature contract at its latest tag on the forge and the product lines from the marketplace, so it needs the network. --local indexes the editable features and the SPL models the workspace knows instead. Features are read offline, and an SPL model missing from disk is downloaded by DOI when possible and skipped with a warning otherwise.

splent marketplace:index
splent marketplace:index --local

See marketplace:index for every source and option.

Dev and prod

Environment Installs from
Development Git tags on the forge. feature:install fetches the released tags, caches the chosen version under .splent_cache/ and registers it in the product, or clones it editable at the workspace root. PyPI is not involved
Production PyPI, with the git tag as fallback. product:build pip installs every pinned feature from PyPI when the release is there and from its tag on the forge otherwise. Its pre-flight fails only when a feature has no version or a pinned version is on neither channel, and reports a feature found only as a tag

Releasing to PyPI is part of feature:release.

Private features

Features in private repositories on the forge use the same flow. Set SPLENT_FORGE_USER (your forge username) and SPLENT_FORGE_TOKEN in the workspace .env so feature:install, feature:clone and the live search can authenticate. A token also raises the API rate limit for public repositories. The CLI reads GITHUB_USER and GITHUB_TOKEN when the SPLENT_FORGE_* variables are unset. See Tokens setup.

A private feature does not appear in the public index. Install it by its org/repo name, or build an index that covers your organisation too.

splent marketplace:index --org splent-io --org my-company

Name splent-io as well. An explicit --org replaces the default organisation and the result overwrites the workspace index, so --org my-company alone would hide every official feature from feature:search. To build a private index without touching the workspace one, write it elsewhere with --output.


Back to top

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