Tuleap versus GitLab, the battle that will not happen


Playmo or Lego? Spiderman or Batman? Who is better, stronger?
I 'm sure, you already had endless debates with friends about that. But for me, the best answer is the same for all: they are just different. Both have great powers. Your choice depends on what you like. Tuleap or Gitlab? It can be the same answer.

Since a year or so, Tuleap is getting compared to Gitlab. With fairness it is an amazing tool made in a very short time. At a first sight, comparison sounds hard: both tools provide Git, issue tracker, wiki, ... But with a deeper look, Tuleap and GitLab are different. Who's best suited depends on what you need. Tuleap, GitLab and their Enterprise Editions. This page aims at helping you better understand the differences.


Tuleap and GitLab: two different usages


GitLab, better on the developer centric workflow

In Gitlab, most features are attached to a single Git repository -issue tracker, CI, etc-. Repositories can be grouped together if they share a common organization.
From my point of view,Gitlab is the tool for you if you target only a group of developers that want to do Git, pull requests and continuous integration with tight integration.

Tuleap, better on cross-teams collaboration

Tuleap added value is to offer a common workplace for all actors of a project: not only developers but project managers, product owners, help desk and end-users. Tuleap enables getting a global shared vision of the project. Each accesses the information he needs, according to its access rights.

Let's focus on one concrete example

Disclamer: this example is from what I've seen from typical gitlab/github usage. It might not be the best usage of the tool. Feel free to tell me where I'm doing wrong.

In Gitlab, you report issues in the issue tracker associated to the repository you think the bug is from. But if the code is modular, the issue exposed in the end-user application can be raised from a dependency, or a dependency of dependency. So the end-user have to know how your project is structured, in term of code and modules to properly report bugs. Otherwise it will end-up having several references of the bug: one for end-user and another for each affected dependency.

A typical Tuleap setup in this case would involve one project with several Git repositories (or Svn) and one issue tracker shared by all components. The end-user reports all the bugs related to the project, regardtheless it's structured by developers. Bonus, they can move things around (and create new repo) without disturbing the issue reporting process. And of course, the same applies for all other component (requirements/user stories, tests, documentation & co).

Features comparison

Available with better capabilities
Available
Not available

Features/Solutions
Tuleap
9.0
Tuleap Enterprise
9.0
GitLab Community
8.11
GitLab Enterprise
8.11
Licences
Open Source
Open Source
Open Source
Proprietary


Issue tracking


Features/Solutions
Tuleap
9.0
Tuleap Enterprise
9.0
GitLab community
8.11
GitLab Enterprise
8.11
Issue Tracking
Multi-purpose issue tracking
Basic issue tracking
Customize layout
Per tracker
Templating
Structure and content
Limited to description
Workflow
Per tracker
Permissions
Per tracker, per field, per artifact
Per artifact
Basic linking -see bug #...
Advanced linking

Link items with semantic -parent-child, reported in, etc.)
Board reports
Graphic reports
Continuous Integration
GIT REST API


Features/Solutions
Tuleap
9.0
Tuleap Enterprise
9.0
GitLab community
8.11
GitLab Enterprise
8.11
Project Management
General purpose
N/A
Scrum
Kanban
Waterfall


Software Developments Tools

Features/Solutions
Tuleap
9.0
Tuleap Enterprise
9.0
GitLab community
8.11
GitLab Enterprise
8.11
Git
One among others SCM
Git centered
Repository browsing
Pull Requests
Integration with Gerrit
Webhooks
Integration with Jenkins
Permissions per repo
Permissions on branches
Mirroring
Code snippet
Large file support
Git LFS
Git LFS & Git annex
Docker registry
REST API
Subversion One among others SCM Not supported
Multiple repo per project
Web browsing
Integration with Jenkins
Notifications
Immutable tags
Commit policies
Continuous Integration Integrated with Jenkins/Hudson Either Jenkins or in-house GitLab CI
Test and traceability Test management that can be used by devs N/A
Test cases
N/A
Test suites
N/A
Test campaigns
N/A


Document Management

Features/Solutions
Tuleap
9.0
Tuleap Enterprise
9.0
GitLab community
8.11
GitLab Enterprise
8.11
Docs Management Simple GED for collaborative publishing N/A
Versioning
Approval workflow
Fine permissions
Audit trail
Templates
Wiki Integration with Mediawiki In-house wiki -Git backed-


User Management



Features/Solutions
Tuleap
9.0
Tuleap Enterprise
9.0
GitLab community
8.11
GitLab Enterprise
8.11
LDAP & Authentication Advanced integration
Only in enterprise edition
User authentication
Multiple LDAP servers
LDAP groups
Two-factor auth
Kerberos
CAS
Audit log

As you've seen they are differences between GitLab and Tuleap regarding the licences, the provided tools and their level of integration. The best now seems to play with the tools.

I would enjoy hearing from your experience. Share it, it will help me and other users.

You too, liberate your genius and power



Get Started All Tuleap features

Share this post

Comments (14)

  • anon

    Hi,

    Thanks for making a great open source tool and your kind words about GitLab.

    Since I care about GitLab every red cross is something I would like to see improved in future versions of GitLab :)

    For document management we suggest using a static website so you can use merge requests but Tuleap having permissions around wiki's is cool.

    I think you can do Scrum/Kanban/etc. with GitLab, do you mean we don't have templates for it?

    Small nitpick, CAS support is in GitLab CE since it was contributed, see https://docs.gitlab.com/ce/integration/cas.html

    Anyway, keep up the great work. Tuleap is a great alternative to Jira.

    Nov 29, 2016
  • anon

    Thank your for your comment Sid, and thanks for mentioning Tuleap is a great alternative to Jira. We often hear this ;-) How do you manage to do Scrum and Kanban with GitLab? Does GitLab offers burndown chart and release planification by drag'n droping stories from the backlog to a milestone? Thanks for your info about CAS supported in GitLab CE, we'll updated the table. Have a nice day!

    Dec 06, 2016
  • anon

    https://www.tuleap.org/features#feature-agile
    Ok, good to know. Each team implements agile principles as he wants ;-) Agile and Open Source both matter on freedom. Agile is Structured Freedom. Open Source is Customer Freedom. Thanks again for your comments.

    Dec 08, 2016
  • anon

    Hi I noticed at the time of publishing you compared Tuleap to GitLab 8.11, while 8.13 was already out and 8.14 came out a few days later.

    Nov 30, 2016
  • anon

    Yes. That's great that Tuleap and GitLab release regularly. Do you want to help us update the features table?

    Dec 08, 2016
  • anon

    Hi Liam, It's not because the code is available that it's open source. In this case the statement of the license is rather clear:
    This software and associated documentation files (the "Software") may only be used if you (and any entity that you represent) have agreed to, and are in compliance with, the GitLab Subscription Terms of Service, available at https://about.gitlab.com/terms/#subscription (the “EE Terms”), and otherwise have a valid GitLab Enterprise Edition subscription for the correct number of user seats
    https://gitlab.com/gitlab-org/gitlab-ee/blob/74cbc2733990f47a07a8c6e15138aae7597d0cd0/LICENSE

    Feb 06, 2017
  • anon

    Why does it have to be one or the other? Gitlab's repo management - to include forks and pull requests - is much better in pretty much all aspects. Your issue management - especially your Eclipse integration is among the best I've seen. I would urge you to consider becoming more loosely coupled with repo management, and focus more on integrations. It is in this one area that I have such a strong sticking point that I'm pushing to stick with Redmine.

    Redmine allow you to associate one or more repositories with a project. Remote svn repos are supported natively, while remote git repos are supported via a plugin. The repo management system is then configured to notify Redmine of new changesets via webhooks. Redmine, when notified, simply reads the commit log from those changesets, and updates issues as appropriate. If Tuleap were to support this model, I'd be ready to switch today.

    Feb 07, 2017
  • anon

    Hi Jesse, Thanks for the feedback. That's interesting, esp. regarding experience with Redmine.

    We are looking at this kind of lossly coupled integration but it's a bit hard to figure out what is really meaningful to do. As of today, in Tuleap, you can already have svn and git repositories. If you were able to add an external git repo (for instance on github / gitlab / bitbucket / ...) how do you expect to do it ?

    Then once done, somewhere in Tuleap project space, you know/see that there is one or more external git repo. Then, I guess:

    • When you are using "art #1234 stuff" in comment, you expect to have a link from Tuleap artifact 1234 toward the git repo viewer at the referenced commit.
    • Something else ?

    Feb 14, 2017
  • anon

    Manuel, you're welcome. For context, the relevant documentation is here: http://www.redmine.org/projects/redmine/wiki/RedmineRepositories#Attachi.... Basically, for a given project in Redmine, I can add one or more repository links, along with credentials and a "driver" for each. SVN and local Git support is built-in, but there is also a community plugin for remote Git repositories. Redmine uses that driver to import changeset history into their database (commit log, files changed, author, etc). To keep things up-to-date, there is a web service (noted in the documentation) that tells Redmine to pull the latest history for all the repos for a given project, or for all projects in the system based on input. This service accepts GET and POST requests - the only input comes from the URL: This service URL can be added as a webhook in Gitlab (or other similar systems).

    As far as how issues are associated, administrators can specify keywords to look for in order to create the links. I have ours set up to look for "Issue #". Redmine uses those keywords to build regex statements to parse issue numbers from the commit log, and then uses that information to associate the changeset with the correct issue.

    Feb 22, 2017
  • anon

    Thanks for the input, I'll dig a bit more the documentation to see how it could apply to us.

    Feb 27, 2017
  • anon

    The Community version of Gitlab supports two-factor authentication (the term is not "two factors" while I'm mentioning it).

    May 19, 2017

Leave a comment

To prevent automated submissions please leave this field empty.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Websites located at tuleap.org and other tuleap.org subdomains need to store and access cookies on your device. We need your acceptance. Get more information. Yes, I agree No, I disagree