Accueil > Release > Sortie de SPIP 4.1.0-alpha

Sortie de SPIP 4.1.0-alpha

mercredi 9 février 2022, par La team

SPIP 4.1.0-alpha sort d’hibernation ! Cette version à tester apporte un SPIP compatible avec PHP 8.1.

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 :

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 :

Nous vous rappelons que pour signaler une faille, il suffit d’envoyer un mail à spip-team@rezo.net

Messages

  • 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 :)

  • 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.

  • 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.

  • 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 ?

  • 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

Un message, un commentaire ?

Qui êtes-vous ?
Se connecter
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.