Beitragen¶
Dieses Dokument beschreibt die Entwicklungsrichtlinien und den Prozess fuer Beitraege zum calServer-Projekt.
Entwicklungsumgebung einrichten¶
Voraussetzungen¶
- Docker und Docker Compose
- Git
- PHP 7.4 (fuer lokale Analyse und IDE-Unterstuetzung)
- Java 21 (nur bei Aenderungen am Report-Runner)
Lokales Setup¶
-
Repository klonen:
-
Umgebungsvariablen konfigurieren:
-
Container starten:
-
Datenbank initialisieren:
Die Anwendung ist danach unter der konfigurierten Domain erreichbar.
Git-Workflow¶
Branch-Strategie¶
Das Projekt verwendet einen Git-Flow-aehnlichen Workflow:
| Branch | Zweck |
|---|---|
master |
Produktiver Stand, nur ueber Releases aktualisiert |
develop |
Integrationsbranch fuer die naechste Version |
feature/<name> |
Neue Funktionen |
bugfix/<name> |
Fehlerbehebungen |
hotfix/<name> |
Dringende Korrekturen am Produktivstand |
release/<version> |
Vorbereitung eines Releases |
Namenskonventionen¶
- Branch-Namen in Kleinbuchstaben mit Bindestrichen:
feature/dcc-xml-export - Issue-Referenz im Branch-Namen, wenn vorhanden:
bugfix/1234-fix-grid-sorting
Commit-Nachrichten¶
Commit-Nachrichten folgen diesem Format:
Typen:
| Typ | Verwendung |
|---|---|
feat |
Neue Funktion |
fix |
Fehlerbehebung |
refactor |
Code-Umstrukturierung ohne Funktionsaenderung |
docs |
Dokumentationsaenderungen |
test |
Tests hinzufuegen oder aendern |
chore |
Build-Skripte, Abhaengigkeiten, Konfiguration |
Code-Standards¶
PHP¶
- Einrueckung: Tabs
- Klammern: Oeffnende Klammer auf derselben Zeile
- Namensgebung: CamelCase fuer Klassen, camelCase fuer Methoden und Variablen
- Yii-Konventionen: Controller-Aktionen als
actionMethodName, Models mit Tabellenname - Keine unnoetigen
use-Statements -- Yii 1.1 verwendetimportin der Konfiguration
Datenbankmigrationen¶
Schemaaenderungen werden ausschliesslich ueber Yii-Migrationen vorgenommen:
Jede Migration muss eine up()- und eine down()-Methode implementieren.
Frontend¶
- JavaScript: jQuery (vom Yii-Framework bereitgestellt)
- CSS: Bootstrap 3 (ueber die Booster-Extension)
- Templates: Yii-PHP-Views unter
views/
Pull-Request-Prozess¶
- Erstellen Sie einen Feature- oder Bugfix-Branch ausgehend von
develop - Implementieren Sie die Aenderungen mit aussagekraeftigen Commits
- Stellen Sie sicher, dass vorhandene Tests weiterhin bestehen
- Erstellen Sie einen Pull Request gegen
develop - Beschreiben Sie im PR die Aenderung, den Grund und die Testabdeckung
- Warten Sie auf das Code-Review durch mindestens einen Reviewer
- Nach Genehmigung wird der Branch in
developgemergt
Review-Kriterien¶
- Code entspricht den beschriebenen Standards
- Datenbankmigrationen sind vorhanden und reversibel
- Keine hartcodierten Konfigurationswerte
- Mandantentrennung bleibt gewahrt
- Berechtigungspruefungen sind vorhanden
Testing¶
Testtypen¶
| Typ | Werkzeug | Verzeichnis |
|---|---|---|
| Unit-Tests | PHPUnit | httpdocs/protected/tests/ |
| Akzeptanztests | Behat | httpdocs/protected/features/ |
| API-Tests | Behat | httpdocs/protected/features/api/ |
| Report-Runner-Tests | JUnit | report-runner/src/test/ |
Tests ausfuehren¶
# PHPUnit
docker exec -it calserver ./httpdocs/protected/vendor/bin/phpunit
# Behat
docker exec -it calserver ./httpdocs/protected/vendor/bin/behat
Dokumentation¶
Die Dokumentation wird mit MkDocs Material erstellt und liegt unter docs/. Lokale Vorschau:
Beim Hinzufuegen neuer Seiten muss der Eintrag in mkdocs.yml unter nav: ergaenzt werden.