[spip_loader.php] Développement de la version 5.2

Je propose en test une v5.2 de spip_loader et je vous invite à l’essayer sur des SPIP de test. Il se peut qu’il subiste quelques bugs que je ne peux vérifier, faute d’un vaste panel de plates-formes.

Il est disponible sur la la maquette SpipRemix ici : Installer SPIP

Pour celles et ceux qui seraient intéressé·e·s, la branche de dévelopement est là : spip-contrib-outils/spip_loader - spip_loader - SPIP on GIT. C’est une branche ou je teste une « nouvelle » manière de distribuer le script spip_loader.php et qui change légèrement son comportement :

Le fichier historique est un script unique qui télécharge ses fichiers de langues et la lib de décompression pclzip avant de s’occuper du téléchargement et de l’extraction du zip de la version qu’on souhaite mettre à jour.

Dans cette version de test, le script est « compilé » sous forme de phar et embarque les fichiers de langue ainsi que pclzip. Il se met en place de la même manière que les versions précédentes, mais n’a plus besoin de faire les téléchargements préliminaires.

Le script de compilation est fourni et va au délà de la « simple » compilation en phar, il génère le répertoire INSTALL.

Le fichier final n’est plus vraiment lisible dans un éditeur de texte et les séances de debug seront plus complexes, certes. De même, dans ce format, il ne peut plus vraiment être considéré comme éditable, sa configuration devra passer par les méthodes « externes » au script. A priori, ces méthodes existe déjà et devrait fonctionner. chaque modification doit passer par une compilation… Ce changement d’habitude est, je pense, contre-balancé par le fait que ce gros script pourra être subdivisé en plusieurs petite fichiers, qui pourront passer divers tests, via PHPUnit par exemple. (Je bosse déjà sur une versrion 6 qui va dans ce sens)

Brerf, cette version a besoin d’être testée, j’attends vos retours :slight_smile:

1 « J'aime »

Je viens d’essayer sur un site de test en 4.1-dev et pas constaté de souci (php 8.1.0)
Une erreur en arrivant sur écrire mais liée à SPIP je suppose « Erreur d’exécution …/prive/squelettes/contenu/accueil.html | File […]/ecrire/inc/filtres_ecrire.php Line 451 : Call to undefined function generer_url_api_low_sec() »
L’erreur disparaît en faisant entrée.
Avec cette version de spip_loader serait-il possible d’afficher le commit de la version, ou c’est toujours compliqué à faire ?
Merci,
Jacques

1 « J'aime »

Installé une SPIP 4.2.0-dev en local MacOS, Apache/2.4.52, PHP Version 8.1.1 MPM event

Et pas de problème. Loader charge aussi les plugins-dist et crée un dossier plugins avec un dossier auto, mais il ne sert pas le café. On ne peut pas tout avoir.
Je peux switcher vers php 8.0 (je m’ai fait un script pour switcher) et installer d’autres versions… Must I?

1 « J'aime »

It works (chez moi)

1 « J'aime »

Passage de 4.0.1 à 4.0.4 sur une version mutualisée (4 sites) sans soucis. php 7.3.31

1 « J'aime »

Merci pour vos retours ! :heart:

Résumé:

php spip mode statut
8.1 4.1-dev mise à jour ok
8.1 4.2-dev installattion ok
7.3 4.0 (mutu) mise à jour 4.0.4 ok
5.6 3.1.15 installation ok
5.6 3.1.15 mise à jour ok
5.6 3.2.13 mise à jour ok

Si j’ai le temps aujourd’hui, je vais essayé en local install et mise à jour PHP5.6/SPIP3.1-3.2 :crossed_fingers:

Test OK pour PHP5.6 et SPIP3.1/SPIP3.2

Quelques screenshot, pour le fun :

Ici, pas possible d’installer un version récente de spip sur une version pas compatible :

Changement de langue :

Redirection vers la page d’installation de SPIP :

Je vous passe l’installation avec sqlite d’un SPIP3.1…

Mise à jour en SPIP3.2.13 :

Redirection vers la suite de la mise à jour :

Quelques clics :


et un mode opératoire de comment je m’y suis pris :

# Récupération d'une image docker php+apache
docker run -d --name spip-in-php56 -p 8056:80 spip/mod_php:5.6
# On peut vérifie que c'est vide
docker exec -it spip-in-php56 bash
root@8457a0583cca:/var/www/html# ls -lastrh
4.0K drwxrwxrwx  6 www-data www-data 4.0K Feb  6 16:01 .
4.0K drwxrwxrwx  1 www-data www-data 4.0K Feb  6 16:01 ..
root@8457a0583cca:/var/www/html# exit
# on dépose le script spip_loader.php
docker cp INSTALL/spip_loader.php spip-in-php56:/var/www/html
# On lance l'opération
firefox http://localhost:8056/spip_loader.php

C’est peut-être normal, mais ils reste le dossier des fichiers obsolètes :

root@8457a0583cca:/var/www/html# ls -alstrh
4.0K drwxrwxrwx  6 www-data www-data 4.0K Feb  6 16:01 fichiers_obsoletes_20220206_170116

