|
|
Subscribe / Log in / New account

Fedora revisits the Git-forge debate

By Jake Edge
December 1, 2021

A seemingly straightforward question aimed at candidates for the in-progress Fedora elections led to a discussion on the Fedora devel mailing list that branched into a few different directions. The question was related to a struggle that the distribution has had before: whether using non-free Git forges is appropriate. One of the differences this time, though, is that the focus is on where source-git (or src-git) repositories will be hosted, which is a separate question from where the dist-git repository lives.

Background

The dist-git repository is the place where the distribution does most of its work to create and test packages, as described by Tomáš Tomeček back in May 2020. It works reasonably well for that, especially for those who are familiar with using it, but it is quite different than the Git repositories used by the upstream projects. It also has some seriously rough edges:

For some tasks, the workflow is just fine and pretty straightforward. But for the other, it’s very gruesome - the moment you need to touch patch files, the horror comes in. The fact that we operate with patch files, in a git repository, is just mind-boggling to me.

A blog post by Tomeček that introduces source-git gives a bit more information about dist-git. Each Fedora package has a dist-git repository that provides everything needed to create the binary RPM that gets shipped to users. That includes the RPM spec, source code, Fedora-specific patches, tests, and so on.

The dist-git repository has been (and still is) hosted on the Fedora Pagure code-hosting system, but maintaining Pagure had become something of a headache for the Red Hat Community Platform Engineering (CPE) team that manages the infrastructure for Fedora. Back in January 2020, that led to a gathering of requirements for what was needed in a Git-forge solution that would serve the needs of all of the distributions that Red Hat manages (Fedora, CentOS, and RHEL). The process ended acrimoniously after the botched announcement that CPE had chosen GitLab in what many in the Fedora community saw as a fait accompli. Roughly a year and a half later, a hosted GitLab service for Fedora was announced, which included some of the proprietary "ultimate tier" features, but Pagure would still be sticking around for the time being:

I know some of you are wondering what this means for Pagure.io and dist-git. The Community Platform Engineering (CPE) team will continue to run them in a supported mode as we do now. With the availability of GitLab, CPE and the Source Git SIG will continue to explore the FESCo [Fedora Engineering Steering Committee] feedback on what could make dist-git viable on GitLab in the future. We will also look for ways to integrate Gitlab into more of our tooling to provide options for the community. Right now though, this just adds another option for you to use. If you want to keep your work on Pagure, then by all means do.

The source-git effort (which is part of the Packit project) is a mechanism to make Git repositories for Fedora packages that mirror their upstream counterparts, to the point where the upstream developers will feel completely at home. It turns out that many Fedora packages were already being created that way, but in an ad hoc fashion. So source-git adds tooling to use the distribution-specific patches and build configuration (e.g. RPM spec files) to create a source RPM that can be used in dist-git to create the binary RPM for users. Currently, source-git is integrated with GitLab and GitHub, but not Pagure.

Question

It is against that backdrop Michael Catanzaro asked the candidates for FESCo and the Fedora Council about their thoughts on hosting source-git repositories: "do you support allowing Fedora src-git repositories to be hosted on gitlab.com, which a proprietary software git forge?" He noted that there are at least two options for an open-source solution, Pagure and the open-source version of GitLab, so he wanted to know where the candidates stood on that question. It turns out that the question is not entirely straightforward because it stems from something of a misunderstanding of the purposes of the source-git project—and how it interoperates with dist-git. It was also relatively easy to misunderstand what Catanzaro was actually asking, so the still unresolved question of where dist-git will be hosted was also re-litigated to a certain extent.

For example, FESCo candidate Fabio Valentini said that he was opposed to moving away from Pagure to "a proprietary solution from a vendor with an 'open core' business model", in part because it "sends the wrong message to the FOSS community". But he quickly realized that he had misunderstood the question; he has some concerns about source-git working with less popular forges, but is not completely opposed to hosting those repositories on GitHub and GitLab.

