Duniter: proposition de repasser de yarn a npm

A l’époque, @cgeek avait décidé de migrer sous yarn pour de bonnes raisons, npm était clairement a la ramasse sur plusieurs points clés.

Mais entre temps, de l’eau a coulé sous les ponts, et npm v6.x est désormais aussi bon que yarn, je propose donc que l’on repasse a npm pour :

  • Simplifier le dev on boarding, ça fait un outils de moins a installer, npm étant installé en même temps que node via nvm. Et puis pour les dev habitués à node comme @tykayn, ils utilisent naturellement npm quand ils débarquent même si la doc dit d’utiliser yarn.
  • Simplifier les script de build, notamment @sveyret tente actuellement de faire un script de build générique (indépendant de la distrib), et là encore c’est plus facile de passer directement par npm.

C’est surtout la lecture de cet article qui m’a convaincu :

Alors @cgeek, ok pour qu’on repasse sur npm ?

5 J'aimes

Juste pour rendre les choses un peu plus compliquées… :wink: Est-ce que vous connaissez pnpm ?

Sinon, pour moi, utiliser npm, c’est effectivement une dépendance en moins lors de la construction du projet, donc je serai plutôt favorable.

2 J'aimes

Aucun problème. Désormais npm dispose d’un package-lock.json donc plus d’ambiguïté sur les dépendances, et puis sa vitesse n’a plus rien à voir avec les précédentes versions.

Go :thumbsup:

4 J'aimes

Ok je commence donc la migration sous npm :slight_smile:

C’est en grande partie parce que npm a été réécrit en Rust:

3 J'aimes

Décidément :wink:

1 J'aime

Migration sous npm terminée. Ce fût long car j’ai également mis à jours tous les scripts de build des releases et testé chacun d’eux :slight_smile:

Pour vous aider a vous rappeler ce changement, j’ai adapté le fichier package.json de façon a ce que vous obteniez une erreur et un rappel si jamais vous tentez de builder duniter avec yarn :

$ yarn
yarn install v1.22.4
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/5] Validating package.json…
error duniter@1.7.21: The engine « yarn » is incompatible with this module. Expected version "YARN NO LONGER USED - use npm instead.". Got « 1.22.4 »
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

3 J'aimes