Linagora passe de la CLA à la DCO
Pour encourager davantage de contributions de la part de la communauté open-source
8 juillet 2021
Au cours des dernières années, les logiciels à code source ouvert ont transformé l’industrie du logiciel. Alors que les entreprises sont en concurrence les unes avec les autres pour lancer la prochaine meilleure application, elles se tournent vers la mine inexploitée des contributeurs de logiciels libres du monde entier. Cela leur permet de donner une nouvelle perspective à leur pipeline de développement et de terminer les projets plus efficacement et plus rapidement.
LINAGORA est le leader de l’industrie française des logiciels libres depuis plus de 20 ans. Après une année 2020 mouvementée, LINAGORA a une nouvelle vision. LINAGORA a réaffirmé sa foi dans les logiciels libres et open-source pour faire de la Good Tech - des logiciels éthiques et open-source, pour rendre le monde meilleur en ayant un impact positif maximum sur les gens, la société et la planète. Nous nous engageons à respecter cette vision et, dans le cadre de cet engagement, nous ne cessons de réévaluer la manière dont nous y parvenons. Pour certains membres de notre communauté, la CLA est un obstacle pour contribuer aux projets de LINAGORA. Pour réduire le temps de friction et faciliter la contribution de notre communauté, nous passons à un Developer Certificate of Origin.
Quelle est la différence entre la CLA et le DCO ?
Contributor License Agreement (CLA) est un long contrat juridique, souvent contraignant, qui empêche les développeurs de contribuer librement aux projets de logiciels libres. Les développeurs sont généralement dissuadés de contribuer par le fait qu’ils doivent examiner un long contrat juridique et qu’ils renoncent potentiellement à certains de leurs droits. Developer Certificate of Origin (DCO) offre une plus grande flexibilité et une meilleure portabilité aux communautés open-source. Le DCO remet la propriété des contributions entre les mains des développeurs. Plus besoin de s’inquiéter de la saisie de termes juridiques que vous ne comprenez pas entièrement ou d’engager un avocat pour vous aider à comprendre l’aspect juridique d’un CLA.
Pourquoi ce changement ?
Le Contributor License Agreement est la norme industrielle pour les contributions aux logiciels libres, mais il est très impopulaire auprès des développeurs car il augmente le temps de friction de leurs contributions. Parfois, il les dissuade même de contribuer par crainte de ne pas comprendre pleinement les termes juridiques et leurs conséquences. Dans le cadre de notre engagement à faire de la GOOD Tech, nous avons décidé de passer à un Developer Certificate of Origin afin de faciliter le processus de contribution pour notre communauté open-source. Linagora célèbre le modèle du logiciel libre et open-source ainsi que la créativité et la collaboration qui y sont associées. Nous espérons que la mise en œuvre du DCO supprimera un autre obstacle aux contributions aux projets LINAGORA.
Des entreprises comme Chef et Gitlab ont déjà fait le choix de passer d’une CLA à un DCO, pour faciliter les contributions de leurs communautés open-source. Dès maintenant, nous mettons en place ces changements afin que les contributeurs aux projets open-source LINAGORA soient tenus de faire des contributions et des corrections de bogues sous la licence du projet (Affero GPL Version 3 avec des conditions supplémentaires) et Developer Certificate of Origin (DCO).
Questions fréquemment posées
Pourquoi avez-vous attendu si longtemps pour faire ce changement ?
Avec notre version de la CLA, nous pensions avoir une version simplifiée de la gestion des contributions, mais les avantages d’un DCO sont convaincants et évidents. Nous nous efforçons toujours de supprimer les obstacles aux contributions à nos projets open-source et de réduire le temps de friction pour nos contributeurs. Par conséquent, ce changement nous aidera à réaliser notre vision de faire de la GOOD Tech for Good.
Comment fonctionne un DCO ?
Si vous acceptez de faire des contributions et des corrections de bogues sous la licence du projet et le DCO, vous devez le certifier en ajoutant une ligne à chaque message de commit git : Signé par : John Unicorn unicorn-john@ developer.org
Veillez à utiliser votre vrai nom complet (pas de pseudonymes ou de contributions anonymes). Si vous définissez vos user.name
et user.email
comme des configurations git, vous pouvez signer votre commit automatiquement avec git commit-s
.
Que se passe-t-il si je cotise alors que je travaille comme employé pour une autre organisation ? Dois-je demander à mon employeur de signer également un document ?
Non ! C’est la meilleure partie du passage à un DCO. Tant que vous êtes le propriétaire légitime du droit d’auteur de la contribution, vous n’avez besoin de personne d’autre pour signer le commit git. Vous pouvez signer le commit git au nom d’autres entités impliquées dans la contribution si vous êtes légalement autorisé à le faire.
Que faire si j’ai déjà signé une CLA ?
Ne vous inquiétez pas, tous vos droits restent les mêmes. Vous n’avez pas besoin de faire quoi que ce soit avec vos contributions précédentes. À l’avenir, assurez-vous simplement de signer le message git commit.
Qu’en est-il des contributions de l’Europe ? Leurs contributions sont-elles valables sans CLA ?
Oui. Le DCO est une déclaration expresse d’un contributeur indiquant qu’il a le droit de faire ses contributions et qu’il les fait intentionnellement dans des conditions permettant la distribution sous la licence du projet - dans notre cas Affero GPL Version 3 avec des conditions supplémentaires. Tout comme une CLA, le DCO est une attestation jointe à chaque contribution faite par le développeur.
Que faire si j’oublie d’ajouter l’attestation à mon message de commit git ?
Chaque commit doit avoir une ligne Signed-off-by. Si vous avez déjà soumis un PR, vous devez modifier vos commits pour inclure la ligne Signed-off-by. Dans le cas où votre PR est un commit unique, modifier votre message peut être aussi simple que d’exécuter git commit - - amend -s. Lorsque votre PR contient plusieurs commits, cela demande un peu plus de travail pour réécrire le message de commit pour chaque commit.