From e16c0bd3e0b4b620b66a0dcb2d3bc60f84cd300b Mon Sep 17 00:00:00 2001 From: Yvv Date: Sat, 31 Oct 2026 10:48:17 +0100 Subject: [PATCH] =?UTF-8?q?Acte=20M4=20fig=C3=A9=20sur=204d4adcc=20(relect?= =?UTF-8?q?ures=20ok,=20retour=20arri=C3=A8re=20d=C3=A9crit)=20;=20tableau?= =?UTF-8?q?=20:=20liste=20d'attente=20de=20la=20relecture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../2026-10-31-m4-vote-modules-objections.md | 33 ++++++++++++++----- docs/chantiers/acte-certification/tableau.md | 18 ++++++---- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/actes/2026-10-31-m4-vote-modules-objections.md b/actes/2026-10-31-m4-vote-modules-objections.md index d720ded..a8a0227 100644 --- a/actes/2026-10-31-m4-vote-modules-objections.md +++ b/actes/2026-10-31-m4-vote-modules-objections.md @@ -1,7 +1,8 @@ # Acte — Mise en ligne M4 (le vote, l'inertie à cinq crans, les modules d'ordre et de titre, les objections, les coquilles validées) Classe : déploie Projet : libreDecision Date : 2026-10-31 -**État : PRÉPARÉ** sur `4d4adcc` — la relecture de `033b331+4d4adcc` est en cours ; on fige à son « ok » +**État : FIGÉ (2026-10-31, 10 h 47)** sur `4d4adcc` — relectures inscrites « ok » : `a576b68`, `71819f9`, +`74f96be`, `9c8f4cc`, `cd7e683`, `924a40d`, `033b331`, `4d4adcc` ## Intention @@ -36,8 +37,8 @@ Version : `4d4adcc`, qui contient la version en production `8727315`. Lots et re | B (vote) | `74f96be` | « ok » | | B2 (corrections du vote) | `7ffa4fd` | « à reprendre », repris en `9c8f4cc` | | F (objections, coquilles, messages) | `cd7e683` | « ok », avec `9c8f4cc` et `924a40d` | -| D (modules) et sa fusion | `033b331` | **en cours**, avec `4d4adcc` | -| Corrections M1–M4 de la relecture de F | `4d4adcc` | **en cours**, avec `033b331` | +| D (modules) et sa fusion | `033b331` | « ok », avec `4d4adcc` | +| Corrections M1–M4 de la relecture de F | `4d4adcc` | « ok », avec `033b331` | Ce qui change hors du code (vérifié le 31/10 à 10 h 10) : - `docker/app-compose.yml` reçoit **trois lignes de commentaire** (où poser `LD_VOTE_ACCOUNT`), et @@ -104,10 +105,13 @@ Un second démarrage ne rejoue rien : mêmes comptes, journaux 4 / 2, file à 6. avertissement, 55 vitest, e2e 35 / 35). L'image de production se construit : `docker build -f docker/app.Dockerfile --target production .`, sortie 0 le 31/10 à 10 h 09 (tests rejoués dans l'image : Rust verts, 55 vitest). -6. Sur une copie fraîche de la base de production : +6. Sur une copie fraîche de la base de production, **juste avant la poussée** : - `SELECT group_concat(version) FROM _sqlx_migrations` → `1,2,3,4` (ou plus si M2 / M3a est en ligne) ; - `SELECT COUNT(*) FROM votes` → `0` ; - - `SELECT COUNT(*) FROM signals` → `0`. + - `SELECT COUNT(*) FROM signals` → `0`. Cette prémisse compte : deux signalements debout d'une même + personne sur une même paire feraient échouer la migration 0008 (index `signals_one_standing`, + relecture de `033b331+4d4adcc`). Le serveur ne démarrerait pas, et Woodpecker relancerait + `8727315` sans aucun module, sans dégât. ## Commandes exactes @@ -156,9 +160,22 @@ Irréversibilité : **partielle**. Le code se remet en arrière. Ce qui reste : - **Le code**, au plus court, sur sonic : `docker tag libredecision-app:previous libredecision-app:latest`, puis `cd /opt/libredecision-app && docker compose up -d --force-recreate`. -- **Une image plus ancienne sur la base migrée** : `open_db` tolère les migrations inconnues. Que - `8727315` lise correctement les unités `kind <> 'article'`, c'est à vérifier par la relecture en - cours ; le résultat sera écrit ici avant de figer. +- **Revenir à `8727315` une fois les modules créés abîme l'affichage et la publication** (relecture + de `033b331+4d4adcc`, prouvé sur une base faite par `8727315`). `open_db` tolère les migrations + inconnues, mais l'image ancienne lit toute la table `units` : + - le titre et les ordres apparaissent comme 9 faux articles par document (un titre au corps vide, + des listes d'identifiants), comptés « en vigueur » et « à voter » ; + - à son démarrage, elle republie Monnaie libre avec eux (`publish::resync`) ; + - elle lit les crans « 3 » et « 4 » comme `standard`, ce qui est sans effet tant qu'il n'y a aucun vote. + + Ce retour peut aussi venir seul : l'étape `retablir` de `.woodpecker/app.yml` relance + `libredecision-app:previous` si la nouvelle version ne répond pas dans les 10 minutes. + + **Conduite retenue par défaut** (Yvv peut la corriger) : + - on ne revient pas à la main vers `8727315` : on corrige en avant, par un nouveau déploiement ; + - si `retablir` joue, on laisse `8727315` servir le temps de corriger. La publication fausse ne + perd rien : elle part dans le dépôt des textes provisoire, et le déploiement suivant republie le bon + texte par-dessus. Le contexte : 1 identité et 0 vote en production. - **Les crans, les modules, les tables nouvelles** : pas de retour automatique. Ils sont additifs, ou gardent l'ancien mot à côté. - **Les commits publiés** dans le dépôt des textes : on ne les retire pas sans réécrire l'historique diff --git a/docs/chantiers/acte-certification/tableau.md b/docs/chantiers/acte-certification/tableau.md index 26ea6c1..4874c4e 100644 --- a/docs/chantiers/acte-certification/tableau.md +++ b/docs/chantiers/acte-certification/tableau.md @@ -9,9 +9,9 @@ Orch seul sur le dépôt (sous-agents en copies de travail). **M1 (L1–L8) en l 2026-10-30 à 15 h 45 (`8727315`, acte `actes/2026-10-30-m1-mise-en-ligne.md`) ; Raison d'être publiée (commit `35864eb` du dépôt des textes). Sur `chantier/acte-certification` : tous les lots fusionnés (B2, F, D), puis `4d4adcc` (mineurs de la relecture de F) ; boucle verte, e2e 35 / 35. -Relecture de `033b331+4d4adcc` en cours. Répétition sur une copie de la base de production faite -(10 h 02–10 h 06). Dossier M4 préparé (`actes/2026-10-31-m4-vote-modules-objections.md`), il -remplace M2 et M3a ; on le fige à l'« ok » de la relecture et quand l'image de production se construit. +Toutes les relectures « ok ». Répétition sur une copie de la base de production faite (10 h 02–10 h 06), +image de production construite (10 h 09). **Dossier M4 figé** (`actes/2026-10-31-m4-vote-modules-objections.md`), +il remplace M2 et M3a ; attend « déploie ». ## Critère de livraison (liste fermée) @@ -43,8 +43,8 @@ chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichag | B | L9 : vote déplié, vote groupé, vote par transaction de 0,1 Ğ1 | xhigh | fusionné et relu (`74f96be`) ; acte M2 figé (vote par la chaîne éteint) | `lot/b-vote` | | B2 | Corrections du vote avant de l'ouvrir (relecture de `74f96be`, points 2 à 8) | xhigh | fusionné (`7ffa4fd`) ; relu « à reprendre », repris en `9c8f4cc`, relu « ok » | `lot/b2-vote-sur` | | C | L10 : cinq crans, échelle, réglages | xhigh | fusionné et relu (`a576b68`, `71819f9`) ; acte M3a figé | `lot/c-inertie` | -| D | L11 + titre du doc en module (4) + restes mineurs des relectures | high | fusionné (`033b331`), boucle verte ; en relecture | `lot/d-modules` | -| F | L12–L13 : objections, coquilles validées, messages, délai de 3 jours | xhigh | fusionné (`cd7e683`), relu « ok » ; mineurs repris en `4d4adcc` (en relecture) | `lot/f-objections` | +| D | L11 + titre du doc en module (4) + restes mineurs des relectures | high | fusionné (`033b331`), relu « ok » | `lot/d-modules` | +| F | L12–L13 : objections, coquilles validées, messages, délai de 3 jours | xhigh | fusionné (`cd7e683`), relu « ok » ; mineurs repris en `4d4adcc`, relu « ok » | `lot/f-objections` | ## Questions (réponse par défaut appliquée tant qu'Yvv n'a pas tranché) @@ -75,10 +75,16 @@ Défauts posés par orch, sans question (Yvv peut les corriger) : - M1 : **exécuté** le 30/10/2026, 15 h 29 – 15 h 52 (`actes/2026-10-30-m1-mise-en-ligne.md`). - M3a (L10) : **figé** sur `71819f9` (`actes/2026-10-30-m3-inertie-cinq-crans.md`), attend « déploie ». - M2 + M3a (L9 et L10) : **figé** sur `74f96be` (`actes/2026-10-31-m2-vote.md`), le vote par la chaîne éteint ; remplace M3a s'il est armé. -- M4 (L9 à L13) : **préparé** sur `4d4adcc` (`actes/2026-10-31-m4-vote-modules-objections.md`), le vote par la chaîne éteint ; remplace M2 et M3a. +- M4 (L9 à L13) : **figé** sur `4d4adcc` (`actes/2026-10-31-m4-vote-modules-objections.md`), le vote par la chaîne éteint ; remplace M2 et M3a ; attend « déploie ». Restes mineurs de `71819f9` et du lot B : faits dans le lot D. +Liste d'attente (relecture de `033b331+4d4adcc`, après M4) : +- 0008 : lever les doublons debout avant de créer `signals_one_standing` (sans objet en production : 0 signalement) ; +- un ordre ne départage pas deux articles à la même position (deux créations simultanées) ; +- `place_at_end` coupe toujours le même intervalle : au 52e ajout dans une section, les positions se confondent ; +- `publish.rs` : articles sur `tally`, modules sur `shown_tally` (identiques aujourd'hui). + À dire à Yvv : dans le groupe d'essai (C = 1), dès 16 membres une voix seule fait passer un texte, la garde B^W passant sous la précision du calcul (ADR 0007). Monnaie libre (C = 50) n'est pas concernée. Pour deux voix dans l'essai quel que soit W : C = 2.