Bijlage C: Tooling en ontwikkelomgeving¶
Overzicht¶
| Tool | Versie | Doel | Installatie |
|---|---|---|---|
| go-task | 3.x | Task-runner | brew install go-task |
| crunch_uml | latest | Model import/export | pip install crunch_uml |
| MkDocs Material | latest | Documentatiesite | pip install mkdocs-material |
| mike | latest | Versioned documentatie | pip install mike |
| jq | latest | JSON-processor | brew install jq |
| drawio desktop | latest | Diagram-export naar SVG (optioneel) | brew install --cask drawio |
| Python | 3.9+ | Runtime | python.org |
Taskfile¶
Alle taken worden aangestuurd via de Taskfile.yml in de repository-root:
# Controleer of alle tools geïnstalleerd zijn
task prepare:check-tools
# Bekijk alle beschikbare taken
task --list
Taken per fase¶
| Fase | Commando | Beschrijving |
|---|---|---|
| Prepare | task prepare:check-tools |
Controleer vereiste tools |
| Prepare | task prepare:check-vars |
Valideer versie-instellingen |
| Import | task import:model |
QEA-model importeren |
| Import | task import:previous |
Vorige versie importeren |
| Generate | task generate:docs |
Markdown documentatie genereren |
| Generate | task generate:lod |
Linked Data (TTL) genereren |
| Generate | task generate:diff |
Verschilrapport genereren |
| Generate | task generate:diagrams |
.drawio-bestanden naar SVG exporteren |
| Build | task build:validate |
Docs valideren (strict mode) |
| Build | task build:site |
MkDocs site bouwen |
| Build | task build:serve |
Lokale dev-server starten (snelle preview) |
| Publish | task publish:local |
Lokaal deployen via mike |
| Publish | task publish:github |
Publiceren naar GitHub Pages |
task full-deploy |
Volledige deployment |
Afhankelijkheden tussen taken¶
De taken zijn via deps met elkaar verbonden, zodat elke fase automatisch doet wat nodig is. De belangrijkste keten:
prepare:check-tools ─┐
prepare:check-vars ──┴─► import:model ─┬─► generate:docs ─────┐
├─► generate:lod ──────┤
└─► import:previous ──► generate:diff ─┤
├─► publish:local ─► publish:github
generate:diagrams ─────────────────────────────────────────────────────────────┘
│
build:validate / build:site ◄───────────────────────┘
Concreet betekent dit dat je in de praktijk bijna altijd met één commando toekunt:
task publish:localdraait automatisch allegenerate:*-taken en daarmee ookimport:modelenimport:previous.task build:validateentask build:sitetrekkengenerate:docsengenerate:diagramsmee.task build:serveheeft bewust géén deps voor een snelle dev-loop; draai zelftask generate:docsoftask generate:diagramsals de bronbestanden zijn gewijzigd.task full-deployis nu een dunne alias voorpublish:local; de orkestratie zit in de dependency-graaf.task generate:diagramsdraait alleen wanneer een.drawio-bestand nieuwer is dan zijn.svg(run: when_changed), dus herhaald aanroepen is goedkoop.
Configuratie¶
De configuratie staat in .env in de repository-root:
| Variabele | Beschrijving |
|---|---|
VERSION |
Huidige versie (bijv. v0.4) |
PREVIOUS_VERSION |
Vorige versie (voor diff) |
GBO_FILE |
Naam van het QEA-bestand |
LOD_FILE |
Naam van het Linked Data-bestand |
LINKED_DATA_NS |
Basis-namespace voor Linked Data |
ROOT_NODE_GBO |
Root package GUID in Enterprise Architect |
Optionele tools¶
| Tool | Doel |
|---|---|
Apache Jena (riot) |
RDF/Turtle validatie |
| Protege | Ontologie-editor en reasoner |
| OOPS! | Ontology Pitfall Scanner |
| Enterprise Architect | UML-modellering (QEA-bestanden) |