SheetJS abandonne le registre npm sur l’exigence 2FA et les «questions juridiques»

npm

Dans un geste surprenant, le projet open source populaire, SheetJS alias « xlsx », a abandonné la prise en charge du registre npm.

Téléchargé environ 1,4 million de fois par semaine sur npm, SheetJS est utilisé par les développeurs NodeJS qui cherchent à créer et à analyser des feuilles de calcul Excel en utilisant uniquement JavaScript.

Le responsable du projet suggère que la décision de se retirer du registre npm est basée sur les exigences à deux facteurs nouvellement introduites pour les meilleurs projets, la prise de décision abrupte de GitHub et les « questions juridiques » en cours entre SheetJS et npm.

SheetJS s’éloigne du registre npm

Le 14 avril, le responsable de SheetJS a introduit un changement de code supprimant toutes les dépendances npm utilisées par le projet.

Toutes les références d’URL aux domaines de npm dans le code source de SheetJS ont également été mis à jour pour utiliser SheetJS CDN, comme vu par EZpublish-france.fr.

Les futures versions de SheetJS devraient être publiées sur son CDN, cdn.sheetjs.com, plutôt que le registre npmjs.

SheetJS (alias xlsx) fait partie des « 500 meilleurs packages » en fonction du nombre de composants qui dépendent de cette bibliothèque.

Noter la ‘feuillejs‘ Le package npm est un simple espace réservé réservé par SheetJS, alors que la bibliothèque officielle SheetJS npm se trouve à ‘xlsx‘ :

SheetJS npm page
Projet SheetJS, distribué sur le registre npm en tant que ‘xlsx’ (npm)

De l’exigence 2FA aux « questions juridiques » en suspens

Cette décision de SheetJS a laissé les développeurs complètement confus qui ont ouvert une discussion fil de discussion sur le référentiel GitHub du projet, remettant en question le motif.

Le développeur derrière SheetJS cite un certain nombre de raisons pour éviter npm, y compris la décision du registre de forcer les mainteneurs des meilleurs projets open source à une authentification à deux facteurs.

sheetjs inscrit à 2fa par npm
Le développeur de SheetJS doit maintenant configurer 2FA par npm (GitHub)

L’initiative de GitHub pour appliquer l’authentification multifacteur (MFA) est arrivée peu de temps après les incidents de piratage de l’année dernière qui ont touché des packages npm célèbres comme ua-parser-js, coa et rc.

Ces bibliothèques npm, sur lesquelles s’appuient des milliers de projets et d’entreprises, ont été entachées de logiciels malveillants en 2021 après les attaquants ont compromis les comptes npm de leurs mainteneurs.

En tant que tel, le registre npm appartenant à GitHub a annoncé plus tôt cette année que les développeurs des 100 meilleurs packages npm seront nécessaire pour configurer l’authentification à deux facteurs renforcer la sécurité de leurs projets, des règles similaires étant introduites pour les projets répondant à d’autres critères. Et apparemment, SheetJS relève de ces critères et doit mettre en place MFA, laissant le responsable mécontent.

Une autre raison citée par SheetJS est ses « questions juridiques » en suspens avec npm.

« En raison de problèmes juridiques en cours entre SheetJS LLC et npm, Inc. (qui ne seront pas abordés ici), il n’était pas logique de continuer à utiliser le registre public npm pour la distribution », déclare le développeur de SheetJS.

Enfin, SheetJS indique vaguement que la décision de GitHub de fermer son service de redirection d’URL git.io avec seulement quatre jours de préavis avait des échos de « l’éphémère d’Internet et des risques inhérents à la dépendance aux plates-formes ».

Et toutes ces raisons ont causé beaucoup de confusion parmi les développeurs qui spéculent maintenant, ce que le réel la raison derrière l’abandon de npm pourrait être.

« Liste des 500 meilleurs packages NPM, 1,26 million de téléchargements par semaine, plus de 3000 packages dépendants et même pas une mention dans le README concernant le fait que le développement en cours pour ce package n’existera plus dans la plus grande plate-forme de bibliothèque JS de la planète ( après 8 ans), » commenté Clay Levering, directeur de l’ingénierie produit chez Blu Digital Group.

Certains ont qualifié les raisons de SheetJS de « bizarres », tandis que d’autres ont soutenu que les mainteneurs open source étaient libres de faire ce qu’ils voulaient avec leurs créations, mais il pourrait y avoir des mises en garde.

« Les mainteneurs de projets OSS ne doivent rien aux gens, bien sûr, mais tout ce que je peux dire, c’est que vous ne devriez pas être surpris lorsque les gens (y compris vos clients payants) regardent tout cela et décident de bifurquer le projet ou de passer à une bibliothèque concurrente non gérée par quelqu’un qui prend des décisions comme celle-ci », a écrit le développeur Lynn Romich dans le même fil.

« Parce que npm est statistiquement beaucoup plus susceptible d’exister dans 5 ans que votre CDN personnel », a poursuivi Romich.

Un utilisateur de Reddit suppose que la décision audacieuse de SheetJS n’a rien à voir avec un litige en cours entre les deux parties.

« Je suppose qu’ils ne veulent pas investir un centime du temps de leur développeur pour aider une entreprise (npm) avec laquelle ils ont un procès », écrit l’utilisateur.

Les redditeurs aussi est devenu polarisé si l’authentification obligatoire à deux facteurs impose des obstacles supplémentaires aux développeurs et si, en fin de compte, le compromis entre sécurité et commodité est justifié.

EZpublish-france.fr a contacté GitHub (npm) et SheetJS pour mieux comprendre ce que les questions juridiques impliquent. À l’heure actuelle, nous n’avons rencontré aucun document de litige public. Ce message sera mis à jour une fois que nous aurons plus d’informations.