spl:create

Introduction

spl:create starts a new product line. It creates a working copy at the workspace root, next to your features, with a minimal UVL model you then grow with spl:add-feature.

splent spl:create my_spl
  SPL 'my_spl' created at /workspace/splent_spl_my
  Model  /workspace/splent_spl_my/my_spl.uvl
  Publish it with: splent spl:publish my_spl

The trailing _spl is dropped from the directory, so my_spl lives in splent_spl_my/. The working copy is yours and can be its own git repository.


What it creates

File Contents
my_spl.uvl The root feature alone, the smallest model UVL accepts
metadata.toml The name, an empty description, and the mirror and file with an empty DOI, concept DOI and version
.gitignore *.uvl.bak, the backups the editing commands leave
features
	my_spl

The model has no DOI yet, and everything works without one. spl:publish records it the first time you publish.


Changing a line that is already published

  SPL 'sample_splent_spl' is already published (DOI 10.5281/zenodo.23076870).
  To change it, download it and edit it in a working copy with splent spl:fetch sample_splent_spl and then splent spl:add-feature sample_splent_spl <feature>.

An empty working copy would win over the published model for every product of the line, so spl:create refuses a name that already has a DOI. Fetch the model and edit it instead. The first edit copies it into a working copy for you.


Reference

Naming

The name is the directory, the model’s root feature and its file name. It must match [a-z_][a-z0-9_]* and must not be a UVL keyword (namespace, features, imports, include, constraints, as, mandatory, optional, alternative, or, cardinality, true, false).

Errors

Each one exits 1 and creates nothing.

Message What to do
'<name>' is not a valid SPL name. ... Use lowercase letters, digits and underscores
SPL '<name>' already exists at <path> The working copy is there already. Edit it
SPL '<name>' is already published (DOI ...) Fetch it and edit it, as shown above

Requirements

  • Detached mode, with no product selected. A leading SPLENT_APP= runs one command detached and keeps your selection.

See also


Back to top

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