technova69/spip_auto_update | 20 commits
Par gilles, le 27 août 2026 à 21h22min :
feat: la sonde collecte les plugins SVP déjà à jour de chaque site
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Modifié
payload/sonde.php
tests/integration/SondeTest.php
==============================
Par gilles, le 27 août 2026 à 21h21min :
feat: --site détaille les plugins déjà à jour dans planifier/appliquer
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Modifié
src/Application.php
==============================
Par gilles, le 27 août 2026 à 21h21min :
feat: Texte::rendre masque les plugins déjà à jour hors mode détaillé
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Modifié
src/Rapport/Texte.php
tests/unit/Rapport/TexteTest.php
==============================
Par gilles, le 27 août 2026 à 21h20min :
feat: Planificateur émet une ligne « déjà à jour » par plugin SVP à jour
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Modifié
src/Planificateur.php
tests/unit/PlanificateurTest.php
tests/unit/Rapport/JsonTest.php
==============================
Par gilles, le 27 août 2026 à 21h18min :
feat: EtatSite porte la liste plugins_a_jour de la sonde
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Modifié
src/EtatSite.php
tests/unit/EtatSiteTest.php
==============================
Par gilles, le 27 août 2026 à 21h18min :
feat: note canonique Changement::NOTE_A_JOUR et estPluginAJour()
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Ajouté
tests/unit/ChangementTest.php
Modifié
src/Changement.php
src/Planificateur.php
==============================
Par gilles, le 27 août 2026 à 21h18min :
docs: plan d’implémentation — plugins déjà à jour dans le rapport --site
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Ajouté
docs/superpowers/plans/2026-08-27-plugins-deja-a-jour.md
==============================
Par gilles, le 27 août 2026 à 21h18min :
docs: spec — plugins déjà à jour dans le rapport --site
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016jBa9JMzUm7viPWGfYTFqN
Ajouté
docs/superpowers/specs/2026-08-27-plugins-deja-a-jour-design.md
==============================
Par Gilles Vincent, le 24 août 2026 à 09h45min :
Merge branch ‹ fix/revert-mr2-actualise-inventaire › into ‹ main ›
Revert « Merge branch ‹ garde-fou › into ‹ main › »
See merge request technova69/spip_auto_update!3
Ajouté
tests/unit/SondeInventaireLocalTest.php
Supprimé
docs/superpowers/plans/2026-08-23-garde-fou-constante-svp.md
docs/superpowers/specs/2026-08-23-garde-fou-constante-svp-design.md
tests/unit/SondeConstanteTest.php
Modifié
README.md
docs/superpowers/plans/2026-08-22-spip-auto-update.md
docs/superpowers/specs/2026-08-22-spip-auto-update-design.md
docs/superpowers/specs/2026-08-23-execution-diagnostics-design.md
payload/appliquer.php
payload/sonde.php
src/ControleurVersionsPluginsAuto.php
src/ValidateurPlugins.php
tests/integration/ApplicateurPluginsTest.php
tests/integration/SondeTest.php
tests/unit/ConfigTest.php
tests/unit/EtatSiteTest.php
tests/unit/ExecutionTest.php
tests/unit/InventaireTest.php
tests/unit/PlanificateurTest.php
tests/unit/Rapport/CourrielTest.php
tests/unit/Rapport/JsonTest.php
tests/unit/Rapport/TexteTest.php
tests/unit/ValidateurPluginsTest.php
Détails : https://git.spip.net/technova69/spip_auto_update/-/commit/32a0c6b14f39926f6536c19200ff8ba7b52e3e2b
==============================
Par gilles, le 24 août 2026 à 09h43min :
docs: neutralise les références locales
Modifié
docs/superpowers/plans/2026-08-22-spip-auto-update.md
docs/superpowers/specs/2026-08-22-spip-auto-update-design.md
tests/integration/ApplicateurPluginsTest.php
tests/integration/SondeTest.php
tests/unit/ConfigTest.php
tests/unit/EtatSiteTest.php
tests/unit/InventaireTest.php
tests/unit/PlanificateurTest.php
tests/unit/Rapport/CourrielTest.php
tests/unit/Rapport/JsonTest.php
tests/unit/Rapport/TexteTest.php
Détails : https://git.spip.net/technova69/spip_auto_update/-/commit/19a63c0980be82aca44dd7a2dad8dfd9c7f6bd98
==============================
Par Gilles Vincent, le 24 août 2026 à 09h20min :
suppression de références à l’installation locale
Modifié
docs/superpowers/plans/2026-08-22-spip-auto-update.md
Détails : https://git.spip.net/technova69/spip_auto_update/-/commit/c5173007adad300465c7da18d422ef982dffeb96
==============================
Par gilles, le 24 août 2026 à 09h11min :
fix: actualise l’inventaire local SVP avant les mises à jour
Ajouté
tests/unit/SondeInventaireLocalTest.php
Modifié
payload/sonde.php
==============================
Par gilles, le 24 août 2026 à 09h11min :
Revert « Merge branch ‹ garde-fou › into ‹ main › »
This reverts commit 7fe58c5bd5a7f62d0803f2749e833c674812918a, reversing
changes made to 78e066464a2ddb0d9e413b74934d73ae3ed61a9d.
Supprimé
docs/superpowers/plans/2026-08-23-garde-fou-constante-svp.md
docs/superpowers/specs/2026-08-23-garde-fou-constante-svp-design.md
tests/unit/SondeConstanteTest.php
Modifié
README.md
docs/superpowers/plans/2026-08-22-spip-auto-update.md
docs/superpowers/specs/2026-08-23-execution-diagnostics-design.md
payload/appliquer.php
payload/sonde.php
src/ControleurVersionsPluginsAuto.php
src/ValidateurPlugins.php
tests/integration/SondeTest.php
tests/unit/ExecutionTest.php
tests/unit/ValidateurPluginsTest.php
Détails : https://git.spip.net/technova69/spip_auto_update/-/commit/964e1f06a06d7a318fdac72a021214e6cbc2c8dc
==============================
Par Gilles Vincent, le 23 août 2026 à 20h16min :
Merge branch ‹ garde-fou › into ‹ main ›
feat: refuse en prévalidation un paquet dont la constante n’existe pas sur le site
See merge request technova69/spip_auto_update!2
Ajouté
docs/superpowers/plans/2026-08-23-garde-fou-constante-svp.md
docs/superpowers/specs/2026-08-23-garde-fou-constante-svp-design.md
tests/unit/SondeConstanteTest.php
Modifié
README.md
docs/superpowers/plans/2026-08-22-spip-auto-update.md
docs/superpowers/specs/2026-08-23-execution-diagnostics-design.md
payload/appliquer.php
payload/sonde.php
src/ControleurVersionsPluginsAuto.php
src/ValidateurPlugins.php
tests/integration/SondeTest.php
tests/unit/ExecutionTest.php
tests/unit/ValidateurPluginsTest.php
Détails : https://git.spip.net/technova69/spip_auto_update/-/commit/7fe58c5bd5a7f62d0803f2749e833c674812918a
==============================
Par gilles, le 23 août 2026 à 20h06min :
fix: donne au garde-fou une couverture et un message justes
Trois suites à la revue de la MR !2.
Le calcul de constante_definie était inline dans le littéral de plugins_maj,
donc hors de portée du patron de test qui fait tourner une charge utile dans un
faux SPIP. Seule la suite d’intégration l’assertait, et elle se saute sans
SAU_SPIP_TEST : la seule partie de la chaîne que le validateur ne peut pas
vérifier lui-même n’était couverte par aucun test qui tourne. Le calcul devient
une closure nommée, et SondeConstanteTest fait tourner payload/sonde.php dans
un faux SPIP sur les quatre cas : constante définie, non définie, vide, et
paquet local introuvable.
Le refus passait avant classifier(), donc avant emplacementNonPrisEnCharge().
Un paquet annonçant une constante non définie ET hors des deux emplacements
pris en charge sortait sous « plugin_constante_absente », avec pour action
d’actualiser l’inventaire local — ce qui ne corrigerait rien, puisque c’est
l’emplacement qui fait obstacle. Le refus se limite désormais à _DIR_PLUGINS et
_DIR_PLUGINS_SUPPL, hissés en constante de classe et partagés avec
classifier(). Le paquet reste refusé sans écriture dans les deux cas : seule la
cause et l’action changent.
La liste des codes de cause de la spécification des diagnostics ne mentionnait
pas plugin_constante_absente, alors que son ajout y était demandé. Elle
omettait aussi trois codes plus anciens du validateur : les quatre sont
ajoutés.
Deux tests de plus au validateur : l’entrée dépourvue de la clé n’est pas
refusée, et la constante inconnue hors emplacement pris en charge rend bien
l’autre cause. Apostrophes des commentaires remises en ASCII, comme le reste de
src/ et payload/.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Ajouté
tests/unit/SondeConstanteTest.php
Modifié
README.md
docs/superpowers/specs/2026-08-23-execution-diagnostics-design.md
docs/superpowers/specs/2026-08-23-garde-fou-constante-svp-design.md
payload/sonde.php
src/ValidateurPlugins.php
tests/unit/ValidateurPluginsTest.php
==============================
Par gilles, le 23 août 2026 à 19h41min :
feat: la sonde dit si la constante annoncée existe sur le site
Modifié
README.md
payload/sonde.php
tests/integration/SondeTest.php
==============================
Par gilles, le 23 août 2026 à 19h41min :
test: prouve qu’une constante inconnue bloque avant le dump
Modifié
tests/unit/ExecutionTest.php
==============================
Par gilles, le 23 août 2026 à 19h41min :
feat: refuse un paquet dont la constante n’existe pas sur le site
Modifié
src/ValidateurPlugins.php
tests/unit/ValidateurPluginsTest.php
==============================
Par gilles, le 23 août 2026 à 19h28min :
docs: retire un chemin de poste de travail d’un ancien plan
Le plan du 2026-08-22 donnait un « cd » vers l’arborescence locale de son
auteur. Aucun lecteur n’en a besoin, et un chemin absolu n’a rien à faire dans
un document versionné.
L’historique conserve l’ancienne valeur : la réécrire imposerait un push forcé,
disproportionné pour un chemin de poste de travail.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Modifié
docs/superpowers/plans/2026-08-22-spip-auto-update.md
Détails : https://git.spip.net/technova69/spip_auto_update/-/commit/e51dde3e261df30cdbb64293f20f1dbede977ed5
==============================
Par gilles, le 23 août 2026 à 19h28min :
docs: spécifie le garde-fou sur la constante des paquets SVP
Un paquet peut annoncer dans spip_paquets une constante d’emplacement que le
site ne définit pas : SVP la résout par constant() sans defined(), et meurt en
erreur fatale au milieu de do_up(), après avoir déplié la nouvelle version. Le
parc l’a montré sur ses trois sites.
L’information qui rend cet échec certain est disponible avant la première
écriture. La spécification décrit le refus en prévalidation qui l’exploite :
la sonde expose un booléen constante_definie, ValidateurPlugins refuse sous la
cause plugin_constante_absente, et l’exécution sort avant le dump.
Le plan découpe l’implémentation en trois tâches TDD : le refus dans le
validateur, la preuve qu’aucune écriture n’a lieu via la matrice des règles
d’arrêt d’ExecutionTest, puis la sonde et la documentation.
L’option d’actualiser l’inventaire local depuis la sonde est écartée par
écrit : svp_actualiser_paquets_locaux() supprime et recrée les lignes de
spip_paquets, et la sonde sert aussi à planifier, qui doit rester une
observation.
Les deux documents sont anonymisés, et la règle est inscrite dans la
spécification et dans les contraintes du plan : ni nom de domaine, ni chemin
d’hébergement, ni identifiant de compte dans ce dépôt.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Ajouté
docs/superpowers/plans/2026-08-23-garde-fou-constante-svp.md
docs/superpowers/specs/2026-08-23-garde-fou-constante-svp-design.md