3.7 KiB
Zu Gardomatic beitragen
Vielen Dank für dein Interesse an Gardomatic. Beiträge sollen klein, nachvollziehbar und mit der bestehenden Architektur vereinbar sein.
Vor dem ersten Beitrag
- Lies die Projektbeschreibung und den Entwicklungsablauf in der
README.md. - Beachte die verbindlichen technischen Regeln in
AGENTS.md. - Lies die
Contributor License Agreement. Sie ist eine rechtlich bindende Vereinbarung.
Mit der CLA behältst du das Copyright an deinem Beitrag. Du erlaubst Alexander Klein zugleich, den Beitrag innerhalb von Gardomatic unter der öffentlichen PolyForm-Lizenz sowie unter separaten kommerziellen oder proprietären Lizenzen zu verwenden. Das ermöglicht das in diesem Projekt vorgesehene Dual-Licensing-Modell.
CLA annehmen
Einzelpersonen nehmen Version 1.0 der CLA an, indem sie einen Pull Request mit der unveränderten CLA-Erklärung aus der Pull-Request-Vorlage einreichen und die zugehörige Checkbox selbst markieren. Die Annahme gilt auch für spätere Beiträge unter derselben CLA-Version.
Der Workflow .github/workflows/cla.yml prüft diese Erklärung bei jedem Pull
Request. Ein fehlgeschlagener CLA-Check darf nicht umgangen oder administrativ als
Ersatz für die Zustimmung der beitragenden Person bestätigt werden.
Beiträge im Namen eines Unternehmens oder einer anderen Organisation müssen vorab
mit alex@kleiax.de abgestimmt werden. Dasselbe gilt, wenn dein Arbeitgeber Rechte
an deinem Beitrag besitzen könnte. Eine Projektperson darf die CLA-Erklärung nicht
stellvertretend für Beitragende markieren.
Entwicklungsablauf
- Erstelle einen fokussierten Branch und beschreibe das zu lösende Problem.
- Suche vor der Implementierung nach vorhandenen Helfern und ähnlichen Abläufen.
- Halte die Schichtengrenzen zwischen API, Storage, Client und Web ein.
- Ergänze Tests für neues oder korrigiertes Verhalten, soweit technisch möglich.
- Formatiere geänderten Go-Code mit
gofmt. - Führe zunächst die betroffenen Tests und anschließend
go test ./...aus. - Führe bei größeren Änderungen zusätzlich
make auditaus. - Erläutere im Pull Request Verhalten, Motivation, Tests und mögliche Risiken.
Für Datenbankänderungen ist ein neues Up-/Down-Migrationspaar erforderlich. Bereits veröffentlichte Migrationen dürfen nicht nachträglich verändert werden.
Pull Requests
Ein Pull Request sollte:
- genau ein zusammenhängendes Problem lösen,
- keine unbeabsichtigten oder fachfremden Änderungen enthalten,
- vorhandene Tests nicht abschwächen,
- geändertes Nutzerverhalten und Konfiguration dokumentieren,
- alle verwendeten Quellen und Fremdmaterialien mit ihrer Lizenz offenlegen und
- die CLA-Erklärung enthalten.
Ein Beitrag kann abgelehnt oder bis zur Klärung zurückgestellt werden. Das gilt insbesondere bei fehlender CLA-Annahme, unklaren Rechten, Sicherheitsproblemen, fehlenden Tests oder Änderungen außerhalb des vereinbarten Umfangs.
Fremdmaterial und KI-gestützte Beiträge
Reiche nur Material ein, an dem du die erforderlichen Rechte besitzt. Kopiere keinen Code, keine Texte, Bilder oder anderen Inhalte aus inkompatibel lizenzierten Quellen. Kennzeichne Fremdmaterial und nenne Quelle sowie Lizenz.
Für KI-gestützte Beiträge bleibst du selbst verantwortlich. Prüfe den erzeugten Inhalt auf Korrektheit, Sicherheit, Herkunft und mögliche Lizenzkonflikte, bevor du ihn einreichst.
Sicherheitsprobleme
Noch nicht veröffentlichte Sicherheitslücken sollten nicht als öffentlicher Issue
oder Pull Request eingereicht werden. Melde sie zunächst vertraulich an
alex@kleiax.de und füge keine echten Zugangsdaten oder personenbezogenen Daten
bei.