Introduction to GitLab & Phabricator
This page provides an introduction to GitLab and Phabricator. Both of these are complete, integrated development infrastructure solutions, which provide code hosting and issue tracking. However, they both provide many other features, and have subtle differences in how they work.
GitLab has a focus on good design and providing a UI for the whole contribution workflow. In addition to code hosting and issue tracking, it also has continuous integration and project management features.
GitLab is developed by GitLab Inc, which has around 160 employees. The community uses an "open core" model, meaning that the main technology is open source, with additional features that are proprietary and only available to customers as part of their Enterprise Edition (as opposed to the open/free Community Edition).
A big chunk of the code is made by community members and they have a "public by default" mindset, where marketing and decision making is all done at public face. Both Community Edition and Enterprise Edition are openly developed.
The documentation is quite polished
- Setup and maintainability is quite easy (around 30 min) and they provide updates regularly
GitLab is primarily written in Ruby.
- Design driven
Phabricator was originally created by Facebook, but is now developed by Phacility, who offer hosting. There is no separate Enterprise Edition, and all development is planned and executed in the open. Phabricator development is transparent (so you can see their long-term roadmap).
Technically, Phabricator is built as a set of separate but linked applications which share a powerful extensible data model. It is possible to create your own applications using an extension API. Links between data objects is extremely important both architecturally and in terms of the user experience.
- Phabricator is written in PHP. Note that it is carefully typed and goes to extreme lengths to avoid any of the confusion or implicit conversion that much PHP suffers from.
- In addition to code hosting and issue tracking, Phabricator does: CI, design review, project milestones, paste hosting, wikis, and more.
- Deployment is very easy: there are three trees (libphutil, arcanist, and Phab itself) to deploy, which see weekly stable tagged releases. There are only a couple of external dependencies, mainly for mail support.
Phacility provide some good screenshots.