common
Geteiltes Go-Modul für Pakete, die in mehreren NEXARCH-Modulen identisch gebraucht werden (internal/ ist modulübergreifend nicht sichtbar).
Pakete: pflichttestgate (parametrisierte Testpflicht-Logik), apierror, auditclient, httpclient, httpharden, loadtest, migrate, policyclient, svcauth, tenantregistryclient, testdb.
Einbinden
go env -w GOPRIVATE=gitea.perlbach24.de
go get gitea.perlbach24.de/scripte/nexarch/common@latest
Build-Orte brauchen Lesezugriff auf Gitea: Read-only-Token in ~/.netrc (machine gitea.perlbach24.de login <user> password <token>).
Versionen
Tags common/v0.X.Y setzt .gitea/workflows/common-tag.yml nach jedem Merge in main, der common/ ändert. Module aktualisieren einzeln (go get ...common@v0.X.Y). Lokal mit mehreren Modulen gleichzeitig arbeiten: nicht eingechecktes go.work.
Regeln
-
Nur Code, der in mindestens zwei Modulen byte-gleich (ohne Kommentare) gebraucht wird; fachlich verschiedene Pakete bleiben modul-lokal.
-
Änderungen abwärtskompatibel halten, solange Module nicht gleichzeitig umgestellt werden.
-
Jeder PR an
common/nennt die betroffenen Module (Auswirkungsliste). Breaking Changes nur mit neuer Minor-Version (v0.2.0) und Umstellungs-PRs je Modul. -
Sicherheitskritische Pakete (
svcauth,tenantregistryclient,auditclient,policyclient,apierror,httpharden) unterliegen dem Pflichttest-Gate (cmd/pflichttestgate, Workflowcommon-pflichttest-gate.yml): Änderung ohne begleitende_test.goim selben Package schlägt fehl.