Dokumentation und Arbeitspakete angelegt
This commit is contained in:
86
docs/arbeitspakete/m1/AP09-altlogik-einfrieren.md
Normal file
86
docs/arbeitspakete/m1/AP09-altlogik-einfrieren.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# AP09 – Altlogik aus M1 entkoppeln (Parser/Validator einfrieren)
|
||||
|
||||
## Ziel
|
||||
|
||||
Die **bereits vorhandene Parser- und Validator-Logik** aus der früheren Implementierung (vor dieser M1-Planung) wird **nicht gelöscht**, aber sauber **entkoppelt** vom aktiven M1-Lauf. Sie wird als „Vorbau für M3 und folgende" explizit markiert und ist während M1 **nicht** Bestandteil der aktiven Verarbeitungskette.
|
||||
|
||||
Hintergrund: Der ursprüngliche Stand im Repository enthält bereits `DefaultInputFileParser`, `DefaultSegmentLineTokenizer`, `DefaultStructureValidator`, `DefaultFieldValidator`, `DefaultInputFileValidator` und `validation.model.ValidationResult`. Das ist wertvoll und darf nicht verloren gehen — gehört aber fachlich in M3 (Parser), M5 (Feldregeln) und M6 (Beziehungen), nicht in M1.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- AP03 (Migration), AP05 (neues Befundmodell), AP06 (neuer Bootstrap/CLI)
|
||||
|
||||
## Scope IN
|
||||
|
||||
### Einfrieren statt Löschen
|
||||
- Die bestehenden Klassen bleiben **vollständig erhalten**, inklusive Tests
|
||||
- Sie werden in ein klar erkennbares Unterpaket verschoben, z.B.:
|
||||
```
|
||||
de.gecheckt.asv.legacy.parser
|
||||
de.gecheckt.asv.legacy.validation
|
||||
de.gecheckt.asv.legacy.model
|
||||
```
|
||||
oder alternativ:
|
||||
```
|
||||
de.gecheckt.asv.application.preview
|
||||
```
|
||||
Die Entscheidung zwischen `legacy` und `preview` wird im Bericht dokumentiert und begründet. Empfehlung: **`preview`**, weil „legacy" suggeriert, dass etwas alt und zu entsorgen ist — tatsächlich wird der Code in M3/M5/M6 weiterverwendet.
|
||||
- Jedes Paket bekommt ein `package-info.java` mit deutlichem Hinweis:
|
||||
```
|
||||
Diese Klassen stammen aus einer früheren Implementierung und sind
|
||||
für die Meilensteine M3 bis M6 vorgesehen. Sie sind in M1 nicht Teil
|
||||
der aktiven Validierungskette. Änderungen an diesen Klassen während
|
||||
M1 sind zu vermeiden.
|
||||
```
|
||||
|
||||
### Entkopplung vom Lauf
|
||||
- `CliRunner` und `Bootstrap` dürfen die Preview-Klassen **nicht** aufrufen
|
||||
- der aktive M1-Lauf verwendet ausschließlich den Dummy-Pfad aus AP06 (Datei einlesen, leeren `ValidationReport` erzeugen)
|
||||
- die alten Tests der Preview-Klassen laufen **weiterhin grün mit**, damit der Code nicht verrottet
|
||||
- `validation.model.ValidationResult` (alt) bleibt im Preview-Paket und wird **nicht** mit dem neuen `ValidationReport` aus AP05 verwechselt
|
||||
|
||||
### Saubere Kennzeichnung
|
||||
- In `README.md` des Repos (falls vorhanden, sonst anlegen) ein kurzer Abschnitt „Preview-Code" mit Verweis auf `docs/arbeitspakete/m1/AP09-altlogik-einfrieren.md`
|
||||
- Kein `@Deprecated`! Deprecated würde bedeuten „wird entfernt" — das Gegenteil ist der Fall.
|
||||
|
||||
## Scope OUT
|
||||
|
||||
- Weiterentwicklung der Preview-Klassen
|
||||
- Änderung der Preview-Tests (außer notwendige Import-Anpassungen durch den Package-Umzug)
|
||||
- Integration der Preview-Klassen in die neue `domain.finding`-Struktur (das ist explizit M3+)
|
||||
- Löschung von Preview-Klassen, auch wenn sie wie Duplikate wirken
|
||||
|
||||
## Schritte
|
||||
|
||||
1. Branch `m1/ap09-preview-einfrieren`
|
||||
2. Zielpaket wählen (`preview` empfohlen) und im Bericht begründen
|
||||
3. Alle Parser-Klassen verschieben
|
||||
4. Alle Validator-Klassen verschieben
|
||||
5. `validation.model.ValidationResult` und `validation.model.*` mit verschieben
|
||||
6. Tests entsprechend verschieben; Imports anpassen
|
||||
7. `CliRunner`/`Bootstrap` auf Preview-Imports prüfen — **darf keine haben**, sonst entkoppeln
|
||||
8. `package-info.java` mit Warnhinweis in jedem Preview-Unterpaket anlegen
|
||||
9. README-Abschnitt „Preview-Code" ergänzen
|
||||
10. `mvn clean verify` grün bekommen (alle Tests der Preview-Klassen laufen weiter mit)
|
||||
11. Commit `M1-AP09: Alt-Parser und Alt-Validator nach preview-Paket, vom M1-Lauf entkoppelt`
|
||||
12. Abschlussbericht schreiben
|
||||
|
||||
## Abnahmekriterien
|
||||
|
||||
- alle ursprünglich vorhandenen Parser- und Validator-Klassen liegen im Preview-Paket
|
||||
- alle zugehörigen Tests laufen weiterhin grün
|
||||
- `grep -rn "de.gecheckt.asv.preview" src/main/java/de/gecheckt/asv/adapter src/main/java/de/gecheckt/asv/bootstrap src/main/java/de/gecheckt/asv/application` ist **leer** (keine Referenzen aus dem aktiven Code)
|
||||
- `package-info.java` mit Warnhinweis in jedem Preview-Unterpaket
|
||||
- README enthält Abschnitt „Preview-Code"
|
||||
- keine Klasse wurde gelöscht (`git log --diff-filter=D` für diesen Commit zeigt nur Verschiebungen)
|
||||
- `mvn clean verify` ist grün
|
||||
- Abschlussbericht liegt vor
|
||||
|
||||
## Rest-Risiken und offene Punkte
|
||||
|
||||
- Bei Wiederaufnahme in M3 wird zu klären sein, wie der Preview-Code an das neue Befundmodell angebunden wird. Das ist explizit M3-Aufgabe, nicht M1.
|
||||
- Falls die Preview-Tests beim Package-Umzug brechen (wegen relativer Ressourcenpfade o.ä.), müssen sie einmalig angepasst werden. Das ist kein Scope-Verstoß, sondern Teil des Umzugs.
|
||||
|
||||
## Bericht
|
||||
|
||||
`docs/arbeitspakete/m1/berichte/AP09-bericht.md` nach `templates/ap-bericht.md`.
|
||||
Reference in New Issue
Block a user