[spip-check] 9 commits

technova69/spip-check | 9 commits

Par Gilles Vincent, le 30 août 2026 à 12h19min :

Merge branch ‹ fix/telecharger-archive-spip › into ‹ main ›

Feat : téléversement manuel de l’archive de référence SPIP

See merge request technova69/spip-check!19

Ajouté
docs/superpowers/plans/2026-08-30-televersement-archive-reference.md
docs/superpowers/specs/2026-08-30-televersement-archive-reference-design.md
tests/unit/ReferenceArchiveUploadHandlerTest.php
tests/unit/UploadProgressTest.php
Modifié
CHANGELOG.md
README.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/PluginArchiveCacheTest.php

Détails : Merge branch 'fix/telecharger-archive-spip' into 'main' (f4f9c1e9) · Validations · Gilles Vincent / spip-check · GitLab

==============================
Par Gilles, le 30 août 2026 à 12h10min :

Archive de référence SPIP : champ fichier et bouton dans la même boîte

Le champ de téléversement de l’archive SPIP passe dans le panneau .actions,
aux côtés du bouton « Valider et poursuivre » ; la barre de progression
reste juste en dessous.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_011dfQWayUnJRD3LXdMHFfbZ

Modifié
spip-check.php
templates/spip-check.php.tpl

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

==============================
Par Gilles, le 30 août 2026 à 12h03min :

Téléversement des références de plugins : un plugin à la fois, et corrige l’échec systématique

Le téléversement manuel d’une archive de référence de plugin échouait
toujours avec « Cette archive ZIP est invalide » : PluginArchiveCache::import()
validait l’archive via PharData sur le fichier temporaire du téléversement
PHP, or PharData refuse un fichier sans extension reconnue (/tmp/phpXXXX).
L’archive est désormais mise en cache sous un nom *.zip, validée là, puis
promue à son emplacement définitif seulement ensuite — jamais avant, pour ne
pas écraser une archive déjà validée. Repli copy()+unlink() ajouté pour le
cas où le tmp de PHP et tmp/ sont sur des systèmes de fichiers différents
(appliqué aussi à ReferenceArchiveUploadHandler).

La page des références manquantes passe d’un formulaire global multi-fichiers
à un formulaire indépendant par plugin (un champ, un bouton « Téléverser » et
une barre de progression par ligne). Le bouton « Valider et poursuivre »,
distinct, ne fait plus que passer à l’étape suivante : l’échec d’une archive
n’empêche plus d’avancer avec les autres. Nouvelle action
upload-plugin-reference (un plugin= + un fichier) ; continue-plugin-references
ne gère plus que la transition de phase et les findings des plugins non fournis.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_011dfQWayUnJRD3LXdMHFfbZ

Modifié
CHANGELOG.md
README.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/PluginArchiveCacheTest.php
tests/unit/UploadProgressTest.php

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

==============================
Par Gilles, le 30 août 2026 à 11h46min :

Barre de progression XHR sur les formulaires de téléversement d’archives

L’envoi de l’archive de référence SPIP et des archives de plugins passe
désormais par XMLHttpRequest : une barre suit l’avancement de l’upload,
puis affiche « traitement en cours » pendant la vérification côté
serveur, au lieu d’une page qui paraissait figée pendant tout l’envoi.

Le POST reçoit « &json=1 » et le serveur répond alors en JSON
({status:« ok »,next:…} ou {status:« error »,message:…}) au lieu d’une
redirection 303. Sans JavaScript, le formulaire est soumis normalement
et le comportement reste inchangé.

Un corps de requête tronqué avant d’atteindre PHP (post_max_size, ou
client_max_body_size côté nginx) est maintenant signalé explicitement
via spipCheckPostWasTruncated() au lieu de recharger le formulaire sans
message — cause probable des pages d’upload « sans réponse ».

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_011dfQWayUnJRD3LXdMHFfbZ

Ajouté
tests/unit/UploadProgressTest.php
Modifié
CHANGELOG.md
README.md
lang/spip_check_en.php
lang/spip_check_fr.php
spip-check.php
templates/spip-check.php.tpl

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

==============================
Par Gilles, le 30 août 2026 à 10h20min :

Documente le téléversement manuel de l’archive de référence SPIP

README : décrit le nouveau formulaire de secours quand
files.spip.net est inaccessible. CHANGELOG : entrée Non publié /
Ajouté.

Modifié
CHANGELOG.md
README.md

Détails : Documente le téléversement manuel de l'archive de référence SPIP (570b121d) · Validations · Gilles Vincent / spip-check · GitLab

==============================
Par Gilles, le 30 août 2026 à 10h20min :

Téléversement manuel quand l’archive de référence SPIP ne peut pas être téléchargée

spipCheckDownloadArchive() ne lève plus pour un échec réseau ou une
somme SHA-1 invalide sur le fichier téléchargé (la version non prise
en charge reste fatale, faute de somme à vérifier). Un nouveau step
reference-manquante affiche un formulaire de téléversement d’un seul
fichier, sur le modèle de references-plugins, et reprend le contrôle
normalement une fois l’archive validée.

Modifié
lang/spip_check_en.php
lang/spip_check_fr.php
spip-check.php
templates/spip-check.php.tpl
tests/unit/BuildTest.php

Détails : https://git.spip.net/technova69/spip-check/-/commit/7da71e70998b58662dd9c56e3a7f741359fce668

==============================
Par Gilles, le 30 août 2026 à 10h18min :

Ajout de ReferenceArchiveUploadHandler pour le téléversement manuel de l’archive SPIP

Valide un fichier téléversé unique (erreur PHP, lien symbolique,
provenance HTTP réelle, somme SHA-1) et le publie à l’emplacement
attendu du cache, sur le modèle de PluginUploadHandler.

Ajouté
tests/unit/ReferenceArchiveUploadHandlerTest.php
Modifié
src/SpipCheck.php

Détails : Ajout de ReferenceArchiveUploadHandler pour le téléversement manuel de l'archive SPIP (1a85ba4c) · Validations · Gilles Vincent / spip-check · GitLab

==============================
Par Gilles, le 30 août 2026 à 10h13min :

Plan : téléversement manuel de l’archive de référence SPIP

Découpe l’implémentation en trois tâches TDD : ReferenceArchiveUploadHandler
et ses tests unitaires, le câblage du nouveau step reference-manquante dans
le template avec ses tests bout-en-bout, puis la documentation.

Ajouté
docs/superpowers/plans/2026-08-30-televersement-archive-reference.md

Détails : Plan : téléversement manuel de l'archive de référence SPIP (0911a2bd) · Validations · Gilles Vincent / spip-check · GitLab

==============================
Par Gilles, le 30 août 2026 à 10h08min :

Spec : téléversement manuel de l’archive de référence SPIP

Design pour appliquer à l’archive de référence SPIP le même filet de
sécurité que les archives de plugins : si le téléchargement automatique
échoue ou renvoie une somme SHA-1 invalide, un formulaire de
téléversement manuel remplace la page d’erreur fatale actuelle.

Ajouté
docs/superpowers/specs/2026-08-30-televersement-archive-reference-design.md

Détails : Spec : téléversement manuel de l'archive de référence SPIP (dea340f3) · Validations · Gilles Vincent / spip-check · GitLab