Le cas GitLab

De April MediaWiki


Cette page est un essai d'analyse de la stratégie FLOSS de l'entreprise GitLab B.V.

Rédigée par Cpm entre autour du 08 décembre 2014.

Cette page n'engage que Cpm.


Ambox warning red construction.png
/!\ Travail en cours /!\

Cette page présente une page de suivi en cours de réalisation.

Si vous souhaitez participer, n'hésitez pas à laisser votre avis sur la page de discussion en suivant au mieux ces recommandations.


Contexte[modifier]

GitLab est une solution de forge logicielle, ergonomiquement sexy et pratique.

GitLab est un produit « jeune » qui a subit de mouvementés changements :

  • création en 2011 ;
  • depuis 2012, mise en place d'une version hostée gratuite (http://gitlab.com/) nommée par la suite GitLab.com ;

Accès aux sources de GitLab EE[modifier]

Les sources via un clone git : https://gitlab.com/cicd_mtv/gitlab-ee/tree/master

Le fichier de licence : https://gitlab.com/cicd_mtv/gitlab-ee/blob/master/LICENSE


Note sur GitLab.com[modifier]

À noter qu'à l'origine, GitLab.com (host gratuit, http://gitlab.com/) a juste été lancé pour servir de démo. S'étant aperçu que cela ne leur coûtait quasiment rien à administrer, ils l'ont transformé en service gratuit. Aujourd'hui, en plus de l'aspect démo/publicité, cela leur sert de plateforme de test géante, grâce à laquelle ils détectent et anticipent des bugs.

Communication[modifier]

GitLab B.V. est relativement transparent dans sa communication. Notamment via un blog tenu par Sytse Sijbrandij (co-fondateur) où il répond aux commentaires, parfois longuement, parfois en faisant carrément l'autruche, mais globalement, on peut dire qu'il communique et qu'il expose clairement la ligne stratégique soutenue par GitLab, même parfois à l'avance pour tâter le terrain.

À noter qu'il a supprimé un commentaire où je lui demandais si les personnes qui veulent du 100% libre doivent quitter GitLab.com (le host gratuit qui fonctionne maintenant sous GitLab EE).

Échange n°01[modifier]

Le 07 décembre, j'ai eu l'occasion de poser des questions et il a répondu dans la journée (un dimanche). Échange re-transcrit ci-après :

https://about.gitlab.com/2014/02/11/gitlab-ee-license-change/#comment-1729507235

cpm :

1) So, now, what is the license of GitLab EE? Where to watch the LICENSE file?

3) Have you yield to the world of proprietary software?

4) How to promote the use of GitLab against people who need/require Free/Libre Software?

Please, GitLab is a fabulous product. I beg you, don't be evil. Come back in a complete FLOSS world.


Sytse Sijbrandij :

1) The license is proprietary with the right to make modifications. For you I made a copy of the license per Decemer 7, 2014 on https://gitlab.com/snippets/26...

Extrait du snippet :

The GitLab Enterprise Edition (EE) license

Copyright (c) 2013-2014 GitLab B.V.

This software and associated documentation files (the "Software") can only be
used with a valid GitLab subscription for the correct number of users. You are
free to modify this Software and publish patches. It is forbidden to copy,
merge, publish, distribute, sublicense, and/or sell copies of the Software.

The above copyright notice applies only to the part of this Software that is
not distributed as part of GitLab Community Edition (CE). Any part of this
Software distributed as part of GitLab CE is copyrighted under the MIT Expat
license. The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

3) The reasons for making a proprietary edition are the same a when we started EE https://about.gitlab.com/2013/... Making the EE version allowed us to greatly improve installation (Omibus packages), quality control (fix every confirmed bug every month), release processes and development. The Community Edition has been improving much faster since starting EE than before. We are very aware of the dangers of paid software http://david.heinemeierhansson... But everyone can also see that so far GitLab CE has benefitted enourmously. We plan to continue this in the future and please raise any specific concerns you have. Also feel free to email me on sytse@gitlab.com if you prefer to discuss in private.

4) I think you can safely promote GitLab to people who want libre software. More than 700 people contributed, it is MIT licensed and it has a very active community.

GitLab B.V. wants to continue being a good actor within the GitLab community. And we believe that both a FLOSS offering and a proprietary offering can exist in a symbiotic way in this community.


Échange n°02[modifier]

Nouvelle tentative, le 11 décembre 2014 : https://about.gitlab.com/2014/06/27/gitlab-com-runs-ee/#comment-1729495507

cpm :

  • GitLab EE is powered by proprietary code
  • GitLab.com is powered by GitLab EE
  • => GitLab.com is powered by proprietary code

Put yourself in the shoes of those who want to use only free/libre software.

Should they get out of GitLab.com?


Sytse Sijbrandij :

