ci: passer check-frontend, audit et release de Node 20 (fin de vie) à Node 24 ; réécrire le commentaire concurrency de check-rust #376
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#376
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Node 20 est en fin de vie depuis le 2026-04-30. Trois workflows l'installent encore par
deb.nodesource.com/setup_20.x:.forgejo/workflows/check-frontend.yml:41-47.forgejo/workflows/audit.yml:42-52.forgejo/workflows/release.yml:19-26(absent du corps d'origine)check-rust.yml:92est déjà ensetup_24.xdepuis #375 ;actions/checkout@v4(déclarénode20) y tourne avec lenodedu conteneur.Lien avec #392 : #392 (D3) prévoyait de passer
check-frontenden Node 22 pournode:sqlite.node:sqliteexiste aussi en Node 24 : #392 s'aligne sur Node 24 et n'a plus d'étape CI à elle (commentaire posé sur #392). Node 24 embarque npm 11, ce qui fait aussi disparaître le plantage de l'arborist de npm 10 sur vitest 4.1.x noté en #358 (le lock reste lu parnpm ci).concurrency: le commentaire decheck-rust.yml:55-57dit « Cancel obsolete runs (e.g. on force-push) so only the latest commit runs ».la-compagnie-maximus/docs/forgejo-ops.md(section « Le schéma du workflow est validé par le runner », mesuré sur Forgejo 8.0.3) dit que la clé passe la validation mais que son effet n'a pas été isolé, l'annulation du run précédent d'unpushexistant aussi sans elle, et qu'aucun runpull_requestn'est annulé par un run suivant.Décisions (Max, 2026-10-10)
setup_24.x.concurrencygardées, commentaire réécrit : elles sont inoffensives et servent au miroir GitHub dormant et à une future version de Forgejo. Le commentaire decheck-rust.yml(et ceux, s'il y en a, decheck-frontend.yml:28etaudit.yml) décrit ce que la doc d'ops a mesuré, avec un renvoi vers elle.Travail à faire
check-frontend.yml,audit.yml,release.yml:setup_20.x→setup_24.x, nom d'étape « Install Node.js 24 »,node --versiongardé dans le log.concurrencydecheck-rust.yml:55-57d'aprèsforgejo-ops.md; harmonisercheck-frontend.ymletaudit.yml.CLAUDE.md(section CI/CD) etdocs/architecture.md(section CI/CD) : Node 24 si la version y est citée.Fichiers concernés
.forgejo/workflows/check-frontend.yml,.forgejo/workflows/audit.yml,.forgejo/workflows/release.yml,.forgejo/workflows/check-rust.yml(commentaire)CLAUDE.md,docs/architecture.md(si la version de Node y figure)Surface de test
Infra CI, pas de test unitaire. Preuves lues dans les journaux (route web
/{owner}/{repo}/actions/runs/{n}/jobs/0/logs) :check-frontendde la PR :node --version= v24.x,npm ci, build et tests verts.audit:workflow_dispatchsur la branche,node --version= v24.x, audit vert.release.yml: non prouvable avant le prochain tag. À confirmer à la prochaine release (étapenode --versiondu run etverify-release.shvert) ; le noter dans la PR et dans le pré-vol de/release.Critères d'acceptation
setup_20.xdans.forgejo/workflows/.check-frontendetauditverts sous Node 24, lu dans les journaux.concurrencyne contredit plusforgejo-ops.md.release.ymlest notée pour la prochaine release.Complexité estimée
Simple.
Liens
#375 (Node 24 dans
check-rust), #392 (D3,node:sqlite), #358 (npm 10/11),la-compagnie-maximus/docs/forgejo-ops.md.Dépendances
Depends on
(aucune)
Fichiers concernés (complet)
.forgejo/workflows/check-frontend.yml,.forgejo/workflows/audit.yml,.forgejo/workflows/release.yml(Node 24),.forgejo/workflows/check-rust.yml(commentaireconcurrency)CLAUDE.md(section CI/CD),docs/architecture.md(section CI/CD) si Node y est cité ; risque NodeSource nommé (voir décisions)Critères d'acceptation (planification)
grep -rn setup_20 .forgejo/workflows/ne renvoie rien.check-frontendde la PR :node --versionaffiche v24.x,npm ci, build et tests verts.auditsous Node 24 prouvé par unworkflow_dispatchsur la branche (voir décisions pour le repli).concurrencyconforme àla-compagnie-maximus/docs/forgejo-ops.md(aucun runpull_requestannulé par un suivant ; effet de la clé non isolé sur Forgejo 8.0.3).release.ymlsous Node 24).Review caveats
curl | bashNodeSource s'exécute en root dans le conteneur derelease.ymlqui reçoit ensuiteTAURI_SIGNING_PRIVATE_KEY. Gardé (décision), mais nommé dans le commentaire du workflow et dansdocs/architecture.md.release.ymln'est exercé qu'au prochain tag. Ajouter à.claude/skills/release/SKILL.md(pré-vol ou vérification) : lirenode --versiondans le journal du run de release.Décisions prises en planification
concurrencygardées, commentaire réécrit (Max, 2026-10-10).release.yml, risque documenté ; pas de tarball épinglé (Max, 2026-10-10).audit: déclencher par l'APIPOST /repos/maximus/simpl-resultat/actions/workflows/audit.yml/dispatchesavec{"ref":"<branche>"}. Si l'API ne répond pas 2xx, poserautopilot:pending-humansur la PR avec la consigne « lancer Security audit sur la branche depuis l'UI Actions et lirenode --version», sans bloquer la suite de la pile.Spec source
spec-plan-release-deps.md(local, ignoré par git)Archive avant réécriture par
/analyze(2026-10-10, lu surmain87920ec). Le corps est réécrit avec les décisions de Max du jour ; le texte d'origine est conservé ci-dessous.Corps d'origine
Deux constats hors du périmètre de #375, relevés par sa revue (commentaire 18946) et vérifiés dans les fichiers le 2026-10-03.
1. Node 20 en fin de vie
check-frontend.ymletaudit.ymlinstallent Node.js pardeb.nodesource.com/setup_20.x. Node 20 est en fin de vie depuis le 2026-04-30.check-rust.ymlest passé à Node 24 dans #375, parce que rust-cache déclarenode24;actions/checkout@v4, déclarénode20, y tourne sans souci avec lenodedu conteneur.setup_24.x.check-frontend(npm ci, build, tests) passe sous Node 24.2. Commentaire
concurrencydecheck-rust.ymlLe commentaire au-dessus de
concurrency:dit « Cancel obsolete runs (e.g. on force-push) so only the latest commit runs ».la-compagnie-maximus/docs/forgejo-ops.md, mesuré le 2026-10-02 sur Forgejo 8.0.3, dit l'inverse pour les PR : aucun runpull_requestn'est annulé par un run suivant, et l'annulation des runspushexiste sans la clé.concurrencydes trois workflows si elles sont inertes : à trancher.Pas d'entrée CHANGELOG : configuration CI seulement.
ci: Node 20 en fin de vie dans check-frontend et audit ; commentaire concurrency de check-rust démenti par la doc d'opsto ci: passer check-frontend, audit et release de Node 20 (fin de vie) à Node 24 ; réécrire le commentaire concurrency de check-rust