feat(i18n): toolstack.md + gitea-aspice-setup.md in English

Last German files in the dev-process repo translated:
- toolstack/toolstack.md: tool overview, categories, descriptions
- gitea-aspice-setup.md: complete setup guide for Gitea + ASPICE

dev-process repo is now fully in English.
This commit is contained in:
Stefan Lohmaier
2026-05-12 03:43:36 -07:00
parent d5cfec9e42
commit 54e7decd9c
2 changed files with 181 additions and 181 deletions
+104 -104
View File
@@ -1,57 +1,57 @@
# Toolstack slohmaier Dev Process
Kompletter Open-Source-Toolstack fuer ASPICE 4.0 und ISO 26262 konforme Embedded-Entwicklung.
Complete open-source toolstack for ASPICE 4.0 and ISO 26262-compliant embedded development.
---
## Uebersicht
## Overview
| Kategorie | Tool | Bemerkung |
|-----------|------|-----------|
| Source Control | Gitea (self-hosted) | `tea` CLI fuer Kommandozeile, VS Code Integration |
| Requirements | Doorstop (Markdown-Modus) | Requirements als `.md` mit PlantUML eingebettet |
| Architektur-Design | Doorstop + PlantUML | SA / SWA / SWD als `.md` mit Mapping per `links:` (ASPICE SYS.3 / SWE.2 / SWE.3) |
| Diagramme | PlantUML | Eingebettet in Markdown, gerendert von Gitea und VS Code |
| MISRA | Cppcheck + MISRA-Addon | Kostenlos, Deviation Permits/Records via Doorstop |
| Coverage | gcov/lcov | Bis ASIL-B; MCDC-Star fuer ASIL-C/D |
| Unit Tests | CppUTest oder Google Test | Je nach Projekt |
| Static Analysis | Cppcheck, clang-tidy | Cppcheck auch fuer MISRA |
| Build | SCons, CMake | Je nach Projekt |
| Compiler | GCC ARM | Eigene Qualifizierung; Ferrocene fuer Rust |
| CI | Gitea Actions | Pipeline im Monorepo unter `.gitea/workflows/` |
| Open Source Analyse | ScanCode, FOSSology | Lizenz-Compliance |
| KI-Unterstuetzung | Continue.dev + Ollama | VS Code Extension, lokal, kein Cloud-Datenschutzproblem |
| Dokumentenexport | pandoc | Markdown nach PDF |
| Editor | VS Code | Primaerer Editor fuer alles |
| 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 ist eine self-hosted Git-Plattform. Leichtgewichtig, laeuft auf jeder Hardware.
Gitea is a self-hosted Git platform. Lightweight, runs on any hardware.
- Web-UI fuer PRs, Reviews, Issues
- Gitea Actions fuer CI/CD (kompatibel mit GitHub Actions Syntax)
- PlantUML-Rendering in Markdown (per PlantUML-Server)
- `tea` CLI fuer Kommandozeilen-Workflows
- Branch Protection und Approval-Workflows
- 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-Anleitung: `gitea-aspice-setup.md`
Setup guide: `gitea-aspice-setup.md`
---
## Requirements: Doorstop (Markdown-Modus)
## Requirements: Doorstop (Markdown mode)
Doorstop verwaltet Requirements als `.md`-Dateien mit YAML-Frontmatter. Kein proprietaeres Format, alles lesbar in jedem Editor.
Doorstop manages requirements as `.md` files with YAML frontmatter. No proprietary format — everything readable in any editor.
**Vorteile:**
- Requirements sind Markdown, versioniert in Git
- PlantUML-Diagramme direkt im Requirement eingebettet
- Traceability-Pruefung per CLI: `doorstop check`
- Report-Generierung: `doorstop publish all docs/traceability/`
- Gitea rendert alles direkt (Markdown + PlantUML)
**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:**
**Requirement format:**
```markdown
---
@@ -61,162 +61,162 @@ links:
- SYS-001: abc123
---
# SWE-001: Titel
# SWE-001: Title
Beschreibung mit eingebettetem PlantUML.
Description with embedded PlantUML.
```
---
## Architektur-Design: Doorstop + PlantUML
## Architecture design: Doorstop + PlantUML
Architektur-Elemente sind ebenfalls Doorstop-Dokumente, nur mit eigenen Prefixen:
Architecture elements are also Doorstop documents, only with their own prefixes:
| Prefix | Ebene | ASPICE | Verzeichnis |
| 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 auf Anforderungen** per `links:` im YAML-Frontmatter — identisch zur Requirements-Verlinkung. Doorstop verifiziert in beide Richtungen: keine verwaisten Anforderungen, keine verwaisten Architektur-Elemente.
**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.
**Verifikation in der CI:**
**Verification in CI:**
```bash
doorstop check # bidirektional, schlaegt fehl bei Luecken
doorstop publish all docs/traceability/ # Traceability-Matrix erzeugen
doorstop check # bidirectional, fails on gaps
doorstop publish all docs/traceability/ # generate traceability matrix
```
Vorlagen unter `dev-process/vorlagen/`:
Templates under `dev-process/vorlagen/`:
- `SA-vorlage.md` — System Architecture Element
- `SWA-vorlage.md` — Software Architecture Element
SWD wird nur fuer ASIL-C/D zwingend gefuehrt; fuer QM/A/B reichen Code + Header-Kommentare.
SWD is only mandatory for ASIL-C/D; for QM/A/B, code + header comments are sufficient.
---
## Diagramme: PlantUML
## Diagrams: PlantUML
PlantUML-Diagramme werden direkt in Markdown eingebettet. Kein separates Tool, kein Export.
PlantUML diagrams are embedded directly in Markdown. No separate tool, no export.
**Rendering:**
- Gitea: Automatisch via PlantUML-Server (Konfiguration in `app.ini`)
- VS Code: PlantUML-Extension (jebbs.plantuml) fuer Live-Preview
- Export: pandoc mit PlantUML-Filter fuer PDF
- 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
## MISRA: Cppcheck + MISRA addon
Cppcheck mit MISRA-Addon prueft C-Code auf MISRA-Konformitaet. Kostenlos, laeuft in der CI-Pipeline.
Cppcheck with the MISRA addon checks C code for MISRA compliance. Free, runs in the CI pipeline.
```bash
cppcheck --addon=misra --error-exitcode=1 src/
```
Deviation Permits und Records werden als Markdown-Dateien im `misra/`-Verzeichnis verwaltet. Vorlagen unter `dev-process/vorlagen/`.
Deviation permits and records are kept as Markdown files in the `misra/` directory. Templates under `dev-process/vorlagen/`.
---
## Coverage
| ASIL | Tool | Methode |
|------|------|---------|
| AB | gcov/lcov | Statement + Branch Coverage |
| CD | MCDC-Star | MC/DC Coverage |
| ASIL | Tool | Method |
|------|-----------|-------------------------------|
| AB | gcov/lcov | Statement + branch coverage |
| CD | MCDC-Star | MC/DC coverage |
Coverage-Reports werden in der CI generiert und unter `tests/results/` abgelegt.
Coverage reports are generated in CI and stored under `tests/results/`.
---
## Unit Tests
## Unit tests
CppUTest oder Google Test, je nach Projektanforderung.
CppUTest or Google Test, depending on project requirements.
- Tests unter `tests/unit/`
- Ergebnisse unter `tests/results/`
- CI fuehrt Tests bei jedem Push aus
- Tests under `tests/unit/`
- Results under `tests/results/`
- CI runs tests on every push
---
## Static Analysis
## Static analysis
| Tool | Zweck |
|------|-------|
| Cppcheck | Allgemeine statische Analyse + MISRA |
| clang-tidy | Modernisierung, Stil, Bugs |
| Tool | Purpose |
|------------|----------------------------------------|
| Cppcheck | General static analysis + MISRA |
| clang-tidy | Modernisation, style, bugs |
Beide laufen in der CI-Pipeline.
Both run in the CI pipeline.
---
## Build: SCons / CMake
Je nach Projekt SCons oder CMake. Cross-Compilation fuer ARM-Targets.
Either SCons or CMake, depending on the project. Cross-compilation for ARM targets.
---
## Compiler
| Compiler | Sprache | Qualifizierung |
|----------|---------|----------------|
| GCC ARM | C/C++ | Eigene Qualifizierung nach ISO 26262 |
| Ferrocene | Rust | Zertifizierter Rust-Compiler fuer Safety |
| Compiler | Language | Qualification |
|-----------|----------|--------------------------------------------|
| GCC ARM | C/C++ | Own qualification per ISO 26262 |
| Ferrocene | Rust | Certified Rust compiler for safety |
---
## CI: Gitea Actions
Pipeline-Datei: `.gitea/workflows/validate.yml`
Pipeline file: `.gitea/workflows/validate.yml`
Schritte bei jedem Push/PR:
1. Doorstop-Konsistenz pruefen
2. MISRA-Check
3. Unit Tests
Steps on every push/PR:
1. Doorstop consistency check
2. MISRA check
3. Unit tests
4. Coverage
5. Traceability-Report generieren
5. Traceability report generation
Syntax kompatibel mit GitHub Actions.
Syntax compatible with GitHub Actions.
---
## Open Source Analyse
## Open-source analysis
| Tool | Zweck |
|------|-------|
| ScanCode | Lizenz-Erkennung in Quellcode |
| FOSSology | Lizenz-Compliance-Analyse |
| Tool | Purpose |
|-----------|----------------------------------|
| ScanCode | License detection in source code |
| FOSSology | License compliance analysis |
Wichtig fuer Automotive: Lizenz-Compliance muss dokumentiert sein.
Important for automotive: license compliance must be documented.
---
## KI-Unterstuetzung: Continue.dev + Ollama
## AI assistance: Continue.dev + Ollama
Continue.dev als VS Code Extension mit Ollama als lokalem Backend.
Continue.dev as a VS Code extension with Ollama as a local backend.
- Kein Cloud-Service, alle Daten bleiben lokal
- Kein Datenschutzproblem mit Kundendaten
- Unterstuetzung beim Code-Schreiben, Reviews, Dokumentation
- No cloud service, all data stays local
- No privacy issue with customer data
- Assistance with code writing, reviews, documentation
---
## Dokumentenexport: pandoc
## Document export: pandoc
```bash
pandoc dokument.md -o dokument.pdf --pdf-engine=xelatex
pandoc document.md -o document.pdf --pdf-engine=xelatex
```
Alle Dokumente in Markdown, Export nach PDF fuer Kunden und Audits.
All documents in Markdown, export to PDF for customers and audits.
---
## VS Code Extensions
## VS Code extensions
| Extension | Zweck |
|-----------|-------|
| PlantUML (jebbs.plantuml) | PlantUML-Preview |
| Markdown All in One | Markdown-Editing |
| GitLens | Git-History, Blame |
| YAML (redhat.vscode-yaml) | YAML-Validierung |
| Continue.dev | KI mit Ollama |
| 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 |