Fedora project leader Matthew Miller, who is not one of the candidates, took issue with the idea that Fedora might be sending the wrong message with its forge choices. There is a need to be pragmatic on certain choices (e.g. binary firmware) so that people can actually use the distribution on their machines, he said. Meanwhile, much of the open-source community has already chosen to use the Git* forges, so it makes sense to meet them where they "live":

More than that, though, if what we do sends a message... the message we are sending right now isn't working. People _aren't_ showing up in droves to help build Pagure. People aren't even showing up in significant numbers to _use_ Pagure outside of the Fedora space. And, again, that's not because Pagure isn't good — it is, with a great fundamental design where it's git all the way down. But our use of it hasn't changed the world, I don't see that improving. It doesn't _actually_ advance our mission and vision at all for us to be symbolically right if it doesn't change people's behavior, and... it doesn't.

Whenever this topic has come up, I've see lots of this, except people don't say the first part out loud: "Of course _I_ use GitHub for most of my stuff, because of all of the advantages — but Fedora, Fedora should never." We can't let ourselves be held by that.

I don't think Gitlab open core is ideal. But I think it's closer than GitHub. And I deeply believe that free software and real open source is _just plain better_ as a model, and I think they'll eventually realize that too. I think we could have a LOT more impact working WITH GitLab to move towards an all-open model than we will continuing on the current path.

In a response to Catanzaro's question, Miller made it clear that he believes that the answer to that "_has_ to be 'yes', and not just for GitLab but also GitHub". If the source-git repositories are going to be close to the upstream repositories, they need to be able to be on the same places that host those projects.

Beyond that, he segued into the question of dist-git as well. He noted the long list of open Pagure issues and said that the project is in an "emergency maintenance-only state". He pointed out that historically Fedora has been unable to set up and run an open-source GitLab instance, so that is not really a viable alternative either. He would much rather there be an open-source option, but does not really see one, though he hopes that GitLab could perhaps become that option some day. It is a matter of resource allocation, he said, and ended his message with a list of multiple other projects he would rather see the project focus on.

Catanzaro was somewhat surprised by that response, in part because he did not quite see how source-git and dist-git would work together.

src-git is exclusively used for downstream Fedora packaging, so I don't expect upstreams to be interested at all, unless upstream developers are also the Fedora packagers, right? I'm also assuming that direct commits to dist-git will be blocked if src-git is enabled -- because otherwise how would we keep them in sync and avoid breaking src-git? -- and the only way to commit to dist-git would be via src-git. Is that right too?

Miller said that there are quite a few upstream developers who are also Fedora packagers, so they will likely be interested in these source-git repositories. In addition, the Packit Service is a component that will keep the two repositories in sync so that contributors can use whichever of the two workflows they are most comfortable with. As David Cantrell put it: "No one is required to use it. If you are comfortable with using dist-git as you do now, that's fine."

Packit developer Hunor Csomortáni cautioned that source-git is still an experimental tool, though there is a goal to add it as an official option for Fedora packages:

All the work that is ongoing in this space is experimentation and custom tooling developed to support select packages. Yes, we (the Packit team) have a goal to propose to the Community to adopt the workflow as an alternative way of doing packaging work and allow source-git repositories to be hosted within Fedora realms, but that proposal has not been written yet.

For now, the question is only about where these experimental repositories can be hosted, but if source-git gets adopted as an option, it would be preferable to have both source-git and dist-git in the same forge, Csomortáni said. Currently there are "mixed signals" about where that would be, however. It would make sense to combine the repositories on a single forge for a few different reasons:

To have a better, less fragmented developer experience, lower maintenance and administration costs, and to ensure Community control over them, I think it would make sense to host official source-git repositories next to dist-git repos, in a sibling namespace, and be served by the same Git-forge.

