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:
- Qt: GNU GPL and Commercial
- Oracle MySQL: GNU GPL and Commercial
- Perl: GNU GPL and Artistic License
If we had one codebase, we would have no more:
- Merge hell.
- Synchronization of documentation.
- Double work for developers (special MRs for EE).
- 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