I understand that criticism, but what else would you gate except useful features? The entire point of this style of sales is to enable a "freemium" model with highly valuable features locked behind the pay-gate.
Now, it may be poor stewardship if valuable changes are rejected, but Open Source is about your freedom with the code, not the willingness of the project maintainers to commit your pet features.
Open source doesn't mean the maintainers have to accept your patches.
An open core model done well is great. This doesn't seem to be an instance of that :)
TypeSafe/LightBend removed a fully functional MS SQL implementation from Slick.
I've written about this type of split in OSS software and what it means for developers:
https://penguindreams.org/blog/the-philosophy-of-open-source...
What fee structure would work for you? Maybe per-installation or per-repo?
The way I see it, someone is providing a free product and is maintaining it. They are even doing (imho) a great job. Of course, that costs money - and we only need to look at other opensource solutions to see what kind of UX they have if the creators are only charging for support.
So the options I see are:
- have a worse product, but truly opensource
- have a great product, fully opensource, but some features will never be added
If you develop the missing features, you would need to maintain a clone. You could do it if you really wanted to, it would take a lot less work than developing the whole solution from stratch. But - and this distinction is important for me - if the company ever went under or, worse, got sold to Oracle, community would almost surely take the CE sources, add those features and maintain a clone. At least for a while...In my view GitLab is a perfect example how to make a sustainable business around opensource core. So the question is - can you think of a better sustainable business model to support development of opensource solution?
we'd have to carry our own internal fork of Gitlab
So you have the choice between buying Gitlab or coding yourself. You would prefer it to be free and without hassle, but lack to see everything has a cost.GNU emacs (or more specically RMS) rejected patches that would integrate clang, or provided colorful emoji support on OSX, for political reasons, and that's perfectly fine for a project to do.
Gitlab will reject some patches for business political reasons, which is also perfectly fine.
If you don't like that, fork. If a lot of people don't like it, then the fork becomes effectively the new upstream (e.g. GCC/ecgs).
There is no "Right to have my patch merged" anyway.
This has come up in the past; they've stated that this hasn't happened yet, and that they wouldn't outright reject it, but would have to consider the situation.
So you might want to give it a try.
Edit: a bit off topic, but why do you want "Rebase merge requests before merge" - wouldn't `s/merge/testing/` be much more useful?