11 lignes de codes qui disparaissent et ce sont des centaines de projets open source qui sont mis à mal
Aujourd’hui, je vais vous parler de Azer Koçulu.
Azer est un développeur passionné d’open source qui depuis des années publie des modules pour NPM, un gestionnaire de paquets utilisé par les projets Javascript pour installer des dépendances.
Et dernièrement, il a sorti un module baptisé Kik, qui vous vous en doutez, a attiré l’attention des avocats de la société Kik du logiciel de messagerie du même nom. Suite à un premier contact, Azer a refusé de supprimer son module et les avocats de Kik ont déposé une plainte pour violation de marque.
Suite a cette plainte, NPM a donc décidé de supprimer le module Kik de Azer, ce qui l’a vraiment, mais alors vraiment énervé. Azer a donc décidé de retirer de NPM ses 250 modules. Violent quoi..
“Cette situation m’a fait réaliser que NPM était un terrain privé où les sociétés ont plus de pouvoir que les gens, et si je fais de l’open source, c’est pour donner du pouvoir aux gens.” (Azer Koçulu)
Là où ça se complique, c’est que l’un de ses modules baptisé Left-pad est massivement utilisé dans des tas de projets comme Node, Babel…etc.
Left-pad, c’est 11 petites lignes :
module.exports = leftpad;
function leftpad (str, len, ch) { str = String(str);
var i = -1;
if (!ch && ch !== 0) ch = ’ ‘;
len = len - str.length;
while (++i < len) { str = ch + str; }
return str; }
En retirant left-pad du dépôt, toutes ces applications se sont foiré à l’installation, ne trouvant pas la dépendance. Et quelle dépendance, car rien que le mois dernier, left-pad a été téléchargé plus de 2,4 millions de fois. Je vous laisse imaginer le chaos parmi la communauté Javascript.
Left-Pad sur NPM est donc maintenu par une nouvelle personne, Azer a publié un article sur Medium pour s’expliquer et mis son code sur GitHub pour ceux qui en auraient besoin.
Cette situation est intéressante car elle montre que l’application bête et méchante du copyright peut parfois avoir des effets de bord conséquents. A mon sens, NPM aurait du tenir tête aux avocats de Kik. (Edit : depuis mon article, le CEO de Kik a publié sa version des faits, qui montre que Azer n’est pas non plus un mec arrangeant. A lire ici.)
On constate aussi que pas mal de projets open source sont soutenus par une poignée de personnes et reposent sur des bouts de codes charnières qu’il est ensuite compliqué de retirer. Ce n’est pas pour rien que tout ceci s’appelle des “dépendances” et on voit là concrètement l’importance vitale de ces dépendances. Le monde de l’open source manque peut être encore un peu d’alternatives, de forks…etc. Je repense au problème avec OpenSSL en 2014, qui a donné trop tardivement le jour à LibreSSL.
En attendant, si votre code ne fonctionne pas même avec le retour de left-pad, faites un
npm cache clear
pour nettoyer le cache de npm et récupérer la version restaurée.