En suivant de mieux en mieux Semver, se pose une question qui est un peu propre à SPIP (en tout cas plus rare ailleurs) : le fait que presque tout utilise le Path, et que SPIP permet de surcharger quasiment tous les fichiers, PHP ou squelettes.
La question étant : qu’est-ce qu’on considère comme relevant des choses à ne PAS casser quand l’équipe @maintenance choisit quoi mettre dans une version Y+1 ?
Ma position actuelle pour l’instant : il me semble que seules les utilisations de fonctions API PHP documentées ou très connues, ainsi que les inclusions de squelettes documentés, sont à prendre en compte dans les choses qui ne doivent pas être cassées quand on met à jour en Y+1.
En revanche, quand on décide de surcharger des fichiers entiers de fonctionnalités majeures du core (filtres.php, texte.php, image_truc.php, ou des squelettes importants de l’admin), pour y faire des modifications personnelles de son côté, alors cela ne relève pas d’une utilisation des API. C’est à l’inverse un choix de remplacement de fichiers à faire en connaissance de cause, et c’est à charge de la personne de maintenir sa surcharge dans le temps. Il est impossible de prévoir tout ce qu’on peut faire en surcharge, vu que c’est littéralement du remplacement de morceaux entiers de SPIP, c’est infini, donc ça ne peut pas être pris en compte.
Ainsi il est possible de faire des modifications dans des Y+1 qui changent des choses dans le PHP ou les squelettes, tant que ça ne casse pas les appels finaux, qui correspondent aux devs/intégrateurices. Mais pas à celleux qui surchargent les fichiers.
Un exemple concret d’une PR qui ne casse pas l’utilisation finale (en tout cas c’est le but), mais qui modifie le comportement pour les quelques personnes qui auraient surchargé un squelette central de l’API editer_liens :