Matthew Miller, le leader du projet Fedora, a présenté une initiative visant à abandonner l'utilisation de sa propre plateforme de développement collaboratif, Pagure. En remplacement, le conseil de direction de Fedora a préféré la plateforme Forgejo, mais avant de valider la transition vers Forgejo, il a décidé de mener une consultation publique pour recueillir l'avis de la communauté. Le vote final se déroulera dans deux semaines et d'ici là, tout le monde peut partager ses réflexions sur ce choix.
La plateforme propriétaire Pagure, actuellement utilisée, est obsolète, nécessite des ressources importantes pour son maintien, est en stagnation et n'a pas atteint une large adoption en dehors de Fedora. En 2020, une tentative a déjà été faite pour remplacer Pagure par GitLab, mais cette initiative n'est pas allée au-delà des discussions. Cette année, après avoir évalué les plateformes de développement collaboratif existantes, il a été conclu que le projet avait besoin d'une solution open source, adaptée à un déploiement sur ses propres serveurs. Les critères les plus pertinents ont été satisfaits par GitLab Community Edition et Forgejo.
Les plateformes GitLab et Forgejo ont leurs avantages et leurs inconvénients, et toutes deux nécessitent des adaptations pour recréer les fonctionnalités de la plateforme Dist Git basée sur Pagure, utilisée dans le développement de Fedora Linux. En particulier, la nouvelle plateforme devra garantir l'intégration avec les services associés au projet, tels que Bodhi, Fedora CI, COPR, Fedpkg, Hotness, Fedora Notifications, Toddlers, Fedora Messaging, Monitor Gating, Release Engineering Scripts, Fedora Packagers et Packit.
Après avoir examiné tous les arguments, les membres du conseil de direction ont choisi la plateforme Forgejo comme choix privilégié, car elle est développée par une communauté indépendante, tandis que GitLab est un produit d'une entreprise commerciale, développé selon un modèle Open Core, où certaines fonctionnalités avancées, dont celles nécessaires pour Fedora, ne sont disponibles que dans le produit commercial. La crainte que la politique de GitLab puisse changer au fil du temps et que le projet devienne moins ouvert a également été prise en compte. Un argument supplémentaire en faveur de Forgejo est que le langage Go et la base de code de Forgejo sont plus familiers à l'équipe responsable de l'infrastructure de Fedora, par rapport au langage Ruby utilisé dans GitLab.
La plateforme Forgejo est conçue pour déployer un système de collaboration sur des dépôts Git, semblable à GitHub, Bitbucket et Gitlab. Forgejo est un fork du projet Gitea, qui quant à lui s'est détaché de la plateforme Gogs. La séparation de Forgejo a eu lieu en 2022 suite à des tentatives de commercialisation de Gitea et au transfert de gestion vers une entreprise commerciale. Dans le cadre du projet Forgejo, des développeurs indépendants ont tenté de préserver les principes de gestion indépendante et de contrôle communautaire. Le code du projet est écrit en langage Go. À partir de la version 9.0, le code de Forgejo est distribué sous la licence GPLv3+, tandis que l'ancien code reste sous licence MIT.
Les principales caractéristiques de la plateforme Forgejo sont sa faible consommation de ressources (peut être utilisée sur une carte Raspberry Pi ou dans des systèmes peu coûteux) VPS) et un processus d'installation simple. Des fonctionnalités standard pour le travail sur des projets sont fournies, telles que la gestion des tâches, le suivi des problèmes (issues), les pull requests, les wikis, les outils de coordination des équipes de développement, la préparation des versions, l'automatisation du déploiement des paquets dans les dépôts, la gestion des droits d'accès, l'intégration avec des plateformes d'intégration continue, la recherche dans le code, l'authentification via LDAP et OAuth, l'accès au dépôt via les protocoles SSH et HTTP/HTTPS, la connexion de webhooks pour l'intégration avec Slack, Discord et d'autres services, la prise en charge des hooks Git et Git LFS, ainsi que des outils pour la migration et le mirroring des dépôts. Il est particulièrement notable d'utiliser le protocole ActivityPub pour relier des développeurs individuels dans un réseau fédéré. serveurs développeurs.
Source : opennet.ru
