Github
Wie funktioniert die Software-Entwicklung mit Github
"Kurz gesagt: einfach indem man es tut!
Viele Open Source Projekte sind Freizeitprojekte von Leuten, die in ihrer Freizeit ein Problem lösen und dabei etwas neues lernen wollten oder während ihrer eigentlichen Arbeitszeit nicht die Gelegenheit bekommen haben ein Problem so zu lösen, wie sie das gern getan hätten. Andere Open Source Projekte sind von Unternehmen unter einer Open Source Lizenz veröffentlicht worden, weil man sich Feedback (auch in Form von Code) durch die weltweite Entwickler-Community erhofft. In der Regel freuen sich die Veröffentlicher von Open Source Software über jede helfende Hand die bereit ist an einem Projekt mitzuarbeiten.
Die meisten dieser Open Source Projekte sind auf Github gehostet, teilweise auch auf GitLab oder Bitbucket. Bei allen dreien kann man sich kostenlos einen Account erstellen, das entsprechende Repository forken (also grob gesagt eine lokale Kopie erstellen), dort Änderungen am Code vornehmen und anschließend einen Pull Request (Github, Bitbucket) bzw. Merge Request (GitLab) erstellen, um die eigenenen Änderungen in das eigentliche Projekt zurück zu überführen.
Oft gibt es eine Anleitung wie man vorgehen soll wenn man eigene Pull Requests für das entsprechende Projekt erstellen möchte. Teilweise muss man ein Contributors Agreement unterzeichnen, mit dem man sein Einverständnis gibt, dass der eigene Code ebenfalls unter der gewählten Open Source Lizenz weitergegeben und verändert werden kann, das hängt aber vom Projekt ab und ist meist nur bei größeren Projekten die von einem Unternehmen gestartet wurden der Fall. Dies dient der Absicherung dass du hinterher nicht sagen kannst: bitte löscht meinen Code, ich hab es mir anders überlegt. Was mitunter zu einem großen Problem für das Projekt werden kann, je nachdem wie wichtig und komplex die eigene Contribution war.
Hilfreich ist es mal in den Issue-Tracker zu schauen um gezielt nach Bugs zu suchen die andere Benutzer eines Open Source Projekts gemeldet haben um diesen Bug zu fixen. Hat man selbst einen Feature-Vorschlag ist es außerdem oft hilfreich vorab mit dem Autor des Projekts zu diskutieren ob er Interesse hätte ein solches Feature hinzuzufügen. Dies kann man dann in Form eines PRs oder MRs tun.
Wenn ich mich in der Vergangenheit an Open Source Projekte beteiligt habe, dann in der Regel indem ich Bugs die ich selbst entdeckt habe gefixed habe. Normalerweise freut sich jeder darüber, wenn jemand Fehler im eigenen Projekt findet und auch gleichzeitig direkt behebt. Solche Pull Requests werden oft schnell ins Projekt gemerged. Hier sollte man darauf achten ob es Unit Tests gibt die hinzugefügt oder aktualisiert werden sollten.
Andere Open Source Projekte die ich selbst gestartet habe, habe ich gestartet weil ich wie eingangs erwähnt ein Problem zu lösen hatte, mit der Lösung halbwegs zufrieden war und es daher auch gern anderen, die vielleicht am selben Problem sitzen, zur Verfügung stelle. Hier bin ich ebenfalls glücklich über jeden Verbesserungsvorschlag oder Bugfix den ich von anderen Entwicklern erhalte.
Nur Mut! In der Regel landet der eigene Code nicht einfach mal eben so im Projekt. Es gibt beim Pull Request für gewöhnlich erstmal eine Code Review wo mögliche Schwachstellen oder potentielle Bugs besprochen werden. Solltest du Anfänger sein bekommst du hier mitunter wertvolle Tipps, wie du saubereren, besseren und effizienteren Code schreibst.
Wichtig dabei ist, weil ich es selbst oft erwähnt habe: bleib immer freundlich, auch wenn es manchmal frustrierend ist! Die meisten Leute entwickeln Open Source Projekte in ihrer Freizeit, bekommen aber teilweise Kommentare an den Kopf geworfen, in einem Tonfall, wie es denn sein kann, dass ein gemeldeter Bug nach 3 Tagen noch nicht gefixed oder gemerged ist oder wie schlecht ein Projekt eigentlich entwickelt ist auch technischer Seite. Nochmal: viele Open Source Projekte werden in der Freizeit ohne jegliche Bezahlung entwickelt. Da sollte zumindest ein Mindestmaß an Höflichkeit gewahrt bleiben."