[spip-check ↪ telechargement-plugins-robuste] fix : court-circuite le dépôt d'archives injoignable (…)

technova69/spip-check

Par Gilles, le 30 août 2026 à 18h38min :

fix: court-circuite le dépôt d’archives injoignable après deux échecs de connexion

git.spip.net:443 peut être totalement injoignable (SYN sans réponse) alors
que files/plugins.spip.net répondent — c’est le cas qui a produit le 504 en
production. Chaque plugin coûtait alors 2 × 15 s de délai de contexte avant de
basculer en manuel : ~15 min de barre de progression pour 30 plugins.

spipCheckHttpDownload() renseigne $failure = ‹ unreachable › quand fopen()
échoue, propagé jusqu’à PluginReferencePreparer via le contrat $fetch. Après
2 échecs de connexion consécutifs (CONNECT_FAILURE_LIMIT), git.spip.net est
marqué injoignable pour le reste du run (plugin_preparation.depot_unreachable,
reporté d’une requête à l’autre) : les plugins restants passent en statut
missing sans nouvelle tentative réseau, et la page « références de plugins »
affiche une bannière dédiée. Un 404 (archive absente) ne compte pas comme
échec de connexion.

Tests : PluginReferencePreparerTest (arrêt après 2 échecs, un 404 ne
déclenche rien), BuildTest, catalogues fr/en. 277 tests unitaires.

Modifié
CHANGELOG.md
docs/superpowers/specs/2026-08-30-telechargements-bornes-design.md
lang/spip_check_en.php
lang/spip_check_fr.php
spip-check.php
src/SpipCheck.php
templates/spip-check.php.tpl
tests/unit/BuildTest.php
tests/unit/PluginReferencePreparerTest.php

Détails : https://git.spip.net/technova69/spip-check/-/commit/97bc4c41a41e188e3a2b04d3d89cdd5e81031425