As you, we would like to run GitLab.com on Community Edition too. The problem is that most of the development (also by us) happens on the Community Edition and we want to deploy its nightly build to a server to test. We prefer to deploy this to our internal server to prevent problems on GitLab.com that effect many more people. This means that Enterprise Edition real life usage has to be deployed at our only other production installation, GitLab.com. All the security and performance improvements that come out of this testing land in both editions. There are no (artificial) limits in the Community Edition that prevent you from using it to host a server similar to GitLab.com. If you want to support free/libre software I think using GitLab.com is the best option available. And because you help us improve the product we can host your private repositories for free and offer you unlimited collaborators. If you see any practical problems with features that should be in the Community Edition to make a service like GitLab.com possible please let us know either in this thread or by emailing me on sytse@gitlab.com

Échange n°03[modifier]

Nouvel échange le 11 décembre 2014 : https://about.gitlab.com/2014/02/11/gitlab-ee-license-change/#comment-1729507235

cpm :

Thank you for your reply. So, some other questions:

5) Is there an easy way to know the differences of code/functionalities between CE and EE? Because of money requirement for EE repository access, it does not seem trivial.

6) Does GitLab EE contain proprietary code/library which are not from GitLab B.V.?

7) Do you believe that special proprietary features in EE increase the number of suscribers?

8) Do you believe that make CE and EE identical except for the license will be decrease the number of suscribers?

9) Is support service not enough to increase the number of subscribers?

10) Do you believe that CentOS decrease the number of Redhat suscribers?

11) Do you not fear that Free/Libre Software users will prefer use/improve/promote/help more Free/Libre product than GitLab products?

12) In case of GitLab CE fork by an enterprise which guarantees full Free/Libre software license, do you think that GitLab B.V. will be enough stronger and will survive?


Sytse Sijbrandij :

You're welcome, thanks for your interest.

5) You can find the differences at https://about.gitlab.com/featu... of course you can also compare gitlab.com (EE) and a CE install. The focus is on features that are more useful if you have more than 100 users. Please let me know if you have any questions.

6) No, all EE code is from GitLab B.V.

7) Yes, for larger organizations the EE functionality of one of the reasons for getting a subscription.

8) Yes, I would not understand why someone would use proprietary code if you can get the same code with a MIT license.

9) We spend way more time on CE functionality, fixes, documentation and releases than on EE. It is really hard to make enough margin on services to sustain so much work.

10) I know for sure that we lose many potential customers because they decide to run CE instead of EE. And we're very happy about that.

11) We think that everyone enjoys using a good open source product and that is we try to improve GitLab CE every day.

12) We strongly believe that the companies that best serve the community will be successful.


Échange n°04[modifier]

Nouvel échange le 16 décembre 2014 : https://about.gitlab.com/2014/06/27/gitlab-com-runs-ee/

cpm :

Thank you for your reply. There are some things I do not understand. I'll try to clarify with the following questions:

1) A lot of people want make FLOSS project with only FLOSS tools. Lot of them have selected GitLab.com because it was a full open source product (and a wonderful one).

Now, because GitLab.com is using non open-source code, this people MUST get out of GitLab.com their projects.

Moreover, because GitLab B.V. makes a non open-source version of GitLab CE, lot of people do not want use anymore GitLab CE. Because you broke the FLOSS spirit.

Do you realize how much it is traumatic?

2) This blog page is the only way to know that GitLab EE license changed to a non open-source one.

No mail to registered accounts in GitLab.com. No notification on login on GitLab.com.

How many GitLab.com users know that GitLab.com is using a non open-source product now?

Have you planned a better information?

3) The page https://gitlab.com/help displays confused information about the license:

"GitLab Enterprise Edition 7.5.3-ee 4d70bfc GitLab is open source software to collaborate on code."

At least, you could specify that GitLab.com is using non open-source code.

Have you planned to fix this?


Sytse Sijbrandij :

Thanks for your questions.

1) We announced the conversion of GitLab.com to Enterprise Edition more than five and a half months ago, you're the first person to bring up this concern as far as I know. I think most people feel comfortable with the situation since GitLab Community Edition is extremely functional and we try to carefully balance in what edition of GitLab new features are introduced.

2) We very rarily email all GitLab.com users (less than once per half year). We encourage everyone to follow us on Twitter or subscribe to the newsletter if they want to stay up to date, these channels feature all blog posts.

3) The fact that GitLab has multiple editions is communicated on https://about.gitlab.com/featu... and on https://about.gitlab.com/prici... it clearly lists that it is using the Enterprise Edition. This is something we want everyone to be aware of. In general I think that 'Enterprise Edition' is used to communicated a licensed version of an otherwise open source product, for example see https://www.phusionpassenger.c... and http://www.mysql.com/products/...

What we commonly hear in the rest of the community is that it is OK to have a paid offering but that both editions should be performant, secure, documented, tested and easy to install. There should be no artificial limits in the open source edition and any differences should be communicated.

Our missions is to give the world great collaboration software that can be used in freedom. The open core model we use has been a great help in enabling this. We are always open to discuss which features belong in what edition and we're prepared to open source previously proprietary functions if that is called for. We are pragmatic and think that we can do a much better job with an open core model than without an Enterprise Edition. Everyone is free is start an alternative hosting service based on GitLab Community Edition and some already have (although none for FLOSS reasons). One example is a collaborative writing site based on a fork of GitLab, https://www.penflip.com/.