Catanzaro was unconvinced by Miller's assertion that Fedora could not run its own open-source GitLab instance. "If GNOME and KDE and freedesktop.org and Debian and Purism can all do it, I'm pretty sure Fedora can too." Miller said that he would love to be proved wrong, but Stephen John Smoogen posted a message describing the problems that have cropped up when trying do so in the past. Those efforts have run aground on the same kinds of problems that plague all projects: "Getting an open source gitlab is not impossible. It just takes a lot of free time, systems and work done somewhere to make it happen."

No real conclusions came out of the discussion, but it would seem that at least the ideas behind source-git and its goals will be better understood. There is still the lurking problem of dist-git moving to the proprietary GitLab instance that CPE has set up; it is likely that the other open-source alternatives (Pagure or open-source GitLab) are not going to make the cut. That is understandably frustrating for many free and open-source software advocates in Fedora (and elsewhere), but also may be the least-bad option at this point. There are other important goals that the distribution has, in the eyes of some anyway, so putting energy into those things may be a better way for the project to advance—time will tell.



to post comments

Fedora revisits the Git-forge debate

Posted Dec 2, 2021 1:19 UTC (Thu) by mattdm (subscriber, #18) [Link] (5 responses)

My only regret is that my long list of other important stuff we could be working on didn't make the article.

But also, I need to make correction — I said that Red Hat was offering to provide GitLab (SaaS) to us, but in fact it is directly GitLab, through their program for open source.

Fedora revisits the Git-forge debate

Posted Dec 2, 2021 13:55 UTC (Thu) by mcatanzaro (subscriber, #93033) [Link] (1 responses)

Another correction: "No one is required to use it. If you are comfortable with using dist-git as you do now, that's fine." This is half true: as long as you don't edit the package sources or patches, changes in dist-git will get synced back to src-git, but you cannot edit the sources or patches. This means that use of src-git will indeed be required to make changes to packages that opt-in.

Fedora revisits the Git-forge debate

Posted Dec 2, 2021 16:45 UTC (Thu) by mattdm (subscriber, #18) [Link]

Well, there's some difference between:

* how it is now (where what I said is pragmatically true, even if source-git tools don't currently automate things, because they'll get conflicts they have to deal with)
* the source-git teams current plans for how it would like as an official, endorsed approach
* other ways we could do that

One model, which Hunor Csomortáni is advocating for, would have centralized source-git collection (similar to dist-git), totally unlike what I said about it being distributed everywhere. And in that world, yeah, that set of repos — which almost certainly would be on GitLab, whether self-hosted or the SaaS offering — would be the _primary_ view of Fedora packaging for most people, with dist-git an important but under the hood implementation detail.

Fedora revisits the Git-forge debate

Posted Dec 2, 2021 19:34 UTC (Thu) by anarcat (subscriber, #66354) [Link] (2 responses)

That is one thing I couldn't understand from the original article: why can RedHat host GitLab, the proprietary version, but not the opensource version?

Are you saying that RedHat wouldn't host the GitLab server themselves and this would be offloaded to GitLab.com altogether?

I can understand using GitLab.com's SaaS offering: you get tech support. But just paying for the software doesn't seem to help the "it's hard to host" problem at all... You're just paying for a license, and per seat too...

Fedora revisits the Git-forge debate

Posted Dec 2, 2021 19:55 UTC (Thu) by mattdm (subscriber, #18) [Link] (1 responses)

Right — Red Hat isn't hosting it; Red Hat is using the SaaS version for RHEL development, and GitLab is offering https://gitlab.com/fedora SaaS to the Fedora Project as part of their access program for open source projects

The issue is that GitLab does not have a SaaS offering which runs their open source codebase, and that even if they did, some of the infrastructure integrations we will need to match what we have with Pagure are not part of that.

Fedora revisits the Git-forge debate

Posted Jan 10, 2022 0:17 UTC (Mon) by 0A (guest, #126874) [Link]

The issue is that GitLab does not have a SaaS offering which runs their open source codebase

Were they asked that? I see how that's something they might not have thought in providing "So you want a version with less features??", but if there is interest they should have no problem in providing a libre-only SaaS.

And, getting Fedora with them is probably juicy enough for them to spend the effort in either freeing certain parts or adapting others so it's easier to run the open source code in their setup.

Depending on the integrations you require for matching Pagure that may be actually possible or not.

But it'd be probably worth asking.

Fedora revisits the Git-forge debate

Posted Dec 2, 2021 14:28 UTC (Thu) by ldearquer (guest, #137451) [Link] (3 responses)

Was Sourcehut discussed? We considered it at $DAYJOB, but the discussion was posponed until it reaches beta (and we find some spare time to overcome our current-forge inertia)

Fedora revisits the Git-forge debate

Posted Dec 2, 2021 22:11 UTC (Thu) by intelfx (subscriber, #130118) [Link] (2 responses)

With all due respect to Drew, SourceHut is a _very_ esoteric forge, and not necessarily in a good way.

Fedora revisits the Git-forge debate

Posted Dec 3, 2021 10:54 UTC (Fri) by ddevault (subscriber, #99589) [Link] (1 responses)

I don't think that's fair. The main thing which sets it apart from other forges is the use of email for patches, which is how many FOSS projects are already developed. So it's only esoteric if you ignore the hundreds of important FOSS projects which are already using email. And, if you don't like it, there is a web interface which is much like submitting a pull request on any of the other forges which copy the GitHub model.

Fedora revisits the Git-forge debate

Posted Dec 10, 2021 7:27 UTC (Fri) by marcH (subscriber, #57642) [Link]

> And, if you don't like it [the email interface[, there is a web interface

I don't what intelfx was referring to but supporting BOTH worlds means it is "esoteric" in none...

Fedora revisits the Git-forge debate

Posted Dec 3, 2021 3:19 UTC (Fri) by alpha1 (subscriber, #75156) [Link] (2 responses)

I am surprised that Gitea does not show up in these discussions. I have used it quite happily in the past. It seems (to me) to meet many of the requirements that open source projects need:
- Simple to deploy and maintain/upgrade (a single Go binary and an open source SQL server + reverse proxy are sufficient).
- Completely open source.
- Very user friendly.

I have seen it make a lot of progress since it forked from Gogs, and it seems to have a healthy development community. I am not suggesting it is perfect, but in my experience it has worked quite well.

Fedora revisits the Git-forge debate

Posted Dec 3, 2021 11:47 UTC (Fri) by kpfleming (subscriber, #23250) [Link]

Agreed, Gitea is fantastic.

Fedora revisits the Git-forge debate

Posted Dec 3, 2021 20:35 UTC (Fri) by mattdm (subscriber, #18) [Link]

I would absolutely be willing to entertain a Gitea-based solution for Fedora, were someone to demonstrate a proof of concept and a plan for ongoing maintenance. This actually did come up in our prior conversation, and from what I remember the concern was that the design is not meant to be very extensible, and we might end up with a pretty far-from-upstream fork in practice, which would basically put us right back into the situation we already have with Pagure.

Fedora revisits the Git-forge debate

Posted Dec 4, 2021 0:30 UTC (Sat) by jlicht (subscriber, #112477) [Link] (3 responses)

Comparing the choice of git forge with the practical need for proprietary firmware seems a bit far-fetched. Choosing a git forge is not a decision made out of pragmatism, but one of convenience, at least compared to the firmware one. The alternative in the case of firmware is owning a set of expensive paperweights, whereas there are more than enough choices w.r.t. git forges. The FOSS ones can even be improved to support Fedora’s fancy use-case.

Implying that serious Fedora development has to happen through software that will never be packaged in Fedora proper, to me means that even the Fedora contributors don’t consider it a serious platform to work with.
For what it’s worth, I actually do. Dogfooding does not just allow you to understand your product better; it also sends a message of confidence.

I hope that the Fedora powers-that-be reconsider, and perhaps petition GitLab to move the missing pagure features to the Free version, instead of rolling over like this. It would be great PR for GitLab the company as well, and perhaps be a way to make everyone happy.

Fedora revisits the Git-forge debate

Posted Dec 4, 2021 16:37 UTC (Sat) by mattdm (subscriber, #18) [Link] (1 responses)

Remember, like any volunteer project, Fedora is made up of people. Of course we have ideals — we're really brought together by an idealistic vision, but those ideals are not the project.

As I said in the my message you can find linked in the story above, we have so much more to do to realize the ideal world we want to get to. The pragmatic choice here is: where to put our efforts? Is git-forge construction and maintenance the most important place to put our limited time and energy out of all of the possibilities and interest? Well, it turns out in actual practice, people don't really think it is. Otherwise, we wouldn't be having this conversation.

If you think that's wrong, you are (again, I say this with 100% seriousness), invited to make this theoretical Pagure or GitLab CE "message of confidence" into reality. But it can't be a decision of "powers-that-be". It needs to be effort from people-who-do.

Fedora revisits the Git-forge debate

Posted Dec 6, 2021 10:55 UTC (Mon) by jlicht (subscriber, #112477) [Link]

If folks actually don’t care about the forge, we wouldn’t be here as “Fedora does not revisit Git-forge debate” does not make for informative reading.

If the people-who-do want to revisit the guiding principles, either by discussing them or implicitly through their actions, then they can and they should! The privilege that comes with doing things is being able to decide what gets done. I would still argue that what makes Fedora-the-distro and Fedora-the-community most awesome is not the technical excellence, but their preference for ‘approaches that benefit the progress of free software in the future over those that emphasize short term ease of use’.

Thanks for the clarifying words!

Fedora revisits the Git-forge debate

Posted Dec 4, 2021 16:39 UTC (Sat) by mattdm (subscriber, #18) [Link]

> I hope that the Fedora powers-that-be reconsider, and perhaps petition GitLab to move the missing pagure features to the Free version, instead of rolling over like this. It would be great PR for GitLab the company as well, and perhaps be a way to make everyone happy.

Who said anything about "rolling over"? If we decide to use the SaaS offering, we absolutely will push GitLab on these things.

How to support pagure development?

Posted Dec 6, 2021 11:16 UTC (Mon) by sur5r (subscriber, #61490) [Link]

Is there a way to donate to the pagure efforts? I could not find anything, yet.

I'm convinced it's an important project and IMHO the only one designed to be a viable GitLab alternative due to its modular and extensible architecture.

Also, does anyone know what happend to repospanner? I found the GitHub project archived but no information why that happened.

Fedora revisits the Git-forge debate - consider the real resource at hand

Posted Jan 1, 2022 19:51 UTC (Sat) by 0x1b (subscriber, #135601) [Link] (1 responses)

It may be useful to think of the tremendous attention Fedora's choice can bring - whichever is the project, it will benefit from a surge of fresh users and new challenges. IF you want to support free software, pick a project that will benefit from this new resource. If you focus on what already is, then you have already abandoned the engine that drives free software.

A change of framing may help this discussion - Happy New Year and have hope for 2022

Fedora revisits the Git-forge debate - consider the real resource at hand

Posted Jan 1, 2022 23:59 UTC (Sat) by pebolle (guest, #35204) [Link]

> It may be useful to think of the tremendous attention Fedora's choice can bring - whichever is the project, it will benefit from a surge of fresh users and new challenges. IF you want to support free software, pick a project that will benefit from this new resource.

How is Fedora able to bring tremendous attention in a world where so much computing is done one locked down appliances and cloud computing controlled by moguls? What actually is the, well, market share of free desktops and free servers?

> If you focus on what already is, then you have already abandoned the engine that drives free software.

As if Free Software has any ability to focus. It has this remarkable tendency to spread its limited resources to as many projects as possible.


Copyright © 2021, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds