Qu’y a-t-il de nouveau dans cette version ?
- Un SPIP compatible de PHP 7.4 à 8.1
- Un SPIP avec des bibliothèques sous-jacentes (JS et PHP) mises à jour
- Un plugin Archiviste réécrit (Les extensions PHP suivantes sont désormais obligatoires : zip, zlib et Phar)
- Les rubriques (dans l’espace privé) affichent les articles refusés
- La configuration de Bigup (taille des fichiers téléversés) est affichée sur la page de configuration des options avancées pour être plus visible.
- L’API de création et de décodage des URLs de SPIP est partiellement renommée (voir plus bas).
Calendrier
Afin de sortir une version stable le plus rapidement possible, nous proposons le cycle de test suivant :
- une semaine de tests en alpha, pendant lesquels il sera éventuellement possible d’ajouter quelques micros évolutions, à la suite de quoi nous sortirons une beta ;
- deux semaines de tests en beta, consacrés aux correctifs des derniers bugs. Nous n’introduirons plus d’évolutions avant la sortie de la 4.1.0 stable.
Ainsi, avec vos tests et vos retours, nous pourrons publier la beta autour du 15 février et la version stable fin février.
En outre, la version 4.0 sera maintenue jusque fin mars. Après quoi nous vous encourageons à passer à la version 4.1.
Nous vous rappelons que SPIP 3.2 sera maintenue pour des correctifs de sécurité uniquement jusque fin décembre 2022 et que nous prévoyons une version 4.2 pour le début de l’été.
Tester les plugins
Les plugins n’auront probablement pas encore de version prévue pour cette toute nouvelle version de SPIP. Pour les tester afin de vérifier leur compatibilité, vous pouvez utiliser la configuration (constante) suivante dans votre fichier config/mes_options.php
Cela permet d’activer n’importe quel plugin compatible avec SPIP 4.0.
Évolutions
Mises à jour des librairies
Nous avons mis à jour différentes bibliothèques utilisées par SPIP.
Javascript
- SPIP
- Sortable 1.14.0 (depuis 1.13.0)
- jQuery Form 4.3.0 (depuis 4.2.2)
- JS Cookie 3.0.1 (depuis 2.2.1)
- Statistiques
- d3 7.3.0 (depuis 6.6.0)
- luxon 2.3.0 (depuis 1.6.0)
- Plan
- jstree 3.3.12 (depuis 3.3.8)
PHP
- Compresseur
- css-tidy 2.0.0 (depuis 1.1.0)
- Medias
- getid3 1.9.21 (depuis 1.9.20)
- svg-sanitizer 0.14.1
API modifiée pour URLs et objets
L’API de création et de décodage des URLs de SPIP est partiellement renommée. L’ancien nommage devient déprécié. Nous donnerons plus de détails ultérieurement. En résumé, il y a maintenant 2 jeux de fonctions distinctes pour générer l’URL d’un objet et pour décoder une URL.
Par exemple, la fonction generer_url_entite
devient generer_objet_url
. En règle générale, les fonctions traitant les objets ont été renommées en generer_objet_xxx
.
Pipelines
Les pipelines pre_edition
et post_edition
ont une clé de donnée supplémentaire transmise (champs_anciens
) lors de l’action modifier
. Cette clé contient les données présentes en base de données pour l’objet concerné avant édition.
Typage PHP
Pour PHP 8.1, nous avons commencé avec parcimonie à typer certains arguments et retours de fonctions pour détecter au plus tôt des appels incorrects.
C’est un changement potentiellement impactant : cela peut créer des erreurs de squelettes là où l’erreur était auparavant plus silencieuse ou tolérée. De même cela peut provoquer des erreurs PHP dans des plugins ou des scripts maison sur les appels erronés à ces fonctions.
Sucre syntaxique
Nous avons également passé l’outil Rector sur le code de SPIP 4.1 avec la configuration PHP 7.4. Cet outil permet de transformer la syntaxe du code source PHP en modifiant certains éléments qui peuvent être simplifiés grâce à des écritures plus récentes de PHP. Par exemple utiliser les opérateurs ??
ou ??=
lorsque c’est possible.
Suppressions
FORMULAIRE_CONFIGURER_METAS
Nous avons supprimé #FORMULAIRE_CONFIGURER_METAS
qui était déprécié depuis SPIP 3.0 au profit des formulaires #FORMULAIRE_CONFIGURER_XX
.
Il y a très peu de chance que vous soyez concerné es.
jQuery.cookie
Nous avons supprimé jQuery.cookie qui était déprécié depuis SPIP 3.2 au profit de JS Cookie.
Pour rappel si vous n’aviez pas encore adaptés vos utilisations :
Mettre à jour en utilisant le spip_loader
Vous pouvez aussi mettre à jour au moyen de la dernière version du spip_loader (version 5.1.0).
https://www.spip.net/spip-dev/INSTALL/spip_loader.php
Résumé des versions de SPIP
Branche | Version | Suivi | Compatibilité PHP |
---|---|---|---|
SPIP 4.1 | SPIP 4.1.0-alpha | Branche test | PHP 7.4 à PHP 8.1 |
SPIP 4.0 | SPIP 4.0.4 | Branche stable | PHP 7.3 à PHP 8.0 |
SPIP 3.2 | SPIP 3.2.13 | Branche stable | PHP 5.4 à PHP 7.4 |
Les versions SPIP 3.1 et antérieures ne sont plus maintenues.
Pour connaître le détail des versions maintenues :
https://www.spip.net/fr_article6500.html
Comment être tenu au courant de ces annonces ?
C’est simple, inscrivez-vous sur la mailing liste https://discuter.spip.net/c/spip-ann/13
Bien sûr les réseaux sociaux sont de la partie :
- Seenthis : https://seenthis.net/people/spip
- Twitter : https://twitter.com/spip
- Facebook : https://www.facebook.com/spip.net
- Mamot : https://mamot.fr/@spip
Une question, besoin d’aide ?
En cas de problème ou de difficultés, il y aura certainement quelqu’un pour vous aider sur IRC, N’hésitez pas à venir poser vos questions https://irc.spip.net
Vous pouvez aussi poster un message et échanger sur :
- La liste des utilisateurs et utilisatrices https://discuter.spip.net/c/spip/6
- La liste du développement spip-dev https://discuter.spip.net/c/spip-dev/5
Nous vous rappelons que pour signaler une faille, il suffit d’envoyer un mail à spip-team@rezo.net
Messages
10 février 2022, 08:08, par Mathieu
Merci pour cette Alpha !
Est-ce que la branche 4.0 aura des mises à jour de sécurité au delà de mars 2022 ?
Il y’a un saut de version de PHP entre 4.0 et 4.1, si on est en Debian 10 ça demande de passer en Debian 11 pour pouvoir passer à SPIP 4.1. Je sais que le but est d’avancer, et c’est une bonne chose, mais un changement d’OS à prévoir dans les deux mois ça peut est short :)
10 février 2022, 12:29, par Nicolas Krebs
Actuellement, dans la feuille de route https://www.spip.net/fr_article6500.html les branches 4.0 et 4.1 ont les mêmes dates de fin de maintenance active et de maintenance de sécurité. Serait-il possible d’ajouter quelques mois de maintenance de sécurité ? Je ne vous reproche rien, je pose juste la question.
10 février 2022, 12:31, par Nicolas Krebs
En programmation « librairie » est un angliscisme, « library » correspond à « bibliothèque » en français. Emprunter des livres à une bibliothèque est gratuit, pas dans une librairie.
10 février 2022, 12:51, par Marcimat
Merci @Nicolas et @Mathieu
On va réfléchir à cette 4.0 qui reste en php 7.3 effectivement. Quelle durée ou date conviendrait selon vous ?
L’autre possibilité c’est de revenir à une branche 4.x compatible PHP 7.3 (en passant Rector dans l’autre sens) mais je suis pas certain que ça nous convienne. Un avis peut être ?
10 février 2022, 15:21, par Mathieu
Me concernant Debian 10 arrive en fin de vie cet été, ce serait parfait si SPIP 4.0.x pouvait au moins profiter des mises à jour de sécurité jusqu’à cette date.
Le support de PHP 7.3 dans SPIP 4.0.x a été super pratique pour transitionner entre la branche 3 et la branche 4 : on avait une version de PHP qui fonctionnait avec ces deux branche, ça a beaucoup simplifier les migrations. Mais on peut pas vous demander de plomber le développement en la supportant PHP 7.3 pendant trop longtemps... néanmoins avoir un peu de temps plus de temps avant de re-migrer sur SPIP4.1 me simplifierait la vie :)
Encore merci pour le travail accompli ! <3
13 février 2022, 15:44, par James
On essaie de répondre au plus vite : https://discuter.spip.net/t/proposition-roadmap-spip-court-terme-et-composer/157863/41 :)