État partagé : le relevé de l'atelier passe dans la base SQLite (STUD-1110, t_56665067) #1683
Loading…
Reference in a new issue
No description provided.
Delete branch "hermes/migration-atelier-sqlite"
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?
Carte : t_56665067 (kanban atelier) — migrer
/opt/studio/atelier.jsonvers SQLite, via bascule et retour arrière (STUD-1110).Ce que la branche porte
atelierdansetat_partage.sql(une ligne par clé de premier niveau du relevé :cle,valeurencodée en JSON,maj) et le nomatelieraccepté dansbascules.etat_partage.py:atelier_lire(),atelier_detail(),atelier_remplacer(etat)(tout le relevé en une transaction ; une clé inchangée n'est pas réécrite)._infra/etat-service.py:GET /atelier,GET /atelier/detail,POST /atelier/remplacer.etat_client.py:atelier(),atelier_detail(),atelier_remplacer(), etbasculer atelier [--essai] [--attendre <s>]/revenir atelier, avec la recette des sorties : comparaison JSON / base avant bascule, refus tant qu'un montage tourne, ancien gardé en.bak-sqlite-<date>, retour arrière en une commande. Chemin du fichier forçable par$ETAT_ATELIER._tableau/socle.py:atelier_ecrire(etat, chemin)— une fois la bascule faite, la base fait foi à l'écriture, etatelier.jsonreste la COPIE quepousser-atelier.shrecopie sur le 132._tableau/atelier.py: écrit le relevé parsocle.atelier_ecrireet dit où il fait foi.Ce qui n'est PAS changé : la lecture de la page du 132 (elle lit encore
/opt/studio/atelier.json) ; aucune route/api/...n'est touchée, donc rien à signaler au front. Les tablessortiesetfile_montagenon plus.Bancs :
_tableau/test_atelier_bascule.py(nouveau : essai, refus pendant un montage,.bak-sqlite, la base, la copie, les trois cas d'écriture, retour arrière puis re-bascule) ;_infra/test_etat_service.py(les trois routes) ;controle/test_etat_partage.py(les sorties, inchangées) ;_tableau/lancer-tests.py --tout: 163 bancs verts, 0 rouge, 0 lent. Preuves (commandes et sorties) en commentaire de la carte.2a5064e8b4219236fb0efusion-auto: pas de fusion, la CI est rouge (Front Svelte). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.fusion-auto: pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.219236fb0eac4a4086b1Rebasage et mise a niveau (carte t_cae61d7e).
La branche etait a 221 commits de main. Conflits resolus en gardant les DEUX
cotes quand main a ajoute du code au meme endroit (
etat_partage.sql,etat_partage.py,etat_client.py,_tableau/socle.py,_infra/etat-service.py,OUTILS.md,LXC-132.md) : la version de la branche seule perdait les tablessujets*de main, celle de main seule perdait la tableatelier. Deuxreferences perimees corrigees dans la doc ajoutee : le service d'etat ne tourne
plus sur l'hote du LXC 130 (il est sur le 132 depuis #1740), et le banc est
_tableau/test_atelier_bascule.py.La couverture baissait par cette branche : mesure 99,128 % (14211/14336) contre
99,139 % (14166/14289) sur main. Deux lignes n'etaient exercees par aucun banc :
socle.atelier_basculesans client d'etat (etat_client.pyabsent), et la note« fichier-muet » qu'
atelier.pyecrit sur la sortie d'erreur. Les deux cas sontmaintenant dans les bancs (sans client, l'ancien fichier fait foi ; service muet,
c'est dit).
Mesure locale, lanceur complet :
python3 _tableau/lancer-tests.py --tout->202 bancs verts, aucun refus de cliquet de couverture. La CI le confirme ou le
dement.
Fusionnée automatiquement par
fusion-auto(forge) : CI verte, sans conflit.