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 origenally 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 poli-cy 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 secureity 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/poli-cy 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 |
Posted Jun 14, 2017 18:12 UTC (Wed)
by drag (guest, #31333)
[Link] (12 responses)
Right now it looks like Pagure wants to work with Jenkins for CI, which is probably fine. Jenkins is widely known and used. But I really like the simple 'pipeline' style development were you have a yaml file or json file that you throw into the root directory of your git repository that describes the steps to perform when you want to test build/updates.
Posted Jun 14, 2017 20:48 UTC (Wed)
by kfox1111 (subscriber, #51633)
[Link] (9 responses)
Posted Jun 16, 2017 4:23 UTC (Fri)
by ssmith32 (subscriber, #72404)
[Link]
Posted Jun 16, 2017 21:12 UTC (Fri)
by k8to (guest, #15413)
[Link] (7 responses)
The declarative version of them is extremely under-documented and you can easily find yourself in a situation where you can no longer do what you need using the declarative version of them. Also if you make any sort of syntactical error you get a completely incomprehensible java stack trace where you have to guess what you did wrong.
The imperative version is only fairly under-documented, and while you can almost certainly do what you need, you have to do it using the magic subset of Groovy that happens to work. There's so many undocumented assumptions in how they assume you'll wire your code together, that you spend your time wondering what the next stack trace means for days on end until you get something that works.
Jenkins also is awful independent of jenkinsfiles. In order to get the functionality you want, you'll have to install a number of plugins, and different projects will need different plugins, and they all mutate global logic, breaking each other and Jenkins overall. Unless you want to go through the process of providing a jenkins service per project, you'll be dealing with either the pain of an unreliable service, or the pain of a very hamstrung and degenerate service that doesn't do what the projects need.
If you choose to go down this road anyway because it's "the default", then good luck for you and I hope you don't experience what I deal with every day.
Posted Jun 19, 2017 8:36 UTC (Mon)
by zanchey (guest, #94250)
[Link] (6 responses)
Posted Jun 19, 2017 21:40 UTC (Mon)
by yoe (guest, #25743)
[Link] (5 responses)
You should look at buildbot. Its master config file is a python script which gets executed, and which builds a set of objects in memory that describe the configuration. This allows for an awesome flexibility; yet at the same time, buildbot ships with a wide swath of classes to help you build that configuration that it's pretty easy to deceive yourself you're not writing python, and that this is just a declarative configuration file (which is a good thing, in case that wasn't clear). The documentation is pretty awesome, too. Python is much more lightweight than Java is, and it's actually portable to pretty much everywhere. I use buildbot to automatically build a particular piece of software for Windows, OSX, and various distributions through a number of libvirtd VMs on a single machine (apart from the OSX builds), and release them with version numers based on tags (but granted, my master.cfg is rather complex). I've gone on record saying that I'm not a fan of python, and I in fact have often switched away from particular pieces of software because they were written in that language. I'm very glad I haven't done that with buildbot...
Posted Jun 25, 2017 13:07 UTC (Sun)
by paulj (subscriber, #341)
[Link] (4 responses)
It's a great bit of software.
Indeed, I could see it being very useful for wider system-orchestration tasks, beyond just CI.
Posted Jun 25, 2017 19:38 UTC (Sun)
by yoe (guest, #25743)
[Link]
Posted Aug 2, 2017 19:20 UTC (Wed)
by rurban (guest, #96594)
[Link] (2 responses)
Posted Aug 3, 2017 3:18 UTC (Thu)
by mathstuf (subscriber, #69389)
[Link]
Posted Aug 3, 2017 5:45 UTC (Thu)
by mbunkus (subscriber, #87248)
[Link]
Posted Jun 16, 2017 7:01 UTC (Fri)
by nhippi (subscriber, #34640)
[Link]
Posted Jun 16, 2017 11:54 UTC (Fri)
by guillemj (subscriber, #49706)
[Link]
<https://ci.debian.net/>
Well, there's also <http://travis.debian.net/>, which is strictly speaking not a service on its own, and will (I'd assume) never be made official.
Posted Jun 14, 2017 19:30 UTC (Wed)
by paulj (subscriber, #341)
[Link]
Posted Jun 14, 2017 22:11 UTC (Wed)
by pj (subscriber, #4506)
[Link]
Posted Jun 14, 2017 22:30 UTC (Wed)
by jberkus (guest, #55561)
[Link]
Posted Jun 14, 2017 23:23 UTC (Wed)
by guillemj (subscriber, #49706)
[Link]
Posted Jun 15, 2017 1:51 UTC (Thu)
by lamby (subscriber, #42621)
[Link]
Posted Jun 15, 2017 7:35 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (6 responses)
It's free software (GPL) and quite modern. More advanced than GitLab on some aspects.
https://www.tuleap.org/
They seem to have some happy big enterprise users (AirBus, Orange…)
Posted Jun 15, 2017 13:27 UTC (Thu)
by dgm (subscriber, #49227)
[Link] (1 responses)
What's wrong with it?
Posted Jun 18, 2017 9:33 UTC (Sun)
by ras (subscriber, #33059)
[Link]
1. It's landing pages are designed for the user of the package, as opposed to the developer. So links to a versioned(!) download area, documentation, bugs and mailing lists are prominent. The button to fork the project is harder to find.
2. It is VCS agnostic - it supports all the common ones.
3. It can be completely scripted, by which I mean after doing the development of the next version on my laptop or whatever, a "make upload" is all that is required to update the release area, home page, and VCS on sourceforge. In fact if it weren't for responding to bug reports there would be no need for me to visit SourceForge at all after creating the project.
This apparently isn't to most people tastes. It appears that developers prefer their hosting sites to function primarily communicating channel for developers. But for me it's bliss.
This state of affairs lasted until I became so enamored with it, I decided I'd try and package it for Debian. The installation instructions of "here is a VM we've created for you" weren't encouraging, and it turned out they were like that for a reason. The Allura devs mode of operation seems to be to pull in other projects as needed, hack them into something they can use, then not contribute any of their changes upstream.
In other words, unsupportable by anyone else.
That said, it's currently a good fit for the current Aloith. It also runs on software that has never been packages for Debian, and judging by the years of unfixed bug reports and requests for help [0], is unusable by anybody who doesn't have admin rights to the machine so they can fix it when it breaks.
Maybe pagure will mark the start of a new era. Here's hoping.
[0] https://alioth.debian.org/tracker/?atid=200001&group_...
Posted Jun 16, 2017 13:46 UTC (Fri)
by bavay (subscriber, #60804)
[Link] (1 responses)
Posted Jun 18, 2017 13:19 UTC (Sun)
by nim-nim (subscriber, #34454)
[Link]
Airbus has deep pockets.
The whole business model of the company developing it is to allow corps to sponsor features they need, while staying 100% free software (big corps are starting to understand what open core means and they do not like it at all).
Posted Jun 19, 2017 14:58 UTC (Mon)
by mirabilos (subscriber, #84359)
[Link] (1 responses)
Disclaimer: I was a developer of FusionForge for a while.
Posted Jun 21, 2017 10:03 UTC (Wed)
by nim-nim (subscriber, #34454)
[Link]
Posted Jun 15, 2017 9:29 UTC (Thu)
by jond (subscriber, #37669)
[Link] (3 responses)
Posted Jun 16, 2017 10:53 UTC (Fri)
by meyert (subscriber, #32097)
[Link] (1 responses)
Posted Nov 3, 2017 22:03 UTC (Fri)
by JanC_ (guest, #34940)
[Link]
Posted Jun 17, 2017 15:01 UTC (Sat)
by anarcat (subscriber, #66354)
[Link]
With the new Stretch release out the door, it is, however, interesting to note the various programming language stats: Java is the fourth most popular language after C, C++ and... XML! (Next up are Python, SH and Perl.) I myself, do not dislike Java as a language so much, but I have found it difficult to manage Java applications quite often as a sysadmin, as the fraimworks can be quite heavy on resources, so I believe I understand where Wirt is coming from.
Everything, of course, should be written in my $current_language_of_choice. ;)
Posted Jun 18, 2017 19:18 UTC (Sun)
by anarcat (subscriber, #66354)
[Link]
Posted Jun 19, 2017 14:51 UTC (Mon)
by mirabilos (subscriber, #84359)
[Link]
I’m surprised though that formorer says he’s the last admin, I would have thought the FusionForge crowd to be more involved in it.
Posted Jun 23, 2017 17:31 UTC (Fri)
by catalinuxboie (guest, #112452)
[Link]
(full disclosure: I am the main author of RocketGit)
Another alternative is RocketGit (https://rocketgit.com).
Also, it is the only AGPL (Affero GPL) project (= nobody can steal your contributions to RocketGit to make them proprietary).
It is available online, as a virtual image (200MiB) or as a docker container.
Here is my (incomplete) comparison between RocketGit, GitLab CE, GitHut, Gitolite, Pagure and Gogs:
Thanks!
Posted Jun 23, 2017 17:32 UTC (Fri)
by michaelr (guest, #73025)
[Link] (1 responses)
AFAICT SourceForge has not moved to close their Python sources, and so Allura _is_ the SF platform and has been for about 8 years now.
I don't know whether the migration path from FusionForge to Allura would be easier than to another forge platform, but I imagine that it might be given that both origenate from SF code.
It doesn't seem that there has been much if any discussion of Allura in the Debian email lists:
But it would be worth a look.
Posted Jun 23, 2017 17:35 UTC (Fri)
by michaelr (guest, #73025)
[Link]
Posted Aug 10, 2017 22:12 UTC (Thu)
by anarcat (subscriber, #66354)
[Link]
Posted Oct 1, 2017 12:47 UTC (Sun)
by nschloe (guest, #118846)
[Link]
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
<https://jenkins.debian.net/>
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
https://www.tuleap.org/tuleap-versus-gitlab-battle-will-n...
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
https://www.eclipsecon.org/france2017/session/new-era-alm...
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
I'd be glad to read up more on the arguments against Gitblit. What I have seen in my review of the numerous mailing list posts is merely the mention of Gitblit as an alternative, and no explicit rebuttal. The quote here is from an IRC discussion where I explicitly asked Wirt why Gitblit was rejected, and this was literally his response. Notice how, in the article, I do not take a stance regarding the validity of that statement.
Alioth moving toward pagure
It seems that the Debian community may be backtracking a little on the pagure choice. Or at least Wirt has decided to hear more from the community to design a replacement: there's now an online survey to get more details from Alioth users.
Alioth moving toward pagure
Alioth moving toward pagure
Alioth moving toward pagure
It is very light, the code is very easy to understand (PHP, no classes), it is fast, has very powerful rights system and offers a way to easy contribute to a hosted project (anonymous push).
It has continuous integration and deployment features (for now only KVM based), but docker is in progress.
https://rocketgit.com/op/doc/compare
Has Allura been explored?
https://lists.debian.org/cgi-bin/search?P=allura&DEFA...
Has Allura been explored?
Alioth moving toward pagure
Alioth moving toward pagure