DMS-Modul-Grundgerüst als Unterordner im bestehenden nexarch-Monorepo (dms/), eigenes Go-Modul (gitea.perlbach24.de/scripte/nexarch/dms), getrennt von Core. App/Worker-Trennung nach paperless-ngx-Vorbild (lange Aufgaben blockieren nie eine Anfrage): cmd/app (HTTP, /healthz), cmd/worker (Hintergrund-Dienst-Stub), internal/shared. golangci-lint (govet/staticcheck/errcheck/unused/ineffassign/gofmt/ goimports) + Makefile-Targets (install/run/lint/fmt/test). Auf 192.168.1.131 verifiziert: build/fmt/lint/test clean, absichtlich eingefuegter Lint-Verstoss bricht den Build wie gefordert ab (Exit 2), make run startet App+Worker und /healthz antwortet innerhalb 2s. Siehe dms/docs/FDN-01-PRUEFPROTOKOLL.md fuer alle Pruefungsergebnisse. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HhgFcLS8tYMhDJpP74C6AQ
43 lines
2.2 KiB
Markdown
43 lines
2.2 KiB
Markdown
# FDN-01 – Prüfprotokoll: Repository & Projektgerüst
|
||
|
||
Welle 1, keine Vorbedingungen. Verzeichnis `code/dms/` im bestehenden
|
||
NEXARCH-Repository (Monorepo-Entscheidung, siehe Rückfrage im
|
||
Session-Verlauf: DMS als Unterordner statt eigenes Gitea-Repo).
|
||
|
||
## Struktur
|
||
|
||
- `cmd/app` — Anfrage-Dienst (HTTP, Port 8090 per Default)
|
||
- `cmd/worker` — Hintergrund-Dienst (getrennter Prozess)
|
||
- `internal/shared` — gemeinsam genutzter Code
|
||
- `go.mod` — eigenes Modul `gitea.perlbach24.de/scripte/nexarch/dms`,
|
||
unabhängig vom Core-Modul (kein gemeinsames `go.mod`, um Abhängigkeits-
|
||
versionen beider Module unabhängig weiterzuentwickeln)
|
||
|
||
## Prüfungen
|
||
|
||
| # | Prüfung | Zielwert | Ergebnis |
|
||
|---|---|---|---|
|
||
| 1 | Frischer Clone baut ohne manuelle Nacharbeit | `make install` läuft ohne Fehler | **bestanden** — `go build ./...` clean auf 192.168.1.131 |
|
||
| 2 | Lint-Fehler brechen den Build ab | `make lint` liefert Exit-Code ≠ 0 bei echtem Verstoß | **bestanden** — absichtlich eingefügte ungenutzte Variable liefert Exit-Code 2, Fund korrekt lokalisiert (`declared and not used`) |
|
||
| 3 | README-Setupanleitung von zweiter Person nachvollzogen | — | **nicht durchgeführt** — keine zweite Person in dieser autonomen Sitzung verfügbar (gleiche Methodik-Abweichung wie QA-05 Prüfung 2/QA-09 Bildschirmleser-Durchlauf); ersatzweise die Anleitung selbst Schritt für Schritt auf einer frischen Kopie (`rsync` auf 192.168.1.131) nachvollzogen: `make install` → `make run` → `curl /healthz` → `{"status":"ok",...}`. |
|
||
|
||
Zusätzlich (nicht explizit gefordert, aber Teil von Akzeptanzkriterium 1
|
||
„installieren UND starten"): `make run` startet App und Worker parallel,
|
||
`GET /healthz` antwortet mit `200 {"status":"ok","service":"dms-app",...}`
|
||
innerhalb von 2 Sekunden nach Start.
|
||
|
||
## Build/Test-Ergebnis (192.168.1.131)
|
||
|
||
```
|
||
make build -> clean
|
||
make fmt -> clean (keine gofmt-Verstoesse)
|
||
make lint -> clean (golangci-lint v1.62.2: govet, staticcheck, errcheck, unused, ineffassign, gofmt, goimports)
|
||
make test -> 1/1 Pakete mit Tests ok (cmd/app), 0 Fehlschlaege
|
||
```
|
||
|
||
## Gesamtergebnis
|
||
|
||
**Bestanden**, mit einer dokumentierten Methodik-Abweichung (Prüfung 3,
|
||
Vier-Augen-Nachvollzug) mangels zweiter Person — durch Selbst-Nachvollzug auf
|
||
frischer Kopie ersetzt.
|