Le monde des outils open source s’est élargi pour accueillir JSHint, car les responsables du projet ont enfin terminé les travaux nécessaires pour adopter la licence MIT Expat. Auparavant, le code du linter JavaScript était partiellement publié sous la licence JSON, avec une clause supplémentaire apparemment anodine qui stipulait: “Le logiciel doit être utilisé pour le bien, pas le mal.” Cette clause l’empêchait d’être reconnue par la FSF comme une licence de logiciel libre et de même n’a pas été reconnu comme Open source par l’Open Source Initiative.

Dans un essai intitulé Regarder le navire couler, Mike Pennisi, co-responsable de JSHint, décrit comment la licence a nui au projet. Bien qu’il ait capturé la distinction d’être le linter JavaScript le plus populaire en 2015, l’outil a été brutalement dépassé au cours des cinq dernières années par son contemporain, ESLint, en grande partie en raison des effets de la licence non libre.

crédit: Mike Pennisi

«Les objecteurs légalement conscients ne trahissent pas leurs propres motivations ignobles; ils refusent de conclure un contrat ambigu », a déclaré Pennisi. “En d’autres termes: ils ne disent pas:” Je suis un malfaiteur “, ils disent:” Je ne comprends pas ce que vous voulez. “Cette considération a disqualifié JSHint de l’inclusion dans toutes sortes de contextes.”

Les problèmes de licence ont empêché les développeurs des distributions Debian et Fedora GNU / Linux d’inclure JSHint. Pennisi plonge même dans un peu de l’histoire de WordPress, quand il a détaillé comment les plates-formes de programmation qui ont «reconditionné» JSHint ont également reconsidéré en raison de sa clause supplémentaire.

«Il fut un temps où le système de gestion de contenu populaire WordPress a reconditionné JSHint de cette manière», a-t-il déclaré. «Une fois qu’ils ont appris l’existence de la licence JSON, ils ont remplacé JSHint en quelques semaines.» Pennisi a fait référence à un billet pour WordPress 4.9 où JSHint était supprimé de l’implémentation principale de CodeMirror, ainsi que les outils de création de WordPress.

«Lorsqu’un projet comme JSHint perd des utilisateurs, il perd également des contributeurs», a déclaré Pennisi. «Cela ralentit l’ajout de nouvelles fonctionnalités et la correction des bugs. La rapidité est importante pour ces choses, et les gens perçoivent les retards très négativement. Le meilleur exemple en est la prise en charge différée par JSHint des fonctions asynchrones. »

JSHint était devenu ce que Pennisi décrivait comme un «linter JavaScript étrangement encombré». Malheureusement, le processus de passer à l’open source après sept ans n’était pas aussi simple que de soumettre une pull request pour un changement de licence. Dans un série d’essais, il déploie le processus exténuant de demande d’autorisation à tous les 200+ contributeurs du projet, pour finir par recevoir un refus et certains qui n’étaient pas disponibles pour le contact. Finalement, l’équipe JSHint a été obligée de réécrire le code source, mais uniquement pour les parties qui ont été fournies par les cinq personnes qui n’avaient pas autorisé le changement de licence.

Début août, JSHint a mis à jour pour utiliser la licence MIT Expat dans version 2.12.0 et est désormais compatible GPL. Le récit édifiant de Pennisi sur ce qu’il a appelé «la libération de JSHint» est une lecture fascinante qui détaille la lutte pour surmonter les défis de la licence originale du projet. Ce qu’il faut retenir de cette histoire, c’est que les créateurs de logiciels doivent fortement prendre en compte les ramifications des licences dès le départ, même si une grande communauté d’utilisateurs semble inimaginable au début. Les licences open source amènent un projet plus loin que son créateur n’aurait jamais pu le mener seul.

«Pour de nombreuses personnes, les licences sont une partie ésotérique du développement de logiciels», a déclaré Pennisi. «C’est une opinion pertinente: les cadres juridiques sont intimidants et la plupart des considérations peuvent être résolues en adoptant simplement des licences libres / open source bien connues.

«Le problème est que tous les logiciels ne sont pas distribués sous des licences libres / open source bien connues. J’espère que les particularités de la désintégration de JSHint aideront les gens à comprendre pourquoi les licences sont importantes. »


Source link