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:
+104
-104
@@ -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 |
|
||||
|------|------|---------|
|
||||
| A–B | gcov/lcov | Statement + Branch Coverage |
|
||||
| C–D | MCDC-Star | MC/DC Coverage |
|
||||
| ASIL | Tool | Method |
|
||||
|------|-----------|-------------------------------|
|
||||
| A–B | gcov/lcov | Statement + branch coverage |
|
||||
| C–D | 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 |
|
||||
|
||||
Reference in New Issue
Block a user