Fedora revisits the Git-forge debate
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.
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.
Posted Dec 2, 2021 13:55 UTC (Thu)
by mcatanzaro (subscriber, #93033)
[Link] (1 responses)
Posted Dec 2, 2021 16:45 UTC (Thu)
by mattdm (subscriber, #18)
[Link]
* 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)
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.
Posted Dec 2, 2021 19:34 UTC (Thu)
by anarcat (subscriber, #66354)
[Link] (2 responses)
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...
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.
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.
Posted Dec 2, 2021 14:28 UTC (Thu)
by ldearquer (guest, #137451)
[Link] (3 responses)
Posted Dec 2, 2021 22:11 UTC (Thu)
by intelfx (subscriber, #130118)
[Link] (2 responses)
Posted Dec 3, 2021 10:54 UTC (Fri)
by ddevault (subscriber, #99589)
[Link] (1 responses)
Posted Dec 10, 2021 7:27 UTC (Fri)
by marcH (subscriber, #57642)
[Link]
I don't what intelfx was referring to but supporting BOTH worlds means it is "esoteric" in none...
Posted Dec 3, 2021 3:19 UTC (Fri)
by alpha1 (subscriber, #75156)
[Link] (2 responses)
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.
Posted Dec 3, 2021 11:47 UTC (Fri)
by kpfleming (subscriber, #23250)
[Link]
Posted Dec 3, 2021 20:35 UTC (Fri)
by mattdm (subscriber, #18)
[Link]
Posted Dec 4, 2021 0:30 UTC (Sat)
by jlicht (subscriber, #112477)
[Link] (3 responses)
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.
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.
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.
Posted Dec 6, 2021 10:55 UTC (Mon)
by jlicht (subscriber, #112477)
[Link]
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!
Posted Dec 4, 2021 16:39 UTC (Sat)
by mattdm (subscriber, #18)
[Link]
Who said anything about "rolling over"? If we decide to use the SaaS offering, we absolutely will push GitLab on these things.
Posted Dec 6, 2021 11:16 UTC (Mon)
by sur5r (subscriber, #61490)
[Link]
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.
Posted Jan 1, 2022 19:51 UTC (Sat)
by 0x1b (subscriber, #135601)
[Link] (1 responses)
A change of framing may help this discussion - Happy New Year and have hope for 2022
Posted Jan 1, 2022 23:59 UTC (Sat)
by pebolle (guest, #35204)
[Link]
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.
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
* the source-git teams current plans for how it would like as an official, endorsed approach
* other ways we could do that
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
- 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.
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
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.
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
Fedora revisits the Git-forge debate
How to support pagure development?
Fedora revisits the Git-forge debate - consider the real resource at hand
Fedora revisits the Git-forge debate - consider the real resource at hand