Hello,
J’investigue depuis hier les fonctions associées à la gestion des intervalles de compatibilité.
J’ai déjà corrigé un bug d’inclusion des bornes dans la fonction extraire_bornes().
J’étais en train de vérifier/corriger la fonction compiler_branches_spip() et je suis tombé sur un comportement bizarre de spip_version_compare().
Cette fonction, il y a des lustres, a été mise à jour pour prendre en compte les versions avec étoile comme 3.0..
La fonction compare v1 à v2 selon l’opérateur précisé.
Elle accepte que seule v2 puisse avoir une étoile et dès lors remplace l’étoile par la valeur idoine issue de v1.
De fait, si on fait le test 3.0.1 < 3.0. on obtient false car on compare 3.0.1 < 3.0.1.
Dans mon esprit, ‹ * › devrait exprimer la valeur max possible.
Si on parle de versions spip, ça serait donc 3.0.999.
Le souci c’est que je ne sais pas si on utilise spip_version_compare() avec des étoiles uniquement pour comparer des versions spip provenant des intervalles de compat ou pas.
Ce qui pose un problème pour décider de la correction à apporter.
Des avis ou des idées ?