After evaluating over 300 user stories from multiple stakeholders we have aligned on a decision for the Gitforge that CPE will operate for the coming years. We are opting for Gitlab for our dist git and project hosting and will continue to run pagure.io with community assistance.
A lot of comments and concerns were raised about the suitability of Github as a forge of choice. The preference from all stakeholders (Fedora, CentOS, RHEL, CPE) is that Github is not a contender and not a preference, with that in mind, we have decided to not analyse it as an option and respect the wider wishes of our stakeholders. Therefore the rest of this analysis focuses on Pagure versus Gitlab as our choice.
Looking at the user story list, we have a picture of a standard set of practices that users expect to have from a Gitforge. The basics of storing code, accessing it, merging, forking and the traditional git workflow are satisfied by both Forges under investigation.
A key requirement coming to us is security. The need for HTTP/S pushes, the need for more stringent branch control via protected and private branches is a key operating requirement of the CentOS stakeholders. The need to interface with internal and external users in a private capacity whereby embargoed content can be worked on in private is a necessary requirement.
Another key requirement is usability and accessibility. It is clear that our current forge solution is used as a mixture of ticket tracker, work planning, code repository and storage of documents and other artifacts. The barrier to usage needs to be low to attract drive by users and a strong representation was made for the need to have more accessible ways to interface with the system from a GUI to a command line client.
Developer centric needs came from multiple sources. Integrations with daily workflow, integrations within the IDE, integrations in an always ready and always on approach (SLA requirements were high) as well as the ability to use the forge as a means to improve the codebase (auto notifications of issues, interactive PR reviews etc.) and way of working by providing analytical output was also raised.
A big factor in a decision here needs to be both the immediate usability to meet stakeholder needs that includes an immovable deliverable for CentOS Stream which CPE must deliver by the end of the year.
Another major factor is the stability, availability and responsiveness of the platform chosen. While no Forge meets the full suite of requirements, the issue of stability, availability and some of the richer features that were requested are currently not available in Pagure. Gitlab provides the most feature rich experience out of the box and the recommendation of the CPE Management is to opt for Gitlab as our chosen Forge for dist-git and general project hosting. For pagure.io we want to offer it to the community to maintain. CPE would provide power and ping and the rest of it will be up to the community willing to do the work. If no-one steps up to pick the maintenance of pagure.io, it will be a candidate application to sunset. Some top level requirements which helped us arrive at this decision:
The opportunity cost to invest our finite resources into bringing Pagure up to the minimum standard that we require by the end of the year would mean feature starving both Fedora and CentOS for the next 18-24 months as we strive for the optimal standard. As a team, we spend 40% of our available resources on keeping the lights on day to day with a very small amount of that improving our technical debt situation. We are spending 30% of our team on delivering CentOS Stream. The available bandwidth for the team is not at a point that we could safely and with confidence deliver the required features to make Pagure work as our Forge of choice. It additionally would have a longer term impact with our lights on work needing to expand to move Pagure to an SLA, tilting our resourcing plan for that body of work towards 60% of our capacity. We feel this is not a responsible decision that we can make as the inward investment in a Forge is not something that we can do at the expense of planned initiatives that are on our backlog. Some of them include a better packager workflow, more investment in CI/CD to remove CPE from manual work and empower the community to do more things in our infrastructure, more observability and monitoring of our infra and services, movement of services towards the Cloud to make use of a modern tech stack and that's before we consider immovable service progression that we simply have to undertake, for example, the new Auth / AAA system.
However, we do not want to abandon Pagure and our plan going forward is thus.
We recognize how difficult a decision this is and we empathize with the emotional attachment to Pagure. It is why we want to have a mutually beneficial approach to ultimately allow Pagure to grow and flourish and allow our community members to setup and work with any Forge they wish. This ultimately allows the CPE team to focus on adding value to a greater scale of initiatives . This approach allows us to focus on value added services and initiatives that will benefit a large percentage of our communities instead of focusing on a singular foundational service which would ultimately consume our finite resourcing and limit our impact on both Communities.
-- Jim and Leigh