Skip to content

Conversation

@SpaceFox
Copy link
Contributor

J’ai essayé d’installer zds-site en suivant la doc (un poil intrusive mais c’est un autre sujet).

Ça m’a installé NodeJS 18, puis a planté parce qu’on a des packages qui demandent Node 20 ou 22+.

Donc je passe à NodeJS 24, qui est la dernière LTS en date.

Contrôle qualité

Je suppose que si la CI passe, que le front build et s’affiche correctement, c’est bon ?

@coveralls
Copy link

Coverage Status

coverage: 89.269%. remained the same
when pulling eb23364 on SpaceFox:maj_nodejs
into 22d23c3 on zestedesavoir:dev.

@Situphen
Copy link
Member

C'est étonnant car j'ai fait une PR récemment pour mettre à jour les dépendances Node.js #6754 avec Node 18 et ça fonctionnait bien.

Tu as bien installé les dépendances avec yarn --frozen-lockfile ? Sinon c'est possible que les versions aient été modifiées, auquel cas en effet les dernières versions des dépendances ne supportent probablement pas Node 18.

Si tu peux mettre les erreurs rencontrées, ça m'intéresse.

@SpaceFox
Copy link
Contributor Author

Tu as bien installé les dépendances avec yarn --frozen-lockfile ?

Non, j’ai utilisé uniquement le makefile, c’est la commande make install-linux qui m’a explosé à la tronche. BTW, Node 18 n’est plus supporté, donc ça peut valoir le coup de migrer cette version dans tous les cas.

@Situphen
Copy link
Member

Merci pour les précisions. Le Makefile lance la bonne commande pour installer les dépendances donc c'est étonnant. Tu utilises quel OS ?

Oui, on va mettre à jour Node mais on attendait de pouvoir passer à Debian 13, ce qui va être le cas dans les prochaines semaines.

@SpaceFox
Copy link
Contributor Author

Alors aussi bizarre que ça puisse paraitre, après avoir tout nettoyé, j’arrive pas à reproduire – make install-linux utilise bien Node 18.

Ma piste principale, c’est que j’avais mis à jour le projet sur une installation qui datait de largement plus d’un an, dans un état inconnu (PyCharm était passé par là, et j’avais un package-lock.json à la racine), donc je soupçonne qu’une fois de plus Node/NPM a géré ses dépendances avec le cul et m’avait collé une version inattendue d’une dépendance dans un coin.

@Arnaud-D
Copy link
Contributor

la doc (un poil intrusive mais c’est un autre sujet)

Tu pourrais préciser un peu ? On essaie d'écrire une doc destinée aussi à des développeurs plus débutants, donc parfois, il y a des détails qu'on peut juger superflus, mais qui sont là volontairement.

@SpaceFox
Copy link
Contributor Author

En particulier ici je m’attendais à ce qu’il utilise la version de NPM déjà installée sur mon poste, pas à ce qu’il force une installation d’une version obsolète. Du coup j’ai eu du mal à comprendre pourquoi il gueulait à propos d’un NodeJS 18 que je pensais ne plus avoir.

Y’a bien un log print_info "* [+node] installing nvm (v$ZDS_NVM_VERSION) & node (v$ZDS_NODE_VERSION) & yarn" --bold mais il est noyé dans la masse.

D’ailleurs à ce sujet on peut vachement simplifier l’installation et la mise à jour côté packages système en mettant toutes les dépendances sur une seule ligne dans le fichier ubuntu.txt, ça évite de lancer une commande apt par ligne (avec le dégueulis de logs et la latence que ça implique). À moins qu’il n’y ait une bonne raison de faire comme c’est aujourd’hui, je peux faire la MR en ce sens.

Pour le reste en effet c’est un peu toujours le même problème, on peut automatiser comme ce qui a été fait, c’est une excellente chose pour les débutants et une mise en route rapide, mais ça casse la compréhension de ce qui est fait et possiblement l’intégration avec des IDE. Et y’a pas de bonne réponse à ce sujet.

@Situphen
Copy link
Member

D’ailleurs à ce sujet on peut vachement simplifier l’installation et la mise à jour côté packages système en mettant toutes les dépendances sur une seule ligne dans le fichier ubuntu.txt, ça évite de lancer une commande apt par ligne (avec le dégueulis de logs et la latence que ça implique). À moins qu’il n’y ait une bonne raison de faire comme c’est aujourd’hui, je peux faire la MR en ce sens.

Idéalement, il faudrait laisser les dépendances sur une seule ligne dans le fichier ubuntu.txt (meilleure suivi de l'historique des modifications) mais en effet modifier le script pour tout lancer en une seule commande (un simple remplacement des sauts de ligne par des espaces, je suppose ?)

@SpaceFox
Copy link
Contributor Author

Sauf que « un simple remplacement », c’est pas si simple, c’est dans install_zds.sh ligne 90, tout est basé sur une lecture ligne par ligne de ce fichier :

    for dep in $(cat "$filepath"); do
        if [[ $dep == "#"* ]]; then
            continue;
        fi

        print_info "sudo $packagingTool_install $dep"
        echo ""
        eval "sudo $packagingTool_install $dep"; exVal=$?
        echo ""

        if [[ $exVal != 0 && $dep == "python3-venv" ]]; then
            print_error "!! We were unable to install virtualenv. Don't panic, we will try with pip3."
        elif [[ $exVal != 0 && ! $(_in "--answer-yes" $@) ]]; then
            print_error "Unable to install \`$dep\`, press \`y\` to continue the script."
            echo -n "Choice : "
            read -n 1
            echo ""
            if [[ $REPLY == "y" ]]; then
                print_info "Installation continued"
            else
                print_error "!! Installation aborted"
                exit 1
            fi
        elif [[ $exVal != 0 && $(_in "--answer-yes" $@) ]]; then
            print_info "Installation continued (auto answer: \`yes\`)."
        else
            print_info "$dep: success."
        fi
        echo ""
    done

J’ai l’impression que c’est un peu la malédiction de ce projet : il n’y a plus rien de simple dedans.

@github-project-automation github-project-automation bot moved this to En développement in Suivi des PR Dec 20, 2025
@Arnaud-D Arnaud-D moved this from En développement to En attente de QA in Suivi des PR Dec 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: En attente de QA

Development

Successfully merging this pull request may close these issues.

4 participants