Matthew Miller, the leader of the Fedora project, introduced the initiative to move away from its proprietary development platform Pagure. As a replacement, the Fedora Council preferred the Forgejo platform, but before finalizing the transition to Forgejo, it decided to hold a public discussion to consider community input. A final vote will take place in two weeks, and until then, anyone can share their thoughts on the chosen option.
The current proprietary platform Pagure has become outdated, requires significant resources for maintenance, is stagnant, and has not gained widespread adoption beyond Fedora. In 2020, there was an attempt to replace Pagure with GitLab, but this initiative did not progress beyond discussions. This year, after assessing existing collaborative development platforms, it was concluded that the project needs an open solution suitable for deployment on its own servers. GitLab Community Edition and Forgejo best met the specified criteria.
The GitLab and Forgejo platforms have their own advantages and disadvantages, and both require certain enhancements to replicate the functionality of the Dist Git platform based on Pagure used in Fedora Linux development. In particular, the new platform will need to ensure integration with associated services of the project, such as Bodhi, Fedora CI, COPR, Fedpkg, Hotness, Fedora Notifications, Toddlers, Fedora Messaging, Monitor Gating, Release Engineering Scripts, Fedora Packagers, and Packit.
Weighing all arguments, the members of the governing council chose Forgejo as the preferred platform since it is developed by an independent community, whereas GitLab is a product of a commercial company developed according to an Open Core model, where some advanced features, including those required in Fedora, are only available in the commercial product. The choice also considered concerns that GitLab's policies might change over time, making the project less open. An additional argument in favor of Forgejo was that the Go language and the Forgejo codebase were more familiar to the team responsible for infrastructure in Fedora than the Ruby language used in GitLab.
The Forgejo platform is designed for deploying a collaborative system for working with Git repositories, similar to GitHub, Bitbucket, and Gitlab. Forgejo is a fork of the Gitea project, which itself branched from the Gogs platform. Forgejo separated in 2022 following attempts to commercialize Gitea and the transfer of control to a commercial company. Within the Forgejo project, independent developers aimed to maintain the principles of independent governance and community oversight. The project's code is written in Go. Starting with version 9.0, Forgejo's code is distributed under the GPLv3+ license, while the older code remains under the MIT license.
Key features of the Forgejo platform include low resource consumption (can be used on a Raspberry Pi or inexpensive hardware) VPS) and a simple installation process. Typical project management capabilities are provided, such as task management, issue tracking, pull requests, wikis, tools for coordinating developer teams, release preparation, automation of package deployment in repositories, access rights management, integration with continuous integration platforms, code search, authentication via LDAP and OAuth, repository access via SSH and HTTP/HTTPS protocols, webhooks integration for services like Slack, Discord, and others, support for Git hooks and Git LFS, migration and mirroring tools for repositories. Notably, it supports the ActivityPub protocol for connecting individual servers developers in a federated network.
Source: opennet.ru