If you think there is a market for a fully FLOSS SaaS site than we encourage you to test this and we'll be happy to support and promote you. For us the income from the Enterprise Edition allows us to offer GitLab.com for free, therefore we prefer to use GitLab.com to run the Enterprise Edition ourselves.

One thing that we and the rest of the community would love to see is an export function that allows you to export your projects from GitLab.com and import them to another site or on-premises GitLab installation. If you want to contribute to this that would be awesome.


L'histoire de GitLab[modifier]

L'histoire de GitLab : https://about.gitlab.com/2014/10/08/letter-from-shareholders/

Dans ce billet de blog du 08 octobre 2014, c'est la première fois qu'il est fait allusion au business model « open-core ».

Quelques extraits :

 In 2013 we co-founded GitLab B.V. as a commercial entity. We have adopted the 'open-core' business model where there are an open source and proprietary version.
 We mainly generate income by selling subscriptions to the proprietary GitLab Enterprise Edition.
 We stongly believe in the benefit of open source as a better way to create software.
 We're both Rails developers and have been amazed at the open tools we could use.
 Everything from databases to frameworks and from editors to webservers has been open.
 One awesome development has been the use of git version control to collaborate better. 
 We feel that all the tools that you need to deliver software are better when they are open.
 You should be able to inspect your tools, modify them and share improvements with other users.
 Being aware that our code is open source also makes us hold ourselves to a higher standard when fixing issues or coding new features.
 We carefully discuss with the whole community which features belong in there and which ones should be in the open source edition.
 These tradeoffs are continually made and we're open to open sourcing some of the propietary features when this is the consensus.

Bilan[modifier]

Sytse Sijbrandij : GitLab B.V. wants to continue being a good actor within the GitLab community. And we believe that both a FLOSS offering and a proprietary offering can exist in a symbiotic way in this community.

[...]

We are pragmatic and think that we can do a much better job with an open core model than without an Enterprise Edition.

[...]

We carefully discuss with the whole community which features belong in there and which ones should be in the open source edition. These tradeoffs are continually made and we're open to open sourcing some of the propietary features when this is the consensus.


La stratégie de B.V. est le « open core model ».

GitLab B.V. veut faire que sa stratégie est :

  1. de mettre GitLab EE sous licence propriétaire afin de faire payer de grandes entreprises qui veulent quelques fonctionnalités n'intéressant qu'elles (LDAP, Hook Jira, etc.) ;
  2. le tout pour financer, avec l'argent récolté, le développement de la version libre (CE) de GitLab.

Questions :

  • comment avoir confiance dans un tel plan ?
  • comment accepter la viabilité d'une telle stratégie ?
  • n'est ce pas simplement un moyen d'enfumer tout le monde en rendant propriétaire ce qui ne l'était pas tout en continuer de profiter des contributions des libristes ?


En se référant aux valeurs du libre, la stratégie retenue par GitLab peut être qualifiée de :

  • opportuniste : si ça les arrange, ils prennent l'un et l'autre ;
  • mixte : FLOSS et privateur sont une symbiose acceptable pour les utilisateurs de GitLab, d'après GitLab B.V. ;
  • indifférente aux valeurs du libre : la seule chose qui les intéressent dans le libre, c'est ce que peuvent leur rapporter les libristes ;
  • avaricieux : faire payer les grosses boites, telle est leur préoccupation.

En résumé, au mieux, leur credo serait « Faire du logiciel privateur pour faire du logiciel open-source ».

Alors, sont-ils des Robins des bois en faisant payer de grandes entreprises pour financer le développement de la version libre ? En effet, les fonctionnalités majeures rajoutées dans la version EE concernent principalement les grandes entreprises/structures (> 100 personnes). Mais cela n'est pas crédible :

  • certaines fonctionnalités majeures non transposées (git hooks, close Jira event...) ;
  • ce n'est pas un business model conforme aux « valeurs du libre » ;
  • risque trop important de dérive ;
  • certaines prises de position ne laissent aucun doute sur l'unique volonté de faire de l'argent.

Ils disent « négocier » avec la commauté GitLab le passage des fonctionnalités propriétaires en open-source. Mais ce positionnement est clairement une « pression/risque/situation ».

Conclusion[modifier]

Même si GitLab CE est un logiciel libre (licence MIT expat), il est lié à un modèle open-core donc l'utiliser :

  • c'est accepter de se passer de certaines fonctionnalités existantes uniquement en version privateur ;
  • c'est soutenir leur stratégie opportuniste, mixte et indifférente aux logiciels libres.

Du coup, des questions se posent pour un « vrai/engagé » libriste :

  • faut-il boycotter GitLab.com (http://gitlab.com/, le host gratuit) ?
  • faut-il boycotter GitLab CE ?
  • faut-il boycotter GitLab B.V. ?
  • faut-il déconseiller à tous d'utiliser GitLab.com ? GitLab CE ? Acheter des services à GitLab B.V. ?
  • faut-il forker GitLab CE ?
  • faut-il recommander/utiliser/améliorer Savanne (Gna!, Savannah(s)) ?