Files
Gardomatic/CONTRIBUTING.md
T
kleiax 904d14b64c
CI / test (push) Canceled after 0s
Initial commit
2026-09-12 22:22:17 +02:00

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

  1. Lies die Projektbeschreibung und den Entwicklungsablauf in der README.md.
  2. Beachte die verbindlichen technischen Regeln in AGENTS.md.
  3. 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

  1. Erstelle einen fokussierten Branch und beschreibe das zu lösende Problem.
  2. Suche vor der Implementierung nach vorhandenen Helfern und ähnlichen Abläufen.
  3. Halte die Schichtengrenzen zwischen API, Storage, Client und Web ein.
  4. Ergänze Tests für neues oder korrigiertes Verhalten, soweit technisch möglich.
  5. Formatiere geänderten Go-Code mit gofmt.
  6. Führe zunächst die betroffenen Tests und anschließend go test ./... aus.
  7. Führe bei größeren Änderungen zusätzlich make audit aus.
  8. 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.