La publication part à heure fixe, pas à chaque fusion¶
Contexte¶
release.yml partait à chaque fusion sur main. Conséquence mécanique, mesurée le 2026-08-05 :
- 497 tags depuis mai ;
- sur les quatorze derniers jours :
13, 8, 1, 2, 31, 16, 30, 22, 24, 19, 4, 8, 25, 2- jusqu'à 31 versions dans la même journée ; - une seule journée de travail soutenu en produit 25.
Le premier réflexe serait de dire que ces versions sont vides. C'est faux, et c'est important : sur
les 120 dernières, 76 feat et 38 fix - 95 % portent un changement réel.
Le défaut n'est donc pas le bruit, c'est l'atomisation : une version = un changement. Il en découle trois choses.
- Aucune version n'est validable. La recette finale (#1363) est un travail humain ; elle ne peut pas passer sur 25 versions par jour. Une version qu'on ne peut pas valider n'est pas une version, c'est un instantané.
- Aucune version n'est descriptible. Ses notes tiennent en une ligne. L'utilisateur qui suit les Releases voit défiler des numéros, pas des états.
- La cadence a déjà pesé sur une décision, en aval. Les publications winget et Flatpak
sont en déclenchement manuel, et
flatpak.ymlcompte la cadence parmi ses raisons : « ce dépôt publie entre 3 et 37 fois par jour, soit autant de constructions complètes du SDK et autant de commits de mise à jour surmain».
Cette raison-là n'est pas la principale, et il faut le dire pour ne pas se tromper de
conclusion : le dépôt Flatpak n'existait pas encore à cette date (#2111), et le même fichier
note qu'un déclenchement sur release: released ne partirait de toute façon jamais (l'événement
est produit avec le GITHUB_TOKEN, qui ne déclenche aucun workflow). Les canaux ne sont donc pas
« en retard » : ils n'ont rien à distribuer pour l'instant.
Décision¶
Un train de publication hebdomadaire, le mercredi à 6 h UTC, plus le déclenchement manuel.
Le déclenchement push sur main est retiré.
Pourquoi mercredi¶
Ni lundi - la semaine n'a encore rien produit - ni vendredi : un défaut découvert le vendredi soir attend le lundi, et l'installeur est chez les gens entre-temps. Un train du mercredi a deux jours ouvrés devant lui.
Pourquoi workflow_dispatch reste¶
Un correctif urgent n'attend pas le train. Le garder ne rouvre pas la porte à l'atomisation : c'est un geste délibéré, pas un effet de bord d'une fusion.
Ce que la décision ne change pas¶
Rien à l'outillage : semantic-release calcule la version et les notes comme avant, à partir des
mêmes commits, avec les mêmes parserOpts. Un train qui accumule sept feat publie une minor dont
les notes en listent sept - c'est le comportement normal de l'outil, il n'était simplement jamais
exercé.
Conséquences¶
- Un argument tombe pour les canaux de packaging, mais rien n'y change aujourd'hui. La cadence
était l'une des raisons du déclenchement manuel de
winget.ymletflatpak.yml; à une version par semaine, elle ne tient plus. Les autres raisons, elles, demeurent :flatpak.ymlreste le mécanisme qui produit et vérifie chaque publication, y compris les montées de version détectées viax-checker-data- notre workflow restera utile pour attester que le paquet démarre. Il n'y a donc rien à rebrancher, ni maintenant ni probablement plus tard. - La recette (#1363) devient jouable : un train par semaine, c'est une version à valider par semaine.
- Les numéros de version ralentissent.
2.181.0aujourd'hui ; le rythme passera de ~20 mineures par semaine à une ou deux. Aucun outil n'en dépend - la montée de version de l'EPIC #2104 compare des numéros, elle ne suppose rien de leur fréquence. - Un mercredi sans rien à publier ne publie rien :
semantic-releasene crée pas de version sans commit qui la justifie, et le job des installeurs est déjà conditionné au tag (if: tag != ''). - Le délai entre fusion et disponibilité passe de quelques minutes à sept jours au pire. C'est
le prix assumé, et c'est exactement ce que
workflow_dispatchrachète quand il le faut.
Alternatives écartées¶
- Deux canaux (
mainen continu,stablevalidée) : le plus riche, mais il demande de tenir deux branches et deux fils de version pour un produit qui a un mainteneur. - Déclenchement manuel seul : le contrôle est total, mais rien ne sort si personne n'y pense - et la dérive silencieuse est justement ce qu'on corrige.
- Statu quo : il pesait déjà sur des décisions en aval, et surtout il rendait la recette (#1363) injouable - une version qu'aucun humain ne peut valider n'est pas une version, c'est un instantané.