Passage à NodeJS 20

Hello,

J’ai vu ce warning lors d’éxécution d’actions dans Github

Node.js 16 actions are deprecated.

Effectivement, NodeJS 16 est déprécié dans les actions et ils recommendent de passer à NodeJS LTS 20 (GitHub Actions: Transitioning from Node 16 to Node 20 - The GitHub Blog)

Our plan is to transition all actions to run on Node 20 by Spring 2024

Est-ce qu’on essaye de passer à NodeJS 20.11.0 (npm 10.2.4) ?

En fait, on utilise Node 18, mais j’ai quand même fait une PR pour passer à la dernière version des actions Github

Carrément chaud pour passer à Node 20 pour Gladys + les Github actions :slight_smile:

Merci pour les PRs, tiens moi au courant quand c’est ready for review !

Bon, pour Node 20, on a un « léger » blocage :thinking:

Après 2 jours à me casser la tête sur des builds docker infinis, je suis tombé sur cette issue NPM install stucks with node:20 · Issue #1946 · nodejs/docker-node · GitHub

De ce que je comprends, on ne peut pas utiliser npm dans les images node-20 pour les plateformes linux/arm/v6, linux/arm/v7 et ça colle bien avec mon build infini.

Ces plateformes correspondent aux anciennes versions des RPI (1, Zero / Zero W/WH et 2 Mod. A). Est-ce qu’on maintient le build pour ces plateformes ?

Sinon, une image de test cicoub13/gladys:node-20 est déployée sur mon RPI4 depuis quelques jours, rien à signaler.

Gladys - Node 20 by cicoub13 · Pull Request #2039 · GladysAssistant/Gladys · GitHub
Gladys Gateway NOT TESTED - chore(node): Update to node 20 by cicoub13 · Pull Request #159 · GladysAssistant/gladys-gateway · GitHub
Gladys Documentation - docs: Update to node 20 by cicoub13 · Pull Request #256 · GladysAssistant/v4-website · GitHub

Merci pour les PR et tout le travail effectué @cicoub13 :clap:

Apparemment ça a été fixé non ?

Je suis plutôt pour attendre que l’image Node 20 soit stable et fonctionne sur ces plateformes :slight_smile:

1 « J'aime »

Non, ce sont des gens d’autres projets open source qui enlèvent ARM v7 mais ce n’est toujours pas corrigé. On peut attendre un peu :hourglass_flowing_sand:

Ok.

Tant que ça n’a pas d’impact pour les utilisateurs (ou le développement), autant rester en Node 18, car pour le coup retirer une plateforme ça aura un vrai impact.

Si à un moment on ressent le besoin de passer en Node 20, on re-évaluera

Tiens nous au courant si ça bouge sur les images :slight_smile:

Pour info, le bug est toujours présent et affecte aussi Node 22 :

1 « J'aime »

Pour info, j’ai du dropper le support d’arm/v6 avec le passage à DuckDB, car tout simplement l’image Node.js ne le supporte plus dans sa version -slim basée sur Debian.

J’ai l’impression néanmoins que le problème avec Node 20 et arm/v7 est toujours présent…

Si ça continue, on sera contraint de dropper le support d’arm/v7, c’est peut-être un mal nécessaire car au final même les Pi 3 sont en arm64 il me semble, donc on ne perd pas des plateformes majeures non plus

1 « J'aime »

Petite mise à jour sur ce sujet !

On va bientôt avoir 2 versions majeures de retard sur Node.js, car Node 22 var passer en LTS dans le courant du mois.

J’ai pris la décision de dropper le support de arm/v7, que de toute façon je ne recommande plus.

→ Les mini-PC que je recommandes sont en amd64
→ Les Raspberry Pi depuis le Pi 3 sont en arm64

A mon sens, on ne perd pas des plateformes majeures et ça nous permet vraiment d’aller de l’avant.

Cela va permettre 2 choses :

  • Passage à Node 22 dès que la LTS est disponible
  • Accélérer les builds (On va passer de 4h à quelques minutes :stuck_out_tongue: …)

La PR est ici :

Edit: Un build prend désormais 42 minutes au lieu de 4h10 :sweat_smile:

4 « J'aime »

Les 3 h restantes sont uniquement build la version armv7 ?!

C’est pire que ça, les builds sont lancés en parallèle donc le temps total c’est le temps du build le plus long, soit 4h10 pour le armv7 :slight_smile: