Improve semantic of `IS_GITLAB_EE`
Looking at semantics of variable name the IS_GITLAB_EE
seems to indicate the question. Which seems to be wrongly stated as it should rather indicate the intent not the outcome of intent which seems to be the case for IS_GITLAB_EE
today. The outcome is dependent on running conditions, and require that the outcome result is properly passed through all stacks of the application.
Since, user has the intent to use or not use EE
(effectively we want to not use EE
in some circumstances) it would be better to consider naming that different or maybe even twisting the behaviour:
-
USE_GITLAB_EE
: it is not a question as originally, but rather the intent of the user, -
DISABLE_EE/DISABLE_GITLAB_EE
: to indicate that you want to disable EE portion of the code base, that otherwise would be enabled -
FOSS_ONLY
: as above, but putting focus onFOSS
I personally would prefer to DISABLE_EE
as it is much cleaner about the intent and the outcome without having to consider the side effects. As for everything that where DISABLE_EE != true
: it means that you want to use EE
changes if their are present, and I consider this to be default behaviour that people want to follow, and much easier to understand than usage of IS_GITLAB_EE
where effectively it has three state: 1. missing, 2. set to false, 3. set to true.
This was created in response to improving the IS_GITLAB_EE
behaviour in: !18442 (merged).
Proposal
- Remove
IS_GITLAB_EE
, - Replace it with
FOSS_ONLY=
, - Make
FOSS_ONLY=true
to be the only meaningful state, - The negation of that means that you would like to use
EE
if present.
Checklist
-
Mention the proposal in the next backend weekly call and the #backend channel to encourage contribution -
Proceed with the proposal once 50% of the maintainers have weighed in, and 80% of the votes are 👍 -
Once approved, mention it again in the next backend weekly call and the #backend channel
/label development guidelines /label ~"Style decision" /label documentation