Un désaccord entre un développeur de solutions open-source et une application de messagerie a eu d'énormes répercussions sur de nombreux projets.

Tout développeur sait que le moindre changement dans une ligne de code peut mettre à mal l’ensemble d’un programme. Alors quand un développeur a retiré d’un seul coup 250 modules du gestionnaire de paquet NPM — incontournable chez les développeurs JavaScript, des centaines de projets ont été impactés.

Le développeur Azer Koçulu, fervent défenseur de l’open source, s’est retrouvé dans une position délicate après avoir publié un module nommé Kik. Ce nom vous rappelle peut-être quelque chose qui n’a absolument rien à voir avec les quelques lignes de codes créées par Azer. Car Kik, c’est aussi le nom d’une messagerie instantanée disponible sur de nombreuses plateformes.

Or, l’éditeur de l’application de messagerie n’a pas apprécié de voir qu’un inconnu utilisait leur marque, et les avocats de Kik ont exigé d’Azer Koçulu qu’il change le nom de son module.

Les entreprises ont plus de pouvoir que les gens, et je fais de l’open source parce que je crois que le pouvoir revient au peuple

Mais comme il l’explique dans un billet publié sur Medium, Azer n’a pas souhaité obéir, et les juristes de Kik se sont donc tournés directement vers NPM pour obtenir le retrait du module, en vertu des lois sur la protection des droits de propriété intellectuelle. En conséquence, le CEO de NPM Isaac Schlueter a retiré la propriété du module au développeur.

Furieux, Azer a alors supprimé sans sommation l’ensemble de ses 250 modules du gestionnaire de paquets, par principe. « Cette situation m’a fait réaliser que NPM est une chasse gardée, où les entreprises ont plus de pouvoir que les gens, et je fais de l’open source parce que je crois que le pouvoir revient au peuple », écrit-il.

Mais voilà. Parmi les 250 projets qu’il gérait, résidait un petit module de seulement 11 lignes de code, Left-pad. Or ce tout petit bout de code est requis par de nombreux paquets très populaires, dont React, Babel et Node. Rien que sur le mois de février 2016, left-pad a été téléchargé plus de 2,4 millions de fois !

A titre d’exemple, Babel est un des paquets les plus populaires de NPM. Il a été développé par Sebastian McKenzie pour permettre au code écrit en ES6 (la dernière version de JavaScript) d’être converti en ES5, pour être compatible avec les navigateurs actuels. Babel est donc extrêmement populaire, et est utilisé par exemple par Facebook, Netflix, ou encore Spotify. Rien que le mois dernier, Babel a été installé plus de 749 195 fois. Comme Babel utilise left-pad en tant que dépendance, l’installation « dépend » du paquet de Koçulu. Si celui-ci n’est pas disponible, Babel ne peut pas être installé.

En conséquence, d’après Laurie Voss, le directeur technique de NPM, des centaines d’installations de paquets d’applications diverses échouaient chaque seconde.

Dans son billet, Azer encourageait les développeurs à utiliser la dépendance via son dépôt GitHub et allait jusqu’à proposer de transférer la propriété du module. C’est d’ailleurs ce qu’il s’est passé puisque Voss a pris la décision exceptionnelle de « dé-dé-publier » left-pad (de le remettre en ligne, ndlr), à la demande de Cameron Westland, son nouveau propriétaire. Si votre code ne marche toujours pas, Voss vous conseille d’effectuer un « npm cache clear » pour que tout rentre dans l’ordre.

Des pratiques à revoir chez les développeurs

Ce précédent amène de nombreuses interrogations. De l’aveu même du CTO de NPM, restaurer le module tient de la «  zone grise » en matière de droit, même si cela est fait dans l’intérêt de la communauté et suite à un accord entre Azer et Cameron. On imagine toutefois que la décision a dû être prise rapidement pour restaurer la paix sur l’Internet.

L’autre problème soulevé par la suppression de left-pad concerne les habitudes de développeurs, qui s’appuient sur des dépendances de quelques lignes (des « one liners » dans le jargon) au lieu de les écrire eux-mêmes. Il existe ainsi des dépendances d’une seule ligne de code qui ne demandent en soi qu’à reproduire ce même scénario.

Enfin, cette affaire nous fait réfléchir aux proportions et les relations de causes à effet que peuvent prendre de simples affaires de droit d’auteur. Si par la suite, le CEO de Kik a indiqué qu’un meilleur choix de mot aurait pu être fait par l’avocat, pas sûr qu’une « demande polie » aurait suffi à faire changer d’avis le développeur. Azer a dit qu’il ignorait l’existence de l’application. Il utilisait « Kik » comme abréviation pour « kick-start » que l’on pourrait tenter de traduire par l’idée de « démarrer quelque chose avec énergie ».

Partager sur les réseaux sociaux

Articles liés