Verrous finaux avant 1.0
Cette page sert de point de contrôle pour la promotion vers 1.0.0-rc.1, puis vers 1.0.0. Elle ne remplace pas les scripts : elle indique quoi exécuter, où conserver les preuves et quelles décisions restent manuelles. 0.1.33 reste la base stable publiée en latest; la candidate 1.0.0-rc.1 reste destinée au tag next.
La source de développement 0.1.35 ajoute le designer visuel de composants personnalisés, les styles Quasar/UnoCSS sûrs et les panneaux QSplitter redimensionnables. Elle change le contrat public. Les runs verts de 0.1.33 restent des preuves historiques et ne comptent pas pour la promotion de cette nouvelle source.
Matrice GitHub Actions à stabiliser
Le workflow dédié est .github/workflows/rc-stability.yml. Lancez-le depuis GitHub Actions sur le dépôt réel, pour le même commit que celui qui servira à publier la release candidate.
La matrice exécute trois passes avec bun install --frozen-lockfile :
bun install --frozen-lockfile
bun run release:doctor
bun run e2e:ci:functional
bun run release:browser:check
bun run package:ci:artifact
bun run npm:publish:dry-run -- --skip-gatesLes trois passages verts sont enregistrés dans release/rc-ci-stability.json : 29015937386, 29034915381 et 29036138919. Le run échoué 29014924407 reste exclu du compteur. Ne mélangez pas des runs issus de commits différents.
Revue d’accessibilité à compléter
La revue automatisée reste nécessaire, mais elle ne suffit pas pour la promotion 1.0. Complétez release/manual-accessibility-review.json avec ces contrôles :
| Contrôle | Attendu |
|---|---|
keyboard-only | Navigation complète sans souris, focus visible, actions de dialogue réversibles. |
zoom-200 | Interface utilisable à 200 %, sans perte d’information critique. |
reflow-320-css-px | Lecture et actions principales possibles à 320 CSS px. |
nvda-chromium | Parcours NVDA sous Chromium, annonces cohérentes des panneaux, dialogues et champs. |
custom-theme-contrast | Contraste vérifié après personnalisation du thème. |
artifact-review | Tarball, manifestes et exports publics revus avant publication. |
Les dérogations éventuelles vont dans release/accessibility-derogations.json. Une dérogation doit rester bornée, justifiée, assortie d’une mitigation et d’une cible de correction.
Bundle et composants à surveiller
Le rapport CI de bundle est .artifacts/bundle-budget.json. Après bun run bundle:budget:inspect, exécutez :
bun run bundle:watchlist:checkLes zones à surveiller avant 1.0 sont Theme Builder, IconPicker, l’éditeur CRUD de composants personnalisés et les contrôleurs QSplitter. Le rapport Windows de 0.1.35 a d’abord mesuré un chunk à 803 500 octets, puis le rejeu du bloc Image a relevé kNS-GnIV.js à 802 220 octets pour une limite inchangée de 800 000 octets. Le designer graphique reste chargé par import dynamique explicite et l’encodeur Canvas est désormais séparé de la validation data URL utilisée au runtime. Régénérez le rapport et ne marquez la revue bundle comme réussie qu’après un passage vert de bundle:budget:inspect et bundle:watchlist:check.
Application métier distincte
Avant 1.0.0, intégrez 1.0.0-rc.1 dans une application Nuxt 4 distincte du dépôt QForm Builder. Renseignez release/rc-real-app-integration.json avec :
- source du package installé, npm ou tarball vérifié ;
- page qui rend
FormBuilderetFormViewer; - import/export d’un document versionné ;
- relecture d’un document persistant par le registre public de migrations ;
- absence d’import direct depuis
app/.
Après publication de la release candidate, seules les corrections compatibles doivent entrer avant 1.0.0.
Migration des schémas et thèmes
Le contrat de migration n’est plus un bloqueur fonctionnel : il existe déjà. Toute évolution future d’un document, d’un schéma ou d’un thème persistant doit passer par le registre public de migrations. La règle détaillée est dans la référence Politique de migration des schémas.
Étape active
Après validation de la Matrice RC Stability, la phase active est la revue accessibilité humaine, puis le contrôle bundle et l’intégration dans une application Nuxt 4 métier distincte. La candidate 1.0.0-rc.1 reste destinée au tag next.