Home - Ultraschall/ultraschall-portable GitHub Wiki
Spielregeln
Wir folgen den Regeln von GitHub flow (nicht: gitflow). Die sind hier gut erklärt:
Daraus ergibt sich:
- Der
masterbranch ist heilig. In ihm darf nur produktiver, getesteter und reviewed Code befinden. Ohne zu zögern geben wir ihn raus, um damit Sendungen zu produzieren. - Sämtliche Erweiterungen, Bugfixes und sonstige Umbauten finden niemals im
masterstatt, sondern immer in einem sinnvoll benanntenfeature-branch. Inmasterwird also - bis auf in wenigen Ausnahmefällen - nicht commited. - Bevor ein
feature-branchangelegt wird, muss im Projektbereich https://github.com/Ultraschall/ultraschall-portable/projects/1 ein Issue dafür angelegt werden, dass das grundsätzliche Ziel menschenlesbar beschreibt. Dieses Issue liegt zunächst in der Spalte "Offen / Ideen" und wird dort diskutiert. - An jedem Issue wird ein Tag angehängt nach dem Muster #Issuenummer, also etwa:
#42- dieses Tag wird dann auch an den korrespondierendenPull Requestgehängt sowie an eventuelle andere Elemente die Tags zu diesem Issue tragen können. - Möchte man ein Feature angehen, so setzt man zunächst "Assignee" des Issues auf den eigenen Namen. Dann legt man einen
feature branchan mit einem hinreichend ähnlichen Namen wie das Issue. Jederfeature branchwird vommasterabgeleitet. - Hat man einen
feature-branchangelegt (und erst dann!), so verschiebt man die Issue-Karte auf den Status "In Arbeit". Es gibt also keinen Branch ohne entsprechende Karte im Projektboard auf dem Status "In Arbeit", und keine Karte in dieser Spalte ohne Branch. - In der Beschreibung des
feature-branchsetzen wir einen Verweis auf #issue, Ebenso an den Beginn des Titels des Issues, etwa#42 Name des Issue - Wir commiten unsere Änderungen in unserem
feature-branchso oft wie sinnvoll, mindestens aber nach jeder Arbeitssession. Einfeature-branchkann jederzeit kaputten oder unproduktiven Code enthalten. Massen-commits über viele Dateien sind zu vermeiden, im Zweifel lieber jede Datei einzeln commiten mit aussagekräftiger Beschreibung. - Wir nutzen das
Pull RequestFeature von GitHub um die Funkionen in einemfeature-branchvon anderen testen zu lassen. Die dann hier entstehende Kommunikation ersetzt die bisherige im RocketChat. Die Diskussion erfolgt nie am PR, sondern immer am ursprünglichen Issue. Der Name des PR entspricht im Wesentlichen dem des Issue, zusätzlich beginnt er mit dem Tag-Namen, also etwa:#42 Name des Issue - Wenn der
Pull Requestfür ein Issue erfolgt ist, so schieben wir die entsprechende Projektkarte eine Spalte weiter aufTest und Review - Der finale
merge requestin denmasterwird nie vom Entwickler selbst, sondern immer von einem anderen Mitglied nach finalem Test/Codereview vorgenommen. Hier wird auch auf ausreichende Dokumentation etc. geachtet. Nach erfolgreichemmergewird derfeature-branchgelöscht - die ganze Historie bleibt ja im Git erhalten. - Issues, die sich durch Änderungen in den Settings von REAPER lösen lassen (Änderungen in den .ini Dateien) werden immer mit einem Screenshot illustriert, der das entsprechende Settings-Fenster zeigt.
- Ist ein neues Feature in den
mastergemerged worden, so wird direkt hier im Wiki das Changelog erweitert: https://github.com/Ultraschall/ultraschall-portable/wiki/Ultraschall-Changelog - die GIFs dazu produziert @rstockm
Kontrollregeln:
- Die Anzahl aller Karten in der Spalte
Test und Reviewist gleich Anzahl derPull Requests - Die Summe aller Karten in den Spalten
In ArbeitundTest und Reviewist gleich der Anzahl allerfeature branches-1 (dem Master) - Die Anzahl aller Karten in der Spalte
Doneist gleich der Anzahl der Einträge imChangeloghttps://github.com/Ultraschall/ultraschall-portable/wiki/Ultraschall-Changelog
Git GUI für das lokale Arbeiten
Es bietet sich hier die eigene App von GitHub an, zumindest was das Clonen, commiten und Auschecken von Branches angeht:
- https://desktop.github.com Die reicht jetzt eigentlich für unsere Zwecke.
Tutorial Video
Hier gibt es mein YouTube Video in dem ich - mit einigen Schleifen - den Workflow konkret am Objekt durchgehe: