ductus 0.2.0
ductus: ^0.2.0 copied to clipboard
Journey annotations and adapter CLI for Ductus — derive end-user documentation from your app's user journey, versioned with your code.
Changelog #
0.2.0 (unveröffentlicht) #
- build_runner-Builder
journey_builder(Weg D, DD §N): schreibt den Journey-Graphen alsductus_builder.g.jsonin den Projekt-Root des Zielpakets; viaauto_apply: dependentsautomatisch aktiv beidart run build_runner build. Import überpackage:ductus/builder.dart(FactoryductusJourneyBuilder) —package:ductus/ductus.dartbleibt frei von build/source_gen-Importen. Nicht zu verwechseln mitductus_graph.g.json, der Debug-Datei des Adapter-CLI. - Resolution nicht-literaler konstanter Annotation-Argumente (z. B.
title: MyConstants.title) über den resolved AST (source_genTypeChecker/ConstantReader); nicht konstant Auflösbares verhält sich wie beim parse-only-Adapter (gleiche Fehler- und Warnungsformate). - Paritäts-Garantie: Bei rein literalen Annotationen ist
ductus_builder.g.jsonbyte-identisch mit der stdout-Ausgabe des parse-only-Adapters — bis auf genau eine gewollte Ausnahme: das Artefakt trägt denmeta.adapters-Eintrag{"name": "dart-builder", "version": …}statt{"name": "dart", …}(Provenance, DD §N). - Builder-Optionen
deriveFrom/includein derbuild.yamldes Zielprojekts (gleiche Schlüssel und Defaults wie die--config-JSON des CLI);include-Muster ohne Treffer — z. B. außerhalb der build_runner-Target-Sources — erzeugen eine Warnung im Build-Log. - Adapter-CLI: neues Flag
--from-builder(Config-SchlüsselfromBuilder; das Flag gewinnt) — emittiertductus_builder.g.jsonnachschemaVersion-Prüfung auf stdout statt selbst zu scannen; fehlt die Datei, klarer Fehler mit Hinweis aufdart run build_runner build. - Neue dependencies
build/source_gen(Ranges empirisch ermittelt, siehe Kommentar in derpubspec.yaml); dev:build_runner/build_testfür die Builder-Tests.
0.1.0 #
- Journey-Annotationen
@JourneyScreen,@JourneyAction,@JourneyDecision,@JourneyFlow— reine Marker ohne Laufzeitverhalten und ohne Abhängigkeiten. - Buildfreie Kommentar-Konvention (
// @journey:screen id="…" …) als gleichwertige Alternative zu den Annotationen. - Automatische Ableitung aus
go_router(Routen → Screens,ShellRoute→ Flows,redirect:→ Decisions,context.go()/push()/…→ Transitions) undauto_route(@RoutePage()→ Screens) — best effort, feldweise durch manuelle Annotationen überschreibbar. - Adapter-CLI
dart run ductus:adapternach dem Ductus-Adapter-Vertrag (SPEC §7.1): parse-only viapackage:analyzer, das Zielprojekt braucht wederpub getnoch einen Build. - Kanonische, diff-stabile Graph-Ausgabe (
journey-graph.json-Form) auf stdout; Warnungen auf stderr, optionale Debug-Dateiductus_graph.g.json.