root@8457a0583cca:/var/www/html# ls -lastrh fichiers_obsoletes_20220206_170116/
total 24K
4.0K drwxrwxrwx  3 www-data www-data 4.0K Feb  6 16:01 squelettes-dist
4.0K drwxrwxrwx  6 www-data www-data 4.0K Feb  6 16:01 prive
4.0K drwxrwxrwx 10 www-data www-data 4.0K Feb  6 16:01 plugins-dist
4.0K drwxrwxrwx  6 www-data www-data 4.0K Feb  6 16:01 .
4.0K drwxrwxrwx  4 www-data www-data 4.0K Feb  6 16:01 ecrire
4.0K drwxrwxrwx  1 www-data www-data 4.0K Feb  6 16:01 ..

après un peu de navigation, de création/publication d’articles:

docker container kill spip-in-php56
docker rm spip-in-php56
# docker rmi spip/mod_php:5.6

Oui, c’est au webmestre de le supprimer manuellement par FTP :slight_smile:

1 « J'aime »

Testé en local, tout ok.

Par contre en cas de problème de droit d’écriture ça fait une page blanche avec une exception non capturée, un gentil message d’erreur serait bienvenu :slight_smile:

Fatal error: Uncaught Exception: Impossible d’écrire le fichier https://www.spip.net/spip-dev/INSTALL/spip_loader_list.json in phar:///home/charles/www/html/labo/spip/loader/spip_loader.php/index.php:310
Stack trace:
#0 phar:///home/charles/www/html/labo/spip/loader/spip_loader.php/index.php(278): SL_lister_versions_spip()
#1 phar:///home/charles/www/html/labo/spip/loader/spip_loader.php/index.php(255): SL_lister_branches_proposees()
#2 phar:///home/charles/www/html/labo/spip/loader/spip_loader.php/index.php(1435): SL_determiner_branche_par_defaut()
#3 [internal function]: unknown()
#4 /home/charles/www/html/labo/spip/loader/spip_loader.php(1): Phar::webPhar()
#5 {main} thrown in phar:///home/charles/www/html/labo/spip/loader/spip_loader.php/index.php on line 310
1 « J'aime »

t’as sûrement la même en 5.0.1 … j’ai pas changé le code…

En 5.0.1 ça donne ça :

1 « J'aime »

ah ok je vois … ça tombe bien il reste 2 tests à faire :

  • comment se comporte cette version du loader quand il y a une auto mise à jour
  • comment se comporte cette version quand il y a une config externe dans config/mes_options.php OU spip_loader_config.php

Salut,

Pour tester à nouveau, j’ai simulé une version 5.2.1 :

Il faut créer un fichier spip_loader_config.php pour une installation :

<?php
define('_URL_SPIP_LOADER', 'https://spip.lerebooteux.fr/spip-dev/INSTALL/spip_loader.php');

On peut définir cette constante dans ecrire/mes_options.php dans le cas d’un SPIP déjà installé.

J’ai mis de coté un pseudo spip_loader 5.2.0 à cette adresse : old 5.2.0 à télécharger et renommer en spip_loader.php

Sinon, en simulant des cas de répertoire en lecture seule :



Pour la mise à jour du loader, il y a peut-être encore un dernier soucis avec le cache d’opcode de certaines versions de PHP …

Je crois bien que j’ai la soluce au soucis de rafraîchissement de version lors de la mise à jour du loader.

Si vous avez quelques minutes pour refaire un test, faudrait refaire la manoeuvre : re-télécharger le pseudo spip_loader 5.2.0 et le copier à la racine de votre site de test… en le renommant en `spip_loader.php, bien sûr.

Et en bonus, vvous pourrez installer la 4.1 alpha (vérifiez bien que vous avez un fichier spip_loader_config.php à la racine qui contient:

<?php
define('_URL_SPIP_LOADER', 'https://spip.lerebooteux.fr/spip-dev/INSTALL/spip_loader.php');

Bonjour,
Novice en développement, je suis un peu perdu avec le système de fichier compressé proposé par cette version.
Auparavant, je téléchargeais un fichier .php, je le déposais via FTP et … roule.
Mais là, sur le lien donné, j’ai une profusion de fichiers dont je ne sais que faire.
J’ai fouillé (peut être mal) mais n’est pas trouvé de lien unique où récupérer une version prête à l’emploi.
Le lien ICI sur la page semble renvoyer vers la version 5.1.

Merci par avance pour votre aide.

Bonjour,

Je crois que ce que tu cherches est sur cette page, le présent fil de discussion étant destiné à faire des tests pour une possible future version du loader.

Merci pour votre réponse.
Je cherche bien à tester le nouveau spip_loader.php et profiter de la possibilité qu’il offre de mettre à jour un site existant vers la version alpha sortie récemment.
Mais peut-être ne suis-je pas sur le bon sujet.

La version 5.1 du loader (qu’on trouve sur spip.net, le lien ci-dessus) permet aussi d’installer la version alpha de spip.

La version à tester, non-officielle, est temporairement la 5.2.1

Merci pour ces précisions

Salut !

Après quelques jours de recherche, je vous propose à nouveau de faire quelques vérifications avec la version de test de spip_loader 5.2.

Vérifiez bien que vous avez un fichier spip_loader_config.php à la racine qui contient:

<?php
define('_URL_SPIP_LOADER', 'https://spip.lerebooteux.fr/spip-dev/INSTALL/spip_loader.php');

Téléchargez ce loader (il indique une version 5.2.0, mais c’est du test, je le rapelle)

Dans un navigateur, il devrait vous proposer de télécharger une version 5.2.1 (toujours de test…) et la mise à jour devrait bien se passer.

Merci d’avance pour vos retours, même les positifs :slight_smile: