Fedora auf dem Weg zur Übertragung von Git-Diensten für die gemeinsame Entwicklung auf die Forgejo-Plattform

Matthew Miller, der Leiter des Fedora-Projekts, hat eine Initiative zur Ablösung der eigenen Entwicklungsplattform Pagure vorgestellt. Als Ersatz favorisierte der Fedora-Rat die Plattform Forgejo, entschloss sich jedoch, vor der Bestätigung des Wechsels zu Forgejo eine öffentliche Diskussion über die Wahl zu führen und die Meinung der Gemeinschaft zu berücksichtigen. Die finale Abstimmung wird in zwei Wochen stattfinden, und bis dahin kann jeder seine Gedanken zu dieser Entscheidung äußern.

Die derzeit verwendete eigene Plattform Pagure hat sich als überholt erwiesen, benötigt erhebliche Ressourcen für die Wartung, befindet sich in einem Stagnationszustand und hat außerhalb von Fedora keine breite Verbreitung gefunden. Bereits 2020 wurde der Versuch unternommen, Pagure durch GitLab zu ersetzen, dieser Vorschlag kam jedoch nicht über Diskussionen hinaus. In diesem Jahr, nach der Bewertung bestehender Entwicklungsplattformen, ergab sich der Schluss, dass das Projekt eine offene Lösung benötigt, die sich für den Einsatz auf eigenen Servern eignet. Die am besten geeigneten Lösungen waren GitLab Community Edition und Forgejo.

Die Plattformen GitLab und Forgejo haben ihre Vor- und Nachteile, und beide müssen bestimmte Anpassungen vornehmen, um die Funktionalität der Dist Git-Plattform, die auf Pagure basiert und bei der Entwicklung von Fedora Linux verwendet wird, nachzubilden. Insbesondere muss die neue Plattform eine Integration mit den begleitenden Diensten des Projekts sicherstellen, wie Bodhi, Fedora CI, COPR, Fedpkg, Hotness, Fedora Notifications, Toddlers, Fedora Messaging, Monitor Gating, Release Engineering Scripts, Fedora Packagers und Packit.

Nach Abwägung aller Argumente wählte der Fedora-Rat als bevorzugte Plattform Forgejo, da sie von einer unabhängigen Gemeinschaft entwickelt wird, während GitLab ein Produkt eines gewerblichen Unternehmens ist, das gemäß dem Open Core-Modell entwickelt wird, bei dem einige erweiterte Funktionen, darunter die für Fedora benötigten, nur in der kommerziellen Version verfügbar sind. Bei der Auswahl wurde auch die Besorgnis berücksichtigt, dass sich die Politik von GitLab im Laufe der Zeit ändern und das Projekt weniger offen werden könnte. Ein weiteres Argument für Forgejo war, dass die Programmiersprache Go und der Code von Forgejo der Teamstruktur, die in Fedora für die Infrastruktur verantwortlich ist, vertrauter waren als die Programmiersprache Ruby, die in GitLab verwendet wird.

Die Forgejo-Plattform wurde für die Bereitstellung eines Systems zur Zusammenarbeit mit Git-Repositories entwickelt, das in seinen Aufgaben GitHub, Bitbucket und GitLab ähnelt. Forgejo ist ein Fork des Gitea-Projekts, das seinerseits von der Gogs-Plattform abgezweigt wurde. Die Trennung von Forgejo fand 2022 nach Versuchen statt, Gitea zu kommerzialisieren und die Verwaltung in die Hände eines kommerziellen Unternehmens zu übergeben. Im Rahmen des Forgejo-Projekts versuchten unabhängige Entwickler, die bisherigen Prinzipien der unabhängigen Verwaltung und der Kontrolle durch die Gemeinschaft zu bewahren. Der Code des Projekts ist in der Programmiersprache Go geschrieben. Seit der Version 9.0 wird der Code von Forgejo unter der Lizenz GPLv3+ veröffentlicht, während der alte Code unter der MIT-Lizenz bleibt.

Zu den wichtigsten Merkmalen der Forgejo-Plattform gehört der geringen Ressourcenverbrauch (kann auf einer Raspberry Pi-Platine oder in günstigen VPS) und der einfache Installationsprozess. Standardmäßige Funktionen für die Projektarbeit werden bereitgestellt, wie Aufgabenverwaltung, Fehlermeldung (issues), Pull-Requests, Wiki, Werkzeuge zur Koordination von Entwicklergruppen, Release-Vorbereitung, Automatisierung der Bereitstellung von Paketen in Repositories, Zugangskontrollverwaltung, Integration mit Plattformen für kontinuierliche Integration, Code-Suche, Authentifizierung über LDAP und OAuth, Zugriff auf Repositories über SSH- und HTTP/HTTPS-Protokolle, Anbindung von Webhooks zur Integration mit Slack, Discord und anderen Diensten, Unterstützung von Git-Hooks und Git LFS sowie Werkzeuge für Migration und Spiegelung von Repositories. Besonders hervorzuheben ist die Möglichkeit, das ActivityPub-Protokoll zur Verbindung einzelner Server Entwickler zu einem föderierten Netzwerk zusammenzuführen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4