Alioth moving toward pagure
Since 2003, the Debian project has been running a server called Alioth to host source code version control systems. The server will hit the end of life of the Debian LTS release (Wheezy) next year; that deadline raised some questions regarding the plans for the server over the coming years. Naturally, that led to a discussion regarding possible replacements.
In response, the current Alioth maintainer, Alexander Wirt, announced a sprint to migrate to pagure, a free-software "Git-centered forge" written in Python for the Fedora project, which LWN covered last year. Alioth currently runs FusionForge, previously known as GForge, which is the free-software fork of the SourceForge code base when that service closed its source in 2001. Alioth hosts source code repositories, mainly Git and Subversion (SVN) and, like other "forge" sites, also offers forums, issue trackers, and mailing list services. While other alternatives are still being evaluated, a consensus has emerged on a migration plan from FusionForage to a more modern and minimal platform based on pagure.
Why not GitLab?
While this may come as a surprise to some who would expect Debian to use the more popular GitLab project, the discussion and decision actually took place a while back. During a lengthy debate last year, Debian contributors discussed the relative merits of different code-hosting platforms, following the initiative of Debian Developer "Pirate" Praveen Arimbrathodiyil to package GitLab for Debian. At that time, Praveen also got a public GitLab instance running for Debian (gitlab.debian.net), which was sponsored by GitLab B.V. — the commercial entity behind the GitLab project. The sponsorship was originally offered in 2015 by the GitLab CEO, presumably to counter a possible move to GitHub, as there was a discussion about creating a GitHub Organization for Debian at the time. The deployment of a Debian-specific GitLab instance then raised the question of the overlap with the already existing git.debian.org service, which is backed by Alioth's FusionForge deployment. It then seemed natural that the new GitLab instance would replace Alioth.
But when Praveen directly proposed to move to GitLab, Wirt stepped in
and explained that a migration plan was already in progress. The
plan then was to migrate to a simpler gitolite-based setup, a
decision that was apparently made in corridor discussions surrounding
the Alioth Git replacement BoF held during Debconf 2015. The
first objection raised by Wirt against GitLab was its "huge number of
dependencies
". Another issue Wirt identified was the "open core /
enterprise model
", preferring a "real open source system
", an opinion
which seems shared by other participants on the mailing
list. Wirt backed his concerns with an hypothetical example:
This concern was further deepened when GitLab's Director of Strategic Partnerships, Eliran Mesika, explained the company's stewardship policy that explains how GitLab decides which features end up in the proprietary version. Praveen pointed out that:
Since there are over 600 Debian Developers, the community seems to fall within the needs of "enterprise" users. The features the Debian community may need are, by definition, appropriate only to the "Enterprise Edition" (GitLab EE), the non-free version, and are therefore unlikely to end up in the "Community Edition" (GitLab CE), the free-software version.
Interestingly, Mesika asked
for clarification on which features were
missing, explaining that GitLab is actually open to adding features
to GitLab CE. The response
from Debian Developer Holger Levsen was
categorical: "It's not about a specific patch. Free GitLab and we can
talk again.
" But beyond the practical and ethical concerns, some
specific features
Debian needs are currently only in GitLab EE. For example,
debian.org systems use LDAP for authentication, which would obviously
be useful in a GitLab deployment; GitLab CE supports basic LDAP
authentication, but advanced features, like group or SSH-key
synchronization, are only available in GitLab EE.
Wirt also expressed concern about the Contributor License Agreement that GitLab B.V. requires contributors to sign when they send patches, which forces users to allow the release of their code under a non-free license.
The debate then went on going through a exhaustive inventory of different free-software alternatives:
- GitLab, a Ruby-based GitHub replacement, dual-licensed MIT/Commercial
- Gogs, Go, MIT
- Gitblit, Java, Apache-licensed
- Kallithea, in Python, also supports Mercurial, GPLv3
- and finally, pagure, also written Python, GPLv2
A feature comparison between each project was created in the Debian wiki as well. In the end, however, Praveen gave up on replacing Alioth with GitLab because of the controversy and moved on to support the pagure migration, which resolved the discussion in July 2016.
More recently, Wirt admitted in
an IRC conversation that "on the technical side I like GitLab a lot
more than pagure" and that "as a user, GitLab is much nicer than
pagure and it has those nice CI [continuous integration]
features". However, as he
explained in his blog "GitLab is Opencore, [and] that it is not
entirely opensource. I don't think we should use software licensed
under such a model for one of our core services
" which leaves pagure
as the only stable candidate. Other candidates were excluded on
technical grounds, according to Wirt: Gogs "doesn't scale well" and a
quick security check didn't yield satisfactory results; "Gitblit is
Java" and Kallithea doesn't have support for accessing repositories over
SSH (although there is a pending pull
request to add the feature).
In an email interview, Sid Sijbrandij, CEO of GitLab, did say that "we want to make sure that our open source edition can be used by open source projects". He gave examples of features liberated following requests by the community, such as branded login pages for the VLC project and GitLab Pages after popular demand. He stressed that "There are no artificial limits in our open source edition and some organizations use it with more than 20.000 users." So if the concern of the Debian community is that features may be missing from GitLab CE, there is definitely an opening from GitLab to add those features. If, however, the concern is purely ethical, it's hard to see how an agreement could be reached. As Sijbrandij put it:
On the mailinglist it seemed that some Debian maintainers do not agree with our open core business model and demand that there is no proprietary version. We respect that position but we don't think we can compete with the purely proprietary software like GitHub with this model.
Working toward a pagure migration
The issue of Alioth maintenance came up again last month when Boyuan Yang asked what would happen to Alioth when support for Debian LTS (Wheezy) ends next year. Wirt brought up the pagure migration proposal and the community tried to make a plan for the migration.
One of the issues raised was the question of the non-Git repositories hosted on Alioth, as pagure, like GitLab, only supports Git. Indeed, Ben Hutchings calculated that while 90% (~19,000) of the repositories currently on Alioth are Git, there are 2,400 SVN repositories and a handful of Mercurial, Bazaar (bzr), Darcs, Arch, and even CVS repositories. As part of an informal survey, however, most packaging teams explained they either had already migrated away from SVN to Git or were in the process of doing so. The largest CVS user, the web site team, also explained it was progressively migrating to Git. Mattia Rizzolo then proposed that older repository services like SVN could continue running even if FusionForge goes down, as FusionForge is, after all, just a web interface to manage those back-end services. Repository creation would be disabled, but older repositories would stay operational until they migrate to Git. This would, effectively, mean the end of non-Git repository support for new projects in the Debian community, at least officially.
Another issue is the creation of a Debian package for
pagure. Ironically, while Praveen and other Debian maintainers have
been working for 5 years to package GitLab for Debian,
pagure isn't packaged
yet. Antonio Terceiro, another
Debian Developer, explained
this isn't actually a large problem for
debian.org services: "note that DSA [Debian System Administrator
team] does
not need/want the service
software itself packaged, only its dependencies
". Indeed, for
Debian-specific code bases like ci.debian.net
or tracker.debian.org, it may not make sense to have the overhead
of maintaining Debian packages since those tools have limited use outside
of the Debian project directly. While Debian derivatives and other
distributions could reuse them, what usually happens is that other
distributions roll their own software, like Ubuntu did with the
Launchpad project. Still, Paul Wise, a member of the DSA team, reasoned
that it was better, in the long
term, to have Debian packages for debian.org services:
Wise did say that "DSA doesn't have any hard rules/policy written
down, just evaluation on a case-by-case basis
" which probably means
that pagure packaging will not be a blocker for deployment.
The last pending issue is the question of the mailing lists hosted on Alioth, as pagure doesn't offer mailing list management (nor does GitLab). In fact, there are three different mailing list services for the Debian project:
- the main service, lists.debian.org, running
Mailman 2SmartList and managed by hand - the Alioth service, lists.alioth.debian.org, running Mailman 2 and managed by FusionForge
- the Debconf service, lists.debconf.org, also running Mailman 2
Wirt, with his "list-master hat" on, explained that the main mailing list
service is "not really suited as a self-service
" and expressed concern
at the idea of migrating the large number mailing lists hosted on
Alioth. Indeed, there are around 1,400 lists on Alioth while the main
service has a set of 300 lists selected by the list masters. No solution
for those mailing
lists was found at the time of this writing.
In the end, it seems like the Debian project has chosen pagure, the simpler, less featureful, but also less controversial, solution and will use the same hosting software as their fellow Linux distribution, Fedora. Wirt is also considering using FreeIPA for account management on top of pagure. The plan is to migrate away from FusionForge one bit at a time, and pagure is the solution for the first step: the Git repositories. Lists, other repositories, and additional features of FusionForge will be dealt with later on, but Wirt expects a plan to come out of the upcoming sprint.
It will also be interesting to see how the interoperability promises of pagure will play out in the Debian world. Even though the federation features of pagure are still at the early stages, one can already clone issues and pull requests as Git repositories, which allows for a crude federation mechanism.
In any case, given the long history and the wide variety of workflows
in the Debian project, it is unlikely that a single tool will solve
all problems. Alioth itself has significant overlap with other Debian
services; not only does it handle mailing lists and forums, but it also
has its own issue tracker that overlaps with the Debian bug tracking system
(BTS). This is
just the way things are in Debian: it is an old project with lots of
moving part. As Jonathan Dowland put
it: "The nature of the project is loosely-coupled, some
redundancy, lots
of legacy cruft, and sadly more than one way to do it.
"
Hopefully, pagure will not become part of that "legacy redundant cruft". But at this point, the focus is on keeping the services running in a simpler, more maintainable way. The discussions between Debian and GitLab are still going on as we speak, but given how controversial the "open core" model used by GitLab is for the Debian community, pagure does seem like a more logical alternative.
| Index entries for this article | |
|---|---|
| GuestArticles | Beaupré, Antoine |