SPLed
Software Product Line Engineering Demonstrator - Exemplary SPL repo containing simple examples how to build and test an LED product
Install / Use
/learn @avengineers/SPLedREADME
SPLED: Software Product Line Engineering Demo

This demo repository contains a tiny but fully fledged SPL for SW development. It is capable of holding a set of software modules that are differently used and configured among the variants. Each variant creates its own binaries.
- artifacts are archived under Github Actions (or locally inside the
build/<variant>/(prod|test)directory)
Start developing
For installing the dependencies run:
.\build.ps1 -install
It is recommended to run the install command every time you switch between different branches, because dependencies and their versions might have been updated.
To build a variant from the command line run:
.\build.ps1 -build
It is recommended to start VS Code using the build.ps1 script to make sure all dependencies and environment variables are properly configured.
.\build.ps1 -startVSCode
Testing & Quality Gates
Tests are executed using pytest with a two-dimensional marker strategy combining type markers (WHAT to test) and gate markers (WHEN to test). The CI pipeline automatically selects the right quality gate based on the build context.
For the full testing strategy, marker definitions, and the gate assignment matrix, see Testing Strategy.
# Run all tests for a specific gate
.\build.ps1 -selftests -marker "gate_develop_pr"
# Filter by variant
.\build.ps1 -selftests -filter "Disco" -marker "gate_develop_push"
Developer Guide
For more information about the architecture, workflows, and conventions, see AGENTS.md. This guide covers:
- Critical developer workflows (environment setup, building, testing)
- SPL-specific CMake patterns and KConfig feature system
- VS Code CMake extension configuration
- Component structure and integration points
