1. Présentation

Normalement, les tests sont assurés par les développeurs de PHP, notamment grâce à travis et ensuite pas les utilisateurs qui installeront les versions RC mise à disposition 2 semaines avec la version GA.

Le projet PHP suit un processus de version (cf README.RELEASE_PROCESS) qui prévoit 2 jours entre la préparation de la version, sur git le mardi, et son annonce le jeudi sur les listes de diffusions. Ces 2 jours sont notamment prévus pour permettre de préparer les paquets binaires (surtout Microsoft et souvent mon dépôt) et faire une dernière passe de QA qui peut permettre de détecter un problème tardif.

Dès que la version a été mise à disposition (mardi), j'ai commencé à lancé la construction des paquets pour mon dépôt, ce qui permet de couvrir plus de cas que la configuration actuelle de travis

  • Fedora 27 à 31
  • RHEL 6, 7 et 8-Beta
  • i386 et x86_64
  • NTS et ZTS
  • nombreuses versions du compilateur (GCC 4 à 9) et des bibliothèques systèmes

J'ai aussi lancé la construction du paquet 7.3.4RC1 dans Fedora rawhide afin de déclencher la reconstruction de toute la pile PHP dans Koschei, un des outils de CI de Fedora.

Note : le temps de construction pour l'ensemble des cibles et d'environ 3h par version !  (j'ai vraiment besoin d'une machine plus puissante)

 

2. Problèmes découverts

2.1. Tests échoués avec pcre2 version 10.33RC1

Déjà disponible dans rawhide, cette version apporte une modification de certains messages d'erreur, provoquant un échec de 2 tests.

Problème mineur, corrigé dans PHP 7.3+ : changement c421d9a.

2.2. Tests échouées en 32 bits

Suite à la correction du bug #76117 la sortie de var_export a changée, entrainant un echec que 2 tests.

Après confirmation par l'auteur de la modification, les tests ont été corrigés dans PHP 7.2+ : changements a467a89 et 5c8d69b.

2.3. Regression

Koschei a permis de détecter très rapidement une régression important dans l’exécution de "make test". Après recherche, cette régression a été introduite par la correction du bug #77609, voir les commentaires sur le changement 3ead672.

Suite à discussion entre les responsables de version (Release Managers) il a été décidé

  • de supprimer ce changement pour revenir sur une situation saine
  • de relancer le processus de publication (nouveau tag sur git)

Le version qui sera bientôt annoncée ne sera donc pas affectée par cette régression.

 

3. Conclusion

S'assurer de la qualité de PHP, et de l'absence de régression est un travail complexe, long et sérieux. Grâce à l'ensemble des acteurs, développeurs, équipe QA et utilisateurs cela fonctionne plutôt bien.

Si vous utilisez PHP dans un environnement de développement, il est donc essentiel de penser à installer les versions RC pour nous signaler rapidement tout problème, afin que nous puissions réagir avant la version finale..

Pour les utilisateurs de mon dépôt, les versions RC de PHP et de nombreuses extensions sont presque toujours disponibles dans les dépôts de test.