Mitmachen

Es ist sicher eine gute Idee, zunächst sich auf unserer Mailing-Liste einzutragen. Die Umganssprache dort ist Englisch, auch wenn diese Webseite (und Subsurface selbst) in vielen Sprachen verfügbar ist. Das Englisch braucht nicht perfekt zu sein “Broken English” reicht vollkommen aus.

Normalerweise findet man auch stets einige der Entwickler im #subsurface Chat auf Freenode.

Es gibt viele Wege zu Subsurface beizutragen. Wir suchen immer nach Testern, die den Code während der Entwicklung testen. Insbesondere brauchen wir Tester mit Windows-PCs uns Macs (da der Großteil der Entwickler auf Linux arbeiten). Wir brauchen auch immer Helferinnen und Helfer, die die Dokumentation überprüfen und verbessern. Insbesondere brauchen wir auch Übersetzerinnen und Übersetzer, die das Programm in andere Sprechen übersetzen. Die Übersetzungen werden zentral auf Transifex verwaltet. Dort kann man sich einen Account anlegen und dann den Beitritt zum Subsurface-Team beantragen.

Patches, die Fehler beheben und Features hinzufügen sind selbstredend besonders wilkommen. Inspiration, was zu tun ist, findet sich im Bug-Tracker.

Hier ist eine kurze Einführung, wie man Patches erstellt, die entweder als Pull-Requests im zentralen Git-Repository oder als Emails an die Mailingliste geschickt werden können. Umfangreiche Informationen zum Umgang mit Git findet man im Git online-Buch.

Am besten beginnt man mit dem aktuellen Source-Code (siehe Subsurface bauen).
cd subsurface
git checkout master
git pull

Nun hast du die aktuelle Version. Erzeuge einen Branch, in dem du Veränderungen vornehmen kannst:
git checkout -b devel
Bearbeite den Quellcode (oder die Dokumentation), kompiliere, teste… Wenn alles gut aussieht, erzeuge einen Commit:
git commit -sa
Abhängig vom Betriebssystem öffnet sich ein Editor (in der Umgebungsvariablesn GIT_EDITOR kannst du einstellen, welcher). Gib eine Commit-Nachricht ein. Die erste Zeile ist der Titel des Commits, dieser soll kurz sein, und sagen, worin die Änderung besteht. Dann folgt eine ausführlichere Erklährung (genaueres dazu und dass wir auf einer Signed-off-by: Zeile bestehen weiter unten).

Wenn du die Commit-Nachricht verändern willst, kannst du dies mittels git commit --amend tun. Oft ist es gut, ein Commit in kleinere, unabhängige Teile zu teilen. Anschließend gibt es zwei Möglichkeiten, welche einfacher ist, hängt davon ab, wie gut und gerne du GitHub benutzt. Entweder “push”t du deinen Branch zu GitHub und erzeugst einen Pull Requests oder du tippst
git format-patch master..devel
Dies erzeugt ein File pro Commit mit Namen wie 0001-Commit-titel.patch, die du an unsere Developer-Mailingliste schicken kannst.

Wenn du uns Code schickst, muss jedes Patch oder jeder Commit eine Signed-off-by: Name Zeile haben, sonst können wir ihn nicht annehmen. Mit dieser Zeile erklärst du, dass du Urheber des Codes bist und ihn als Open Souce weiter gibst.

Bitte verfasse auch aussagestarke Commit-Nachrichten. Eine gute sieht in etwa so aus:

Header line: explaining the commit in one line

Body of commit message is a few lines of text, explaining things
in more detail, possibly giving some background about the issue
being fixed, etc etc.

The body of the commit message can be several paragrahps, and
please do proper word-wrap and keep columns shorter than about
74 characters or so. That way “git log” will show things
nicely even when it’s indented.

Reported-by: whoever-reported-it
Signed-off-by: Your Name

Die Titelzeile soll den Inhalt des Commits verständlich zusammenfassen und darf nur eine Zeile umfassen.

gitk sample

gitk-Beispiel