Files
dev-process/toolstack/toolstack.md
T
Stefan Lohmaier 247b8311f3 refactor(i18n): rename vorlagen/ -> templates/, *-vorlage -> *-template
Final German naming cleanup in dev-process:
- vorlagen/                            -> templates/
- vorlagen-word/                       -> templates-word/
- tools/generate_word_vorlagen.sh      -> tools/generate_word_templates.sh
- *-vorlage.md / *-vorlage.docx        -> *-template.md / *-template.docx
- Review-Protokoll-vorlage.*           -> Review-Minutes-template.*
- angebot-vorlage.*                    -> quote-template.*
- angebot-beispiel.html                -> quote-example.html

All references in README.md, toolstack/toolstack.md, build_word_template.py,
and generate_word_templates.sh updated. The master Word style template
(slohmaier-doc-template.docx) was already English-named.

The dev-process repo is now fully English in both content and structure.
2026-05-12 12:09:06 -07:00

6.5 KiB
Raw Blame History

Toolstack slohmaier Dev Process

Complete open-source toolstack for ASPICE 4.0 and ISO 26262-compliant embedded development.


Overview

Category Tool Notes
Source Control Gitea (self-hosted) tea CLI for command line, VS Code integration
Requirements Doorstop (Markdown mode) Requirements as .md with embedded PlantUML
Architecture design Doorstop + PlantUML SA / SWA / SWD as .md with mapping via links: (ASPICE SYS.3 / SWE.2 / SWE.3)
Diagrams PlantUML Embedded in Markdown, rendered by Gitea and VS Code
MISRA Cppcheck + MISRA addon Free, deviation permits/records via Doorstop
Coverage gcov/lcov Up to ASIL-B; MCDC-Star for ASIL-C/D
Unit tests CppUTest or Google Test Project-dependent
Static analysis Cppcheck, clang-tidy Cppcheck also for MISRA
Build SCons, CMake Project-dependent
Compiler GCC ARM Own qualification; Ferrocene for Rust
CI Gitea Actions Pipeline in the monorepo under .gitea/workflows/
Open-source analysis ScanCode, FOSSology License compliance
AI assistance Continue.dev + Ollama VS Code extension, local, no cloud privacy issue
Document export pandoc Markdown to PDF
Editor VS Code Primary editor for everything

Source Control: Gitea

Gitea is a self-hosted Git platform. Lightweight, runs on any hardware.

  • Web UI for PRs, reviews, issues
  • Gitea Actions for CI/CD (compatible with GitHub Actions syntax)
  • PlantUML rendering in Markdown (via PlantUML server)
  • tea CLI for command-line workflows
  • Branch protection and approval workflows

Setup guide: gitea-aspice-setup.md


Requirements: Doorstop (Markdown mode)

Doorstop manages requirements as .md files with YAML frontmatter. No proprietary format — everything readable in any editor.

Advantages:

  • Requirements are Markdown, versioned in Git
  • PlantUML diagrams embedded directly in the requirement
  • Traceability check via CLI: doorstop check
  • Report generation: doorstop publish all docs/traceability/
  • Gitea renders everything natively (Markdown + PlantUML)

Requirement format:

---
active: true
level: 1.0
links:
  - SYS-001: abc123
---

# SWE-001: Title

Description with embedded PlantUML.

Architecture design: Doorstop + PlantUML

Architecture elements are also Doorstop documents, only with their own prefixes:

Prefix Layer ASPICE Directory
SA System Architectural Design SYS.3 arch/sys/
SWA Software Architectural Design SWE.2 arch/swe/
SWD Software Detailed Design SWE.3 arch/swd/

Mapping to requirements via links: in the YAML frontmatter — identical to requirements linking. Doorstop verifies in both directions: no orphan requirements, no orphan architecture elements.

Verification in CI:

doorstop check                              # bidirectional, fails on gaps
doorstop publish all docs/traceability/     # generate traceability matrix

Templates under dev-process/templates/:

  • SA-template.md — System Architecture Element
  • SWA-template.md — Software Architecture Element

SWD is only mandatory for ASIL-C/D; for QM/A/B, code + header comments are sufficient.


Diagrams: PlantUML

PlantUML diagrams are embedded directly in Markdown. No separate tool, no export.

Rendering:

  • Gitea: automatically via the PlantUML server (configuration in app.ini)
  • VS Code: PlantUML extension (jebbs.plantuml) for live preview
  • Export: pandoc with PlantUML filter for PDF

MISRA: Cppcheck + MISRA addon

Cppcheck with the MISRA addon checks C code for MISRA compliance. Free, runs in the CI pipeline.

cppcheck --addon=misra --error-exitcode=1 src/

Deviation permits and records are kept as Markdown files in the misra/ directory. Templates under dev-process/templates/.


Coverage

ASIL Tool Method
AB gcov/lcov Statement + branch coverage
CD MCDC-Star MC/DC coverage

Coverage reports are generated in CI and stored under tests/results/.


Unit tests

CppUTest or Google Test, depending on project requirements.

  • Tests under tests/unit/
  • Results under tests/results/
  • CI runs tests on every push

Static analysis

Tool Purpose
Cppcheck General static analysis + MISRA
clang-tidy Modernisation, style, bugs

Both run in the CI pipeline.


Build: SCons / CMake

Either SCons or CMake, depending on the project. Cross-compilation for ARM targets.


Compiler

Compiler Language Qualification
GCC ARM C/C++ Own qualification per ISO 26262
Ferrocene Rust Certified Rust compiler for safety

CI: Gitea Actions

Pipeline file: .gitea/workflows/validate.yml

Steps on every push/PR:

  1. Doorstop consistency check
  2. MISRA check
  3. Unit tests
  4. Coverage
  5. Traceability report generation

Syntax compatible with GitHub Actions.


Open-source analysis

Tool Purpose
ScanCode License detection in source code
FOSSology License compliance analysis

Important for automotive: license compliance must be documented.


AI assistance: Continue.dev + Ollama

Continue.dev as a VS Code extension with Ollama as a local backend.

  • No cloud service, all data stays local
  • No privacy issue with customer data
  • Assistance with code writing, reviews, documentation

Document export: pandoc

pandoc document.md -o document.pdf --pdf-engine=xelatex

All documents in Markdown, export to PDF for customers and audits.


VS Code extensions

Extension Purpose
PlantUML (jebbs.plantuml) PlantUML preview
Markdown All in One Markdown editing
GitLens Git history, blame
YAML (redhat.vscode-yaml) YAML validation
Continue.dev AI with Ollama