Projects structure with single codebase

As part of the single codebase effort carried out in &802 (closed) and described in the Design document, we will need to change the names of gitlab-ee and gitlab-ce repositories and have a SSOT for our issue tracker and MR location.

Requirements

  • Issue tracker needs to have all issues consolidated to the single project
  • Any open MR's will need to be ported over
  • A new repository needs to be created to host only FOSS version of GitLab
  • The new repository with FOSS needs to run CI

Proposal

In the design document, I've proposed renaming gitlab-org/gitlab-ee repository to gitlab-org/gitlab and migrating all issues from gitlab-org/gitlab-ce project. The reason for this is that we will get to keep gitlab-org/gitlab-ce as it is now so the Community won't have to change any remotes to clone a FOSS version of the software.

The process would look something like this:

  • Rename gitlab-org/gitlab-ee to gitlab-org/gitlab
  • Use the API to move all issues to gitlab-org/gitlab from gitlab-org/gitlab-ce
  • Setup an automated job that will sync from gitlab-org/gitlab to gitlab-org/gitlab-ce excluding any proprietary code
  • Setup a place for CI notifications for gitlab-org/gitlab-ce to ensure that we see any failures
  • Close the issue tracker and MRs for gitlab-org/gitlab-ce and point to gitlab-org/gitlab?

Challenges to address

  • Is moving all issues a sensible thing to do?
  • If we close the issue trackers, how do we handle redirects?
  • Does it make more sense to create a completely new project and archive gitlab-ee and gitlab-ce?