Accueil > Release > Sortie de SPIP 4.2.0-alpha

Sortie de SPIP 4.2.0-alpha

vendredi 27 janvier 2023, par La team

SPIP 4.2.0-alpha arrive avec un peu de retard sur la date prévue. Cette version de test apporte avant tout la compatibilité avec PHP 8.2 et devrait nous permettre de corriger les éventuels bugs avant de sortir la version stable dans un mois environ.

SPIP 4.2 est une version qui suit les versions maintenues de PHP tout en gardant exceptionnellement une compatibilité avec la version PHP 7.4. Cette version fait un premier pas vers Composer avec l’introduction d’un autoloader à usage interne et l’intégration de dépendances à des librairies PHP via composer.json (notamment les polyfill PHP 8.0, 8.1 et 8.2 ainsi que le polyfill mbstring).

Note : Nous avons sorti le lendemain (28 janvier) SPIP 4.2.0-alpha2 qui corrige un problème en PHP 7.4.

Compatibilité PHP 7.4 à 8.2

SPIP 4.2 nécessite PHP 7.4 minimum, et fonctionne jusqu’à PHP 8.2.
Il nécessite les extensions PHP : sodium, Zlib, Zip et Phar.

Comme pour SPIP 4.1, la compatibilité avec une nouvelle version de PHP a nécessité de nombreuses corrections et adaptations dans le code de SPIP.

Cela concerne essentiellement des dépréciations des appels à utf8_encode, l’utilisation de propriétés de classes inexistantes et des écritures de type "${var}".

Qualité du code

Dans la lignée de SPIP 4.1, nous avons continué à typer certains arguments et retours de fonctions pour détecter au plus tôt certains appels incorrects.

De plus, les quelques classes PHP de SPIP ont été déplacées dans ecrire/src sous le namespace Spip.

Nouvelles fonctionnalités et changements

Parmi celles-ci on peut noter :

  • une meilleure sécurisation des contenus par l’utilisation de la librairie HTMLPurifier à la place de SafeHTML
  • la possibilité d’éditer les logos des objets comme les documents, et l’introduction d’une balise #ID_LOGO_ (par exemple #ID_LOGO_ARTICLE) qui retourne l’identifiant du document utilisé pour le logo d’un objet
  • le support des backticks (`) pour insérer du code dans le contenu éditorial
  • l’affichage de la langue des utilisateurs sur leur page et la possibilité de l’éditer
  • la normalisation et l’appel systématique de l’API de notifications lors de la modification des contenus éditoriaux
  • la possibilité d’alterner le sens de tri des listes qui utilisent le critère tri
  • l’amélioration du balisage HTML généré pour les blocs de code
  • le moteur de base de données MySQL n’est plus forcé lors de l’installation, ce qui permet d’installer SPIP sans aucune modification sur un serveur qui utilise InnoDB
  • la prise en charge de l’utf8 pour le filtre |match
  • la possibilité de spécifier une jointure quand on utilise la balise #CHAMP_SQL (exemple #CHAMP_SQL{rubrique.titre})
  • ne plus autoriser un rédacteur ou une rédactrice à refuser ses propres articles
  • une refonte visuelle des pages d’installation et de rappel de mot de passe

Beaucoup de bugs ont aussi été corrigés, vous pouvez consulter la liste complète dans le fichier CHANGELOG.md.

Plugins

Bigup

  • possibilité de redimensionner les images côté navigateur, avant l’upload (les dimensions sont configurables depuis l’espace privé)
  • ajout d’un pipeline bigup_preparer_input_options pour personnaliser finement les options
  • ajout de deux events à l’API JavaScript bigup.fileAdded & bigup.fileSubmitted et compléter l’event ready pour lui passer l’objet form en paramètre

Compresseur

  • mise à jour de la librairie CSSTidy en version 2.0.3
  • correction d’un bug dans la compression des fichiers CSS contenants des écritures raccourcies sur les propriétés padding & margin

Filtres images

  • correction d’un bug lors de l’usage du filtre |image_typo sous Windows

Forum

  • ajout d’icones SVG manquantes sur la page de gestion des forums internes
  • correction du RSS du suivi des forums
  • suivre le changement de comportement de appliquer_filtre et utiliser appliquer_si_filtre à la place
  • limiter le nombre d’items à 100 dans les flux RSS produits
  • suppression du filtre |lignes_longues maintenant géré en css

Medias

  • appliquer _TRAITEMENT_TYPO sur le champ CREDITS et bien visualiser le HTML suspect
  • permettre d’éditer un logo comme un document
  • suppression du Sanitizer SVG qui est maintenant dans le plugin SafeHtml
  • suppression du formulaire FORMULAIRE_CHANGER_FICHIER_DOCUMENT qui n’est plus utilisé par SPIP (la fonctionnalité se trouve directement dans le FORMULAIRE_EDITER_DOCUMENT)
  • correction de l’affichage des documents, avec un titre long, en liste compacte
  • correction de l’affichage des documents en mode case
  • réparer l’usage de #LOGO_DOCUMENT{align}
  • utiliser une déclaration moins prioritaire pour ajouter le traitement typo sur le champ #CREDITS
  • suppression des boutons excédentaires de sens de tri sur certaines listes de documents
  • ne pas contraindre la taille des images SVG
  • amélioration du message d’erreur de taille de document
  • lors d’une mise à jour depuis SPIP < 4.0, par précaution refaire un alter sur le champ mode avant la migration des logos
  • correction d’un bug de sélection des fichiers lors du chargement de documents depuis tmp/upload
  • correction d’un bug d’affichage des documents lorsque ceux-ci sont affiché en mode « case »
  • mise à jour de la librairie getID3 en version 1.9.22

Plan

  • utiliser l’API parents/enfants pour lister les objets enfants de chaque rubrique
  • feuille de style plus flexible et icones SVG

Révisions

  • correction du flux RSS du suivi des révisions

SafeHtml

  • ajout du Sanitizer SVG auparavant dans le plugin medias
  • utilisation de la librairie HTMLPurifier à la place de SafeHTML

Sites

  • filtrer la liste des sites par présence d’une syndication ou pas
  • suppression du filtre |lignes_longues maintenant géré en css

SVP

  • accepter des bornes du type, x, x.y, et x.y.z dans un intervalle de compatibilités
  • permettre la mise à jour d’un plugin non compatible avec la version courante de SPIP vers un état moins stable
  • tout cocher/décocher n’agit que sur les plugins visibles de la liste lors d’un filtrage par recherche
  • correction du bouton « Tout cocher » des plugins à mettre à jour

TextWheel

  • support des backticks pour insérer du code dans le contenu éditorial
  • refactoring de la mise en sécurité des textes

URLs étendues

  • possibilité de trier par URLs verrouillées dans les listes d’URLs
  • correction du sens de tri sur la liste des URLs

Squelettes dist

  • afficher le langage des blocs de code en haut à droite
  • compléter les CSS responsives pour les balises video, canvas, ou svg
  • afficher les documents joints aux brèves dans l’espace public
  • distinguer les styles des éléments .spip_code inline et block
  • réparer la fonctionnalité d’embed de document unique (non image) sur les articles vides
  • permettre d’insérer deux formulaires de recherche dans la même page
  • éviter que les paginations ne débordent sur petit écran
  • suppression du filtre |lignes_longues maintenant géré en css
  • suppression des 3 formulaires inscription mot_de_passe et oubli, désormais fournis par le core

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 :

define('_DEV_VERSION_SPIP_COMPAT', '4.1.99');

Cela permet d’activer n’importe quel plugin compatible avec SPIP 4.1.

Résumé des versions de SPIP

Branche Version Suivi Compatibilité PHP
SPIP 4.2 SPIP 4.2.0-alpha2 Branche test PHP 7.4 à PHP 8.2
SPIP 4.1 SPIP 4.1.7 Branche stable PHP 7.4 à PHP 8.1
SPIP 4.0 SPIP 4.0.9 Branche stable PHP 7.3 à PHP 8.0
SPIP 3.2 SPIP 3.2.17 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

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.