Mit Release 2016.06 ist MyCoRe im September 2016 auf GitHub als Versionierungssystem umgezogen. Die soll sowohl die Wahrnehmung des Projektes in der Open Source Gemeinde begünstigen wie auch Verbesserungen bei der Arbeit an neuen Funktionen und gemeldeten Bus bringen. MyCoRe erhofft sich damit auch eine größere Zahl mitwirkender Codeentwickler. Zum Einrichten der Git-Umgebung und der Arbeit sei auf unsere Eclipse-Dokumentation verwiesen.
Für die Bearbeitung eines Bugs muss zuerst dieser bei MyCoRe-Jira gemeldet werden.
Zuerst ist ist je nach dem, wo der Fehler aufgetreten ist, der
main
und die entsprechenden LTS-Branches auszuchecken. Bei Fehlern im LTS erfolgt am Ende ein merge in den Main. Dies und alle weiteren Schritte in
Git
sollten wegen der sichereren Verarbeitung auf der Kommandozeile ausgeführt werden.
mkdir -p git; cd ~/git; git clone https://github.com/MyCoRe-Org/mycore.git
Mit
git status
kann man sich jederzeit den eigenen Arbeitsstatus anzeigen lassen.
Die Liste der vorhandenen Branches bekommt man mit
git branch -v
Je nach dem, ob der Bug im
main
(unter SVN trunk) oder in einem Branch ist, muss in selbigen gewechselt werden.
git checkout [main | LTS-Branch]
Es ist sinnvoll nun noch einmal den eigenen Codestand mit
git pull -r
zu aktualisieren.
Nun ist zum Zwecke der Bearbeitung des Tickets ein eigener Branch dafür zu erstellen. Dieser
MUSS
für MyCoRe zwingend die Form haben
issues/{JIRA-Ticket}-{Ticket Summary}
!!! Dies wird mit
git checkout -b issues/{JIRA-Ticket}-{Ticket Summary}
erzeugt. Im Ticket Summary dürfen
keine Leerzeichen
stehen. Beispiel:
git checkout -b issues/MCR-1428-delete_in_SVN_store
Nun sind die gewünschten Änderungen in den Code einzuarbeiten und lokal zu testen. Um Probleme mit dem CI im GitHub zu vermeiden, sollten folgende Tests erfolgreich sein:
export CI=true; export MAVEN_OPTS= ; mvn clean install
mvn javadoc:javadoc
Mit
git diff [--index | --cached]
werden diese angezeigt.
Geänderte Dateien können Git mit
git add {path to file}
bekannt gemacht werden.
Ist alles fertig erfolgt im lokalen System ein
git commit
. Im Commit-Text muss in der ersten Zeile die Ticket-Nummer und ein sehr kurzer beschreibender Text stehen.
Ausführlichere Erläuterungen folgen dann in den folgenden Zeilen.
Mit
git push --set-upstream origin issues/{JIRA-Ticket}-{Ticket Summary}
wird nun die Änderung Richtung GitHub befördert.
Da in MyCoRe vor der Aufnahme eines Fixes noch ein Code-Review steht, welches nur wenige Kern-Entwickler bearbeiten, muss nun ein Pull-Request gestellt werden. Hierfür ist auf die MyCoRe-Git-Seite zu gehen.
Ist mit dem Pull request alles klar gegangen, kann der Branch für den Fix mit
git checkout [main | release]
und
git branch -d issues/{JIRA-Ticket}-{Ticket Summary}
vom lokalen System gelöscht werden.
[ToDo]