Files
playground/docs/adr/0001-toolchain.md
T
paulhorn da43859b97 feat: Projektstruktur nach P1204R0
Layout, Build und Konventionen analog zu mydb und cxx_scaffold_cli:
Header und Quellen nebeneinander in playground/, Unit-Tests als
.test.c/.test.cpp daneben, Integrationstests in tests/.

Geruest-Module counter (C, Unity) und notebook (C++, doctest) zeigen
jede Regel einmal an lauffaehigem Code.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 16:07:03 +02:00

1.4 KiB

ADR 0001 — Toolchain und Projektstruktur

  • Status: akzeptiert
  • Datum: 2026-08-30

Kontext

playground soll ein Ort zum Ausprobieren sein, aber kein Ort, an dem jedes Mal neu über Verzeichnisnamen, Include-Form und Testablage entschieden wird. Die bestehenden Projekte mydb und cxx_scaffold_cli haben diese Fragen bereits beantwortet.

Entscheidung

Struktur nach P1204R0, Build- und Stilkonfiguration wörtlich von mydb übernommen (.clang-format, .clang-tidy, .clangd, .editorconfig, CMakePresets.json, cmake/), lediglich das Makro- und Target-Präfix von MYDB_/mydb_ auf PLAYGROUND_/playground_ umgestellt.

Die vendorten Abhängigkeiten (Unity 2.7.0, doctest 2.5.3) wurden aus mydb/third_party/ kopiert statt neu geholt — damit sind die Versionen über alle Projekte hinweg identisch.

Konsequenzen

Ein Wechsel zwischen den Projekten kostet keine Umgewöhnung, und ein hier erprobtes Modul lässt sich unverändert in ein anderes Projekt heben.

Der Preis ist Duplikation: eine Änderung am Hausstandard muss in jedem Repo einzeln nachgezogen werden. Das war schon vor diesem Repo so; cxx_scaffold_cli ist der Ort, an dem eine gemeinsame Vorlage entstehen müsste.

Offen bleibt, dass docs/CONVENTIONS.md in mydb ein check_style.sh und ein tools/vendor.sh beschreibt, die in keinem der Repos existieren. In der playground-Fassung sind diese Verweise entfernt.