Skip to content

GitLab Next

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
GitLab
GitLab
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 35,934
    • Issues 35,934
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 1,259
    • Merge Requests 1,259
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Metrics
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.org
  • GitLabGitLab
  • Issues
  • #2952

Closed
Open
Opened Jul 17, 2017 by blackst0ne@blackst0neDeveloper

Single codebase

We now have two codebases: CE and EE.
Every release RMs get EE-to-CE merge hell.
Every developer, while developing something in CE, has to create additional MRs to sync or adopt changes into EE.

We don't obfuscate the EE codebase. So from the technical perspective nothing stops evil users to grep the codebase for license and modify the code to get all the EE features enabled.

Thus, can we consider joining two codebases into one (let it be EE with enabled/disabled features depending on a purchased license)?

There are a few open source products with dual-licenses which lets users to use their products for free if it's not for a commercial usage:

  1. Qt: GNU GPL and Commercial
  2. Oracle MySQL: GNU GPL and Commercial
  3. Perl: GNU GPL and Artistic License

If we had one codebase, we would have no more:

  1. Merge hell.
  2. Synchronization of documentation.
  3. Double work for developers (special MRs for EE).
  4. Special CI jobs to check CE-to-EE compatibility.

Copy && paste from Slack (provided by @rymai)

job [Jun 28th at 13:40] in #thanks Thanks @axil and @marcia for making the EE docs the default, reducing confusion on our docs and teaching people about all the great stuff we have in EE! https://docs.gitlab.com/ docs.gitlab.com GitLab Documentation - GitLab Documentation Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

19 replies remy [19 days ago] @job Soon the single codebase!? 🙂

job [19 days ago] @Remy nope, we can't do that because we want everyone to be able to contribute documentation at the same time as the rest of the code.

job [19 days ago] If we don't do that, we'll start seeing that documentation is treated as second-order and that is not acceptable.

remy [19 days ago] Hmm, I think I was not clear, I meant to have a single codebase for both CE and EE.

job [19 days ago] ah, that's also not possible @Remy 😞

job [19 days ago] Because we can't make all of EE open source

job [19 days ago] And we can't include proprietary code in an OSS project

job [19 days ago] it'd be easier, but it's not possible. So what we're doing now is making clear in which version of GitLab a particular feature is in the docs. (edited)

job [19 days ago] And we encourage downloading EE and will allow you to run EE in 'CE mode' before you buy a license

job [19 days ago] Good questions though

remy [19 days ago] What about dual-licensing? I think there are some OSS projects that do that?

job [19 days ago] Hm I'm not sure if that would work for us..

remy [19 days ago] The fact that we'll allow to run EE in "CE mode" sparks the question of a single codebase since it'd be so much better from a developer/technical point of view (no CE->EE merges anymore)… 😞

remy [19 days ago] I will open an issue since this is a complex licensing question.

job [19 days ago] I think dual-licenses only works if the consumption has some restriction for particular customers. E.g. if we'd only allow non-open source through a license. I don't think that's a sustainable situation for us

remy [19 days ago] Hmm I see

axil [19 days ago] I don't think open sourcing the docs in EE should be a problem

axil [19 days ago] @Remy I'm in favor of a single docs codebase as well 🙂 I'm not sold on the idea that docs will be miss-treated if we have one codebase 🙂

axil [19 days ago] There was some discussion in https://gitlab.com/gitlab-org/gitlab-ce/issues/22617

/cc @stanhu @rymai @smcgivern @DouweM @rspeicher @ayufan @JobV @dzaporozhets

Edited Aug 14, 2017 by Toon Claes
Assignee
Assign to
12.3
Milestone
12.3 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: gitlab-org/gitlab#2952