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)
For installing the dependencies run:
.\build.ps1 -installIt 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 -buildIt is recommended to start VS Code using the build.ps1 script to make sure all dependencies and environment variables are properly configured.
.\build.ps1 -startVSCodeTests 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"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
