GitLab

Why GitLab uses one codebase for Community & Enterprise

Aug 23, 2019Yorick Peterse
Why GitLab uses one codebase for Community & Enterprise
SummaryAI, from the source post

This post details the decision and technical approach to merge GitLab Community Edition (CE) and Enterprise Edition (EE) into a single codebase. It explains the challenges of maintaining separate repositories, the complexity introduced by merge requests across repositories, and the decision to consolidate into a single repository. The technical solution involved separating proprietary code from shared code using Ruby modules and injection, refactoring large code chunks, and ensuring database schema consistency. The chosen approach was to move all development into the gitlab-ee repository, renaming it to 'gitlab', and archiving gitlab-ce. gitlab-foss will serve as a mirror of the new 'gitlab' repository with proprietary code automatically removed. This involved 55 engineers, over 600 merge requests, and changes to nearly 1.5 million lines of code.

More from the GitLab Installation and Updates trail