Page MenuHomePhabricator

Replace Gerrit & GitHub with GitLab
Closed, DeclinedPublic

Description

GitLab is essentially an open-source clone of GitHub. We could either use their hosted version (like we do with GitHub now) or we could host our own instance of the software.

This has the following benefits:

  • New developers (who are already familiar with the GitHub workflow) will be able to step into a similar (if not identical) workflow
  • Code reviews are easier and more intuitive
  • Open source software instead of GitHub's proprietary system

We would continue using Phabricator for task management as it is a better task system then GitLab (or GitHub) Issues.

Event Timeline

What are the pro and cons?

And what features would we gain compared to gerrit?

Will we loose any features?

Oh I just saw this:

Gitlab does have a self-hosted option that is free, but is a scaled back version of their "Enterprise" version, which has closed source components we would need.

well...

wikimedia host there own gerrit installation anyways.

Paladox triaged this task as Lowest priority.Jun 9 2017, 8:23 PM
Paladox moved this task from Bugs & stuff to Discussions & doc stuff on the Gerrit board.

Sooo, I looked into Gitlab some time ago. It's a nice tool. The UI is certainly easy to use. Unfortunately, the feature list is incredibly lacking without buying the enterprise version--features that we'd absolutely need. For that, it basically became a non-starter in my book.

Which is a shame, because it's otherwise great software.

@demon I was a Wikimedia contributor when everything was switched over to Phabricator, and having seen that I can't imagine this is a decision that'd be taken lightly, but as a GitLab employee I wanted to ask what features you felt were missing from CE?

To start at the top of the list which make it a deal breaker: LDAP integration, per https://about.gitlab.com/products/

And no, it isn't worth having a conversation from Gitlab sales on whether we can get that for free.

@greg I definitely wouldn't suggest that anyway, if I were running an open source project I wouldn't want to risk having that taken away. We do have LDAP support in CE, the difference with EE is that there are some advanced features.

Docs for CE LDAP: https://docs.gitlab.com/ce/administration/auth/ldap.html

"Note: In GitLab EE, you can configure multiple LDAP servers to connect to one GitLab server." - first thing that jumped out.

Also: LDAP group sync, Using external Mysql database (lol wtf?!), Repo mirroring, Merging issues (rebase before merge, etc), Push rules (we use a lot of per-branch ACL stuff for deployment), "Create and remove admins based on an LDAP group," Audit logs.

I'm sure I can find more....

Debian is using GitLab:
"salsa.debian.org (git.debian.org replacement) going into beta" https://lwn.net/Articles/742297/

(By the way, this ticket is closed, but there isn't a log entry above saying so; is there some 'hidden close' feature in Phabricator?)

(By the way, this ticket is closed, but there isn't a log entry above saying so; is there some 'hidden close' feature in Phabricator?)

Nope, probably just a phab bug not showing it (Edit: Missed it, yes there was a entry)

(By the way, this ticket is closed, but there isn't a log entry above saying so; is there some 'hidden close' feature in Phabricator?)

No, as there is a log entry. https://phabricator.wikimedia.org/T167547#3336421 says demon closed this task as Declined.

Oh yes, it was there all along; I missed it. :)

Krinkle renamed this task from Replace Gerrit & GitHub with GitLab to RFC: Replace Gerrit & GitHub with GitLab.Jul 1 2020, 4:08 PM

Because it was not mentioned clearly in the task linked above: there is some ongoing useful work at FSF, for instance https://libreplanet.org/wiki/Fsf_2019_forge_evaluation provides helpful information on some things which happened since https://www.mediawiki.org/wiki/Project_management_tools .

@Krinkle Do you intend to start an RFC on this topic?

Yes: https://www.mediawiki.org/wiki/Talk:Wikimedia_Release_Engineering_Team/GitLab

Because it was not mentioned clearly in the task linked above: there is some ongoing useful work at FSF, for instance https://libreplanet.org/wiki/Fsf_2019_forge_evaluation provides helpful information on some things which happened since https://www.mediawiki.org/wiki/Project_management_tools .

On the topic: I think evaluating alternatives (not just GitLab) would be beneficial. Replacing gerrit, however, would be best discussed if and when an alternative was tested and proven.

Demian renamed this task from RFC: Replace Gerrit & GitHub with GitLab to Replace Gerrit & GitHub with GitLab.EditedJul 3 2020, 12:54 AM

My bad, I misunderstood the rename and the private discussion on https://www.mediawiki.org/wiki/Talk:Wikimedia_Release_Engineering_Team/GitLab as a preparation for RFC.
No RFC then. 12 minutes of discussion between 3 persons is not an RfC.

Can we stop using this task entirely please? It has been filed in 2017 for a project to migrate out of Gerrit to Phabricator Differential. It is no more related to the 2020 project of migrating to Gitlab which should be discussed at https://www.mediawiki.org/wiki/Talk:Wikimedia_Release_Engineering_Team/GitLab

Thank you.

This task is three years old. And it was declined.
This task is not actionable (and in my personal opinion is such a vague idea that it should have never been created).
There might be new or different arguments pro or con something.
But it's not for this task. Please leave this task as is. Please use the linked talk page.
There will be new and more specific tasks if new tasks are needed after more discussion on how to proceed.
Thanks.

Can we stop using this task entirely please? It has been filed in 2017 for a project to migrate out of Gerrit to Phabricator Differential.

I'm very confused about what you're talking about here. This task is titled "Replace Gerrit & GitHub with GitLab" and the task description discusses GitLab. The only mention of Phabricator Differential is from you. This is puzzling. And how is 2017 relevant to anything?

This task is not actionable (and in my personal opinion is such a vague idea that it should have never been created).

What are you talking about here? From https://lists.wikimedia.org/pipermail/wikitech-l/2020-July/093577.html:

Wikimedia will be moving to a self-hosted (in our datacenter(s)) GitLab Community Edition (CE) installation for both code review and continuous integration (CI).
[...]
We plan to replace Gerrit and Zuul+Jenkins (the software that powers our CI system) with GitLab.
[...]
For the avoidance of doubt, this does not impact issue/task management; that will remain in Phabricator.

This all seems to match this task almost identically. If you read this task's title and description, it specifically calls for moving from Gerrit to GitLab. This task also explicitly mentions keeping issues tracked in Phabricator Maniphest. Given the surrounding context here, it's baffling that you're calling this task "not actionable" when it appears to be the exact plan that Wikimedia Foundation Inc. is pursuing. It obviously is not a "vague idea" if Greg is saying that Wikimedia Foundation Inc. is going forward with it.

@MZMcBride: I am talking about June 2017 when this task was created as a vague idea without any previous discussion or any actionable items.