refactor: geteiltes Modul common/ (Pilot httpclient, apierror) #376

Closed
patrick wants to merge 1 commits from refactor/common-modul-pilot into main
pull from: refactor/common-modul-pilot
Owner

Änderung

Pilot für Schritt 3 des Struktur-Plans: geteiltes Go-Modul common/ (eigenes go.mod, nur Standardbibliothek).

  • common/httpclient: bisher byte-identisch in dms, mail, archive (je 1 Kopie entfernt)
  • common/apierror: bisher byte-identisch in Root und archive
  • Einbindung per require + replace => ../common (Root: ./common), kein go.work, kein go.sum-Eintrag nötig; Build aus dem Repo-Checkout je Modul wie bisher
  • Importpfade angepasst, Paketnamen unverändert
  • Root-archtest nimmt common aus (errorleak), stale Ausnahme in archive/archtest entfernt
  • Wächtertest „kein http.DefaultClient“ prüft weiter dms, mail, archive (+ common) statt des ganzen Repos
  • CI: common/** in den Pfadfiltern der mail/archive-Pflichttest-Gates
  • PRODUKTARCHITEKTUR.md Abschnitt 5: Hinweis auf common/

Nicht zusammengeführt (bewusst): dms/internal/apierror (eigene Variante, 5xx-Fix in separatem PR), httpclient in Root/ai/connect (abweichende Fassungen).

Verifikation (Host 131, frisches Wurfverzeichnis)

  • go build und go vet sauber in common, Root, dms, mail, archive
  • go test ./... in common, dms, archive grün
  • Rest rot, gleich wie auf main (Baseline gemessen): internal/archtest (ai/cmd/searchchatapi-a11y-fixture ruft http.ListenAndServe direkt), mail/internal/mailapi (OpenAPI-Contract). mail/internal/qa09gate scheitert nur, weil im Wurfverzeichnis kein .git lag
  • Nicht geprüft: DB-abhängige Tests (kein TEST_ADMIN_DSN)
  • Offen vor Merge: Deploy-/Rollout-Skripte (deploy/rollout-131-*.sh) bauen je Modul aus dem Repo-Verzeichnis, common/ muss dort mit ausgecheckt sein

Hängt nicht an #373/#374/#375, kann aber Konflikte mit #375 (dms/internal/apierror) nur dort haben, wo beide dieselbe Datei berühren (derzeit keine).

🤖 Generated with Claude Code

## Änderung Pilot für Schritt 3 des Struktur-Plans: geteiltes Go-Modul `common/` (eigenes `go.mod`, nur Standardbibliothek). - `common/httpclient`: bisher byte-identisch in `dms`, `mail`, `archive` (je 1 Kopie entfernt) - `common/apierror`: bisher byte-identisch in Root und `archive` - Einbindung per `require` + `replace => ../common` (Root: `./common`), kein `go.work`, kein `go.sum`-Eintrag nötig; Build aus dem Repo-Checkout je Modul wie bisher - Importpfade angepasst, Paketnamen unverändert - Root-`archtest` nimmt `common` aus (`errorleak`), stale Ausnahme in `archive/archtest` entfernt - Wächtertest „kein `http.DefaultClient`“ prüft weiter `dms`, `mail`, `archive` (+ `common`) statt des ganzen Repos - CI: `common/**` in den Pfadfiltern der `mail`/`archive`-Pflichttest-Gates - `PRODUKTARCHITEKTUR.md` Abschnitt 5: Hinweis auf `common/` Nicht zusammengeführt (bewusst): `dms/internal/apierror` (eigene Variante, 5xx-Fix in separatem PR), `httpclient` in Root/`ai`/`connect` (abweichende Fassungen). ## Verifikation (Host 131, frisches Wurfverzeichnis) - `go build` und `go vet` sauber in `common`, Root, `dms`, `mail`, `archive` - `go test ./...` in `common`, `dms`, `archive` grün - Rest rot, **gleich wie auf `main`** (Baseline gemessen): `internal/archtest` (`ai/cmd/searchchatapi-a11y-fixture` ruft `http.ListenAndServe` direkt), `mail/internal/mailapi` (OpenAPI-Contract). `mail/internal/qa09gate` scheitert nur, weil im Wurfverzeichnis kein `.git` lag - Nicht geprüft: DB-abhängige Tests (kein `TEST_ADMIN_DSN`) - Offen vor Merge: Deploy-/Rollout-Skripte (`deploy/rollout-131-*.sh`) bauen je Modul aus dem Repo-Verzeichnis, `common/` muss dort mit ausgecheckt sein Hängt nicht an #373/#374/#375, kann aber Konflikte mit #375 (`dms/internal/apierror`) nur dort haben, wo beide dieselbe Datei berühren (derzeit keine). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-10-27 13:52:27 +01:00
refactor: geteiltes Modul common/ (Pilot httpclient, apierror)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
Archive-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Mail-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
cd5ca8da53
- common/httpclient: bisher byte-identisch in dms, mail und archive
- common/apierror: bisher byte-identisch in Root und archive
- Importpfade, go.mod (require + replace), archtest-Ausnahmen und
  CI-Pfadfilter der mail-/archive-Pflichttest-Gates angepasst
- Waechtertest fuer den Standard-Client prueft weiter dms, mail, archive
- dms/internal/apierror bleibt eigenstaendig (5xx-Fix in eigenem PR)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Author
Owner

Geschlossen: replace => ../common bricht Einzel-Builds (Docker nur mit Modul-Ordner, eigene Repos, Partner-Builds). Wird neu aufgesetzt als versioniertes Modul common per Git-Tag. Code wird wiederverwendet.

Geschlossen: `replace => ../common` bricht Einzel-Builds (Docker nur mit Modul-Ordner, eigene Repos, Partner-Builds). Wird neu aufgesetzt als versioniertes Modul `common` per Git-Tag. Code wird wiederverwendet.
patrick closed this pull request 2026-10-27 14:37:39 +01:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#376