11 lignes de code JavaScript manquantes paralysent des milliers de projets

Par:
fredericmazue

ven, 25/03/2016 - 15:15

Acer Koculu est un important contributeur de la communauté JavaScript et publie ses réalisations sur le dépôt NPM. Il développait un module qu'il appelait Kik. Mais malheureusement il ne sait pas que ce nom est déjà utilisé par une entreprise qui a voulu le forcer à rebaptiser son projet.

Acer refuse et les responsables de l'entreprise se tournent alors vers la plate-forme NPM, qui par crainte d'une procédure judiciaire menace de transférer à l’entreprise les droits sur le projet d'Acer Koculu.

Celui-ci s'énerve et retire tous ses projets de NPM dont un, Left-Pad, qui consiste en 11 lignes de code faisant du remplissage sur le côté gauche des chaînes avec des zéros ou des espaces.

Trois fois rien comme code, mais en retirant son projet du dépôt NPM, Acer casse des dépendances et provoque l'échec de milliers de déploiements ou de constructions de projet.

A nouveau en situation de stress et d'urgence, NPM a décider de republier le module manquant, contre la volonté de son développeur. Pour la deuxième fois donc.

Cet incident pose question sur la dépendance que tout un chacun peut avoir vis à vis des projets open source et de leur pérennité. Une question qui se pose aussi bien sûr, mais différemment, avec les logiciels propriétaires.

11 malheureuses lignes de JavaScript très simples...

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;
}

LeftPad reste pour le moment disponible sur GitHub.