Getting started

Install the SPLENT development environment.


Table of contents

  1. System requirements
  2. Configure Git
  3. Create the workspace
  4. Clone repositories
  5. Start Docker
  6. Check the installation
  7. Next steps

System requirements

SPLENT runs on Linux and macOS. On Windows, work inside WSL and run every command in its Linux terminal, not in PowerShell.

You need Git, Docker and GNU Make.

Give Docker at least 4 CPUs and 8 GB of memory, and keep about 20 GB of free disk for images and volumes. A running product is several containers at once (the CLI, the web app, MariaDB, Redis and a Selenium grid), and a smaller Docker VM tends to make product:derive stop halfway.

Docker Where to set the resources
Docker Desktop (macOS, Windows) Settings, then Resources
colima (macOS) colima start --cpu 4 --memory 8, after colima stop if it is running
WSL (Windows) The memory and processors keys of .wslconfig in your Windows user folder
Docker Engine (Linux) Nothing to set, it uses the machine’s resources

On Windows, Docker Desktop must be integrated with WSL. The per-platform guides cover each step.

Every SPLENT repository is public, so cloning works over HTTPS without an account. You need an SSH key registered on git.splent.io, or a token, only to push and release your own features.


Configure Git

The CLI container bind-mounts your ~/.gitconfig and ~/.ssh from the host. If ~/.gitconfig does not exist, Docker creates it as an empty directory, which breaks Git inside the container and makes feature:clone and feature:install fail.

Create the file and set your identity before make setup. The first line removes ~/.gitconfig only when it is a directory.

[ -d ~/.gitconfig ] && rm -rf ~/.gitconfig
touch ~/.gitconfig
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

Check that it is a regular file, not a directory.

ls -l ~/.gitconfig

make preflight checks ~/.gitconfig and ~/.ssh for you, and make setup and make cli run it first.


Create the workspace

The workspace is the directory where the framework, the CLI and your products live side by side. You develop products there. A server that only runs a finished product needs none of it, just Docker and a clone of the product (see Deploying from a clone).

mkdir splent_workspace
cd splent_workspace

Clone repositories

git clone https://git.splent.io/splent-io/splent_framework.git
git clone https://git.splent.io/splent-io/splent_cli.git

If you have SSH access, clone via SSH instead.

git clone ssh://git@git.splent.io:2223/splent-io/splent_framework.git
git clone ssh://git@git.splent.io:2223/splent-io/splent_cli.git

Your workspace now looks like this.

splent_workspace/
  splent_framework/       # Runtime core
  splent_cli/             # Command-line interface

Your products will sit next to them. Each product records in its pyproject.toml the DOI of the variability model it derives from, and the CLI downloads that model once from UVLHub into .splent_cache/spls/. The CLI already knows sample_splent_spl, the product line the tutorials use.

Features are cloned from git.splent.io, over SSH when your key is registered there and over HTTPS otherwise. There is nothing to configure.


Start Docker

cd splent_cli
make setup

This builds the CLI container and drops you into its shell.

(detached) /workspace$

The first run takes several minutes. It builds the CLI image from scratch (Python 3.13, Java and PlantUML, Node.js, the Docker CLI and every dependency). Later runs are cached and start almost at once. If the terminal looks idle, the build is still working.

Every command from here on runs inside this container.


Check the installation

splent version
SPLENT workspace snapshot
────────────────────────────────────────────────────────
  CLI            1.34.1
  Framework      1.18.2      ✔ compatible
  Python         3.13.16
  Product        (not selected)
────────────────────────────────────────────────────────
  Fingerprint  <hash>
splent spl:list
  SPL models (1)

  sample_splent_spl  not fetched  v4
                     Sample SPLENT app, the product line the tutorials use

not fetched is expected. The model is downloaded from UVLHub the first time a product uses it, in Tutorial 1.

Type exit to leave the container, and run make cli from splent_cli to come back.


Next steps

Go to the Tutorials and create your first product.


Back to top

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