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
Merci pour les PRs, tiens moi au courant quand c’est ready for review !
Bon, pour Node 20, on a un « léger » blocage
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.
Merci pour les PR et tout le travail effectué @cicoub13
Apparemment ça a été fixé non ?
Je suis plutôt pour attendre que l’image Node 20 soit stable et fonctionne sur ces plateformes
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
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
Pour info, le bug est toujours présent et affecte aussi Node 22 :
opened 06:27PM - 04 May 24 UTC
<!--
Thank you for reporting an issue with the Node.js image.
Please fill in… as much of the template below as you're able.
-->
## Environment
* **Platform**: GitHub CI
* **Docker Version**: 24.0.9
* **Node.js Version**: 22
* **Image Tag**: node:22-alpine
## Expected Behavior
No hanging build on armv6/armv7
## Current Behavior
build is hanging on `npm ci --omit=dev`
## Possible Solution
none
## Steps to Reproduce
run docker deployment on github ci
## Additional Information
Logs:
https://productionresultssa4.blob.core.windows.net/actions-results/c81c7c78-0f17-4d1b-bb6e-eedc5023c285/workflow-job-run-e07742bd-189a-5079-918b-43f8b2f94b89/logs/job/job-logs.txt?rsct=text%2Fplain&se=2024-05-04T18%3A34%3A48Z&sig=kywF%2F31fsM6a0PFRA%2BGMwEYu9RkOcGzkAq1EUZumrx8%3D&sp=r&spr=https&sr=b&st=2024-05-04T18%3A24%3A43Z&sv=2021-12-02
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 …)
La PR est ici :
GladysAssistant:master
← GladysAssistant:remove-old-arm-builds
opened 03:06AM - 14 Oct 24 UTC
### Pull Request check-list
To ensure your Pull Request can be accepted as fa… st as possible, make sure to review and check all of these items:
- [x] If your changes affects code, did your write the tests?
- [x] Are tests passing? (`npm test` on both front/server)
- [x] Is the linter passing? (`npm run eslint` on both front/server)
- [x] Did you run prettier? (`npm run prettier` on both front/server)
### Description of change
Remove arm/v7 builds. Needed for upgrading Node 20. It'll make build way faster in for production releases
Edit: Un build prend désormais 42 minutes au lieu de 4h10
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
Node 22 est maintenant en LTS
J’ai essayé de mettre à jour localement, mais c’est pas aussi simple que ça
Côté front, impossible de démarrer en Node 22:
63: 0x10226dc60 node::StartExecution(node::Environment*, char const*) [/Users/pierre-gillesleymarie/.volta/tools/image/node/22.11.0/bin/node]
64: 0x10226db80 node::StartExecution(node::Environment*, std::__1::function<v8::MaybeLocal<v8::Value> (node::StartExecutionCallbackInfo const&)>) [/Users/pierre-gillesleymarie/.volta/tools/image/node/22.11.0/bin/node]
65: 0x1021d6460 node::LoadEnvironment(node::Environment*, std::__1::function<v8::MaybeLocal<v8::Value> (node::StartExecutionCallbackInfo const&)>, std::__1::function<void (node::Environment*, v8::Local<v8::Value>, v8::Local<v8::Value>)>) [/Users/pierre-gillesleymarie/.volta/tools/image/node/22.11.0/bin/node]
66: 0x1022fdc98 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/Users/pierre-gillesleymarie/.volta/tools/image/node/22.11.0/bin/node]
67: 0x1022fda90 node::NodeMainInstance::Run() [/Users/pierre-gillesleymarie/.volta/tools/image/node/22.11.0/bin/node]
68: 0x10227159c node::Start(int, char**) [/Users/pierre-gillesleymarie/.volta/tools/image/node/22.11.0/bin/node]
69: 0x19d314274 start [/usr/lib/dyld]
----- JavaScript stack trace -----
1: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:34535
2: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:34176
3: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:34506
4: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:173374
5: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:173420
6: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:173521
7: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:258942
8: /Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:261569
9: e (/Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:262673)
10: get (/Users/pierre-gillesleymarie/code/gladys/front/node_modules/esm/esm.js:1:262740)
En cherchant un peu, le souci est aussi présent sous Node 20:
opened 01:57PM - 29 Oct 24 UTC
**What is the current behaviour?**
It seems that with the latest node LTS versi… on preact-cli does not work at all.
I understand this is an abandoned project and that users are encouraged to move to something else, but any advice or pointers would still be greatly appreciated.
**Steps to Reproduce**
Steps to reproduce the behavior:
1. Run any preact-cli command on a node 20.10.0 environment
2. Get a fatal error from the node engine:
```
$ node_modules/.bin/preact --help
# node[740]: void node::fs::InternalModuleStat(const v8::FunctionCallbackInfo<v8::Value>&) at ../src/node_file.cc:1037
# Assertion failed: (args.Length()) >= (2)
----- Native stack trace -----
----- JavaScript stack trace -----
1: .../node_modules/esm/esm.js:1:34535
2: .../node_modules/esm/esm.js:1:34176
3: .../node_modules/esm/esm.js:1:34506
4: .../node_modules/esm/esm.js:1:173374
5: ...node_modules/esm/esm.js:1:173420
6: .../node_modules/esm/esm.js:1:173521
7: .../node_modules/esm/esm.js:1:258942
8: .../node_modules/esm/esm.js:1:261569
9: e (.../node_modules/esm/esm.js:1:262673)
10: get (.../node_modules/esm/esm.js:1:262740)
Aborted (core dumped)
```
Le souci, c’est que preact-cli
n’est plus maintenu, il faut apparemment passer à vite
: