Source code hosting tools comparison

GITLAB

https://about.gitlab.com/
Testing instance

Pros

  • The most powerful
  • Already known and used by many people
  • Great documentation
  • Project/Kanban board integrated
  • Links with bugzilla
  • Distro-independent
  • Infra Team able to manage and maintain
  • Upstream is big enough to be guaranteed to not disappear
  • Can be packaged as an RPM in the distribution
  • Looks like Github
  • Advocated even by FLOSS nazis (figuratively speaking or course, they’re not actual nazi :wink: ) like Debian

Cons

  • Open Core (core vs proprietary enterprise editions)
  • Upstream maintained by fairly large US company

Notes:


GITEA

https://gitea.io/
Testing instance

Pros

  • The most lightweight
  • Easy abf integration
  • Distro-independent
  • Infra Team able to manage and maintain
  • The most preferred by abf-gurus
  • Fully open, no closed source addons
  • Not under the control of a large company
  • Can be packaged as an RPM in the distribution

Cons

  • lacks some features, but those could probably be replaced by additional tools (e.g. Taiga, Wekan, Kanboard)

REDMINE

https://www.redmine.org/
Testing instance

Pros

  • Full featured

Cons

  • not very beautiful

PAGURE

https://pagure.io/
Testing instance

Pros

  • Very lightweight (Python + Flask web app)
  • Well-documented
  • Easily integrated with ABF ← This is arbitrary statement, to be confirmed by the relevant people involved
  • Can link to bugzilla
  • Easily extended
  • Infra team able to manage and maintain ← This is arbitrary statement, to be confirmed by the relevant people involved
  • Project/Kanban integration with Taiga available
  • All data (code, issues, documentation, PR metadata) are git repos for portability
  • Easily themeable with a Bootstrap 4 based theme (4 themes already included)
  • Already in use for similar purposes elsewhere (examples: Fedora, CentOS)
  • Can be packaged as an RPM in the distribution (upstream contains sample spec file, it’s shipped already in Fedora, Mageia, and openSUSE)

Cons

  • No LDAP support currently (only OpenID Connect or OpenID are supported as external auth)
  • Very resource hungry
  • Slow to load
  • No ABF integration yet

Notes:


TULEAP

https://www.tuleap.org/

Pros

  • Good tools for the non-developer side
  • UI looks easy to use
  • Even the Enterprise Edition is Open Source
  • Package-able, upstream has RPMs

Cons

  • Not widely known
  • Comes with recommendations for old stuff (MySQL 5.7 etc.), needs testing with modern components

Notes:


PHABRICATOR

https://phacility.com/phabricator/

Pros

  • Used by KDE
  • Has CLI tools

Cons

  • Relatively complicated user interface

Please note: this post is wikified.

It means that the content is written in a collaborative manner, not just by the original poster.

Well,

should be a statement only coming from Infra Team
And

should be a statement only coming from ABF team

Not from a pagure supporter (@ngompa) :grin:

Infra team able to manage and maintain

I put that in based on the fact there is a testing instance set up. If we’re able to get it up and running, then I think it should be possible.

Easily integrated with ABF

This one, I based on the current integrations in place for GitHub as an SCM.

Based on what I saw in the codebase, I saw that it only does the following with GitHub as an SCM:

  • Verify the repository exists
  • Getting the latest commit
  • Getting the branches

These are all very easy and possible via the Pagure API. The rest of the interactions with GitHub as an SCM are done through the builder, which uses just plain git to fetch the code for building the package.

As for these two, this doesn’t jive with my own setup of the system. At least for the testing instance, it loads instantly for me. I’m not sure what qualifies as resource hungry for Pagure here, but my local server consumes anywhere from 40MB to peaking at 100MB of RAM, which is several orders of magnitude lower than GitLab (which idles at ~500MB of RAM and consumes gigabytes of RAM when people are using it).

I favour Gitlab I especially like the fact that it supports Bugzilla our bug reporting tool. None of the others do this. It also seems to be well thought of as well as being distro independant which likely means that it will me more generally universal.
In some ways though GitLab is overcomplicated for our needs since the project management tools seem to have similar issues to GitHub as regards distro management. Having had a closer look at Gitea it does exactly what we need with regard to repositories in a lightweight package which would fit our existing workflow. The issues of distro release managment could be managed in some other way. Or perhaps even with an add-on module of our own. So I have changed my mind and would go for Gitea if it were my decision alone.

The Fedora instance of Pagure references Bugzilla instead of using its own issue tracker, so we could do the same with that too.