Comme vous l'avez compris à la lecture de ce qui précède, après une période de calme relatif, l'activité a repris en force au sein de la communauté des contributeurs à PHP, aussi bien au niveau de la liste de diffusion internals@ qu'au niveau du trunk, qui contient le code source de ce qui sera la prochaine version du langage.

La recrudescence d'activité sur le trunk est d'ailleurs en grande partie liée à celle internals@, car elle a débuté suite à la proposition faite sur cette dernière de lancer le processus de release de PHP 5.4.

En effet, cette proposition a, si je puis dire, dégénéré en plusieurs fils de discussions plus ou moins interconnectés au sein d'internals@  et qui ont généré en une dizaine de jours approximativement 450 messages.

Il est donc devenu très délicat de suivre les choses dans le détails mais j'ai tout de même réussi à extraire plusieurs informations.

Tout d'abord, les contributeurs semblent d'accord sur le fait qu'il est nécessaire de sortir une nouvelle version significative du langage, basée sur une partie ou la totalité du code présent dans le trunk.

La difficulté pour les contributeurs est donc de se décider sur les nouvelles fonctionnalités, présentes ou non dans le trunk, qui feront effectivement parties de cette future version.

C'est la raison pour laquelle de vieux débats sont revenus à la surface, tels que celui sur le contrôle du type des arguments lors de l'exécution, ou bien encore au sujet des traits et des annotations, et ce sont ces débat qui sont à l'origine du grand nombre de messages échangés entre les contributeurs.

Le débat sur les annotations a été, et de loin, le plus enflammé, au propre comme au figuré, et il a même été le lieu de plusieurs mises au point, plus ou moins violentes, entre les contributeurs.

Cependant, cela n'a pas changé fondamentalement la situation, et pour résumer, la communauté est divisée plus ou moins grossièrement en quatre camps au sujet des annotations.

Il y a tout d'abord ceux qui ne savent pas ce qu'est réellement une annotation, parce que le concept ne les intéressent absolument pas, et qui en conséquence ne participe au débat, dans le meilleur des cas, qu'en tant que modérateur ou bien pour recadrer les discussions.

Il y a ensuite ceux qui sont convaincus que l'ajout des annotations est absolument nécessaire.

À contrario, il y a ceux qui sont contre cet ajout car ils ne sont pas convaincus de l'utilité de cette fonctionnalité.

Et entre les deux, il y a ceux qui reconnaissent que les annotations sont potentiellement une fonctionnalité intéressante mais qui pensent que l'implémentation proposée n'est pas la bonne et qu'il faut se reposer sur les commentaires dans le code pour les gérer, à la manière des DocBlock, soit parce qu'il en va de leur intérêt, soit parce qu'il pense qu'il n'est pas utile de faire autrement.

Après bien des palabres et des digressions, les pro-annotations semblent avoir accepté de se reposer sur les DocBlock pour définir les annotations, certainement car ils se disent qu'avoir des annotations basée sur cette solution est mieux que de ne pas disposer du tout des annotations nativement dans PHP.

Une nouvelle RFC concernant la définition d'annotations via les DocBlock a donc été rédigée par Guilherme Blanco, le créateur de Doctrine et l'un des concepteurs de l'implémentation proposée précédemment.

Cependant, rien ne dit que cette solution sera acceptée, et surtout qu'elle sera intégrée dans la prochaine version du langage.

D'ailleurs, il n'y a rien de certain concernant cette fameuse version, et je prend avec des pincettes tout ce qui se dit à son sujet malgré la feuille de route proposée qui prévoie une sortie officielle de la version finale en octobre ou en novembre de cette année.

Elle a en effet été déjà annoncée précédemment à plusieurs reprises, et pour autant, il ne s'est rien passé, pour diverses raisons.

De plus, Pierre Joye, l'un des contributeurs les plus actifs et engagés dans le développement de PHP n'a pas pris part aux différents débats, car il est actuellement en vacances.

Il est donc possible que son retour provoque des remous, car je sais, par exemple, qu'il n'est pas partisan de l'utilisation des commentaires pour la définition des annotations.

Il semble cependant acquis qu'APC ne sera pas intégré au langage dans cette future version, car de l'aveu même de Dieu Rasmus Lerdorf, les ressources humaines nécessaires pour cela ne sont pas disponibles.

Par la même occasion, Dieu Rasmus semble confirmé la rumeur que j'ai déjà entendu par ailleurs disant que cette prochaine version ne sera pas une version majeure (mais dans ce cas, je me demande ce que contiendra une version du langage méritant le qualificatif de majeure).

Dieu Rasmus a d'ailleurs été inhabituellement très actif au cours des débats, soit en apportant des précisions, soit en jouant le rôle de tampon, notamment dans celui concernant les annotations.

Il est vrai qu'il a un intérêt personnel à suivre de très près cette discussion, car si la solution technique finalement retenue avait nécessité une modification de la grammaire de PHP, il aurait été certainement obligatoire de modifier le code d'APC, dont il est l'un des développeurs, ce qui ne semble pas être une sinécure.

Dernièrement, il a également demandé à ce que les tests unitaires en erreur dans la branche 5.3 et le trunk soient corrigés, ce qui est à l'origine d'un grand nombre des modifications subies par ce dernier.

Suite à sa demande, il semble qu'un tableau de bord permettant d'obtenir le statut des tests pour les différentes branches de PHP, basé sur le travail de Olivier Doucet, soit en train d'être mis en place. 

Enfin, il a enfin modifié les scripts de configuration relatifs à la compilation de PHP pour qu'ils supportent les versions d'autoconf supérieures ou égales à 2.60, ce qui permettra de le compiler plus facilement.

L'actualité de la liste de diffusion est donc relativement brulante, même si les choses se sont un peu calmées dernièrement, et le trunk en a subit les conséquences, comme je l'ai évoqué précédemment. 

Tout d'abord, près de la moitié des modifications concerne des corrections effectuées dans les tests unitaires.

Ensuite, vu qu'il n'y a eu aucun consensus au sein des contributeurs en ce qui concerne le contrôle du type des arguments d'une méthode ou d'une fonction, le code correspondant a été retiré du trunk.

Il y a également eu du nettoyage d'effectué dans la documentation présente dans le source concernant le processus de sortie d'une nouvelle version.

L'extension SNMP a également subie un petit lifting, puisque la méthode SNMP::open() a été supprimée car elle faisait doublon avec le constructeur de la classe, et que les méthodes SNMP::get_errno() et SNMP::get_error() ont été respectivement renommées en SNMP::getErrno() et SNMP::getError().

Les bibliothèques SQLite et PCRE intégrées au code de PHP ont par ailleurs été mises à jour respectivement en version 3.7.6.2 et 8.12.

Enfin, il y a également eu le lot habituel de corrections et d'optimisations, avec notamment la résolution des bugs #54623, #54580, #54681, #54644, #54692 et #54723.

Cette rétrospective est maintenant terminée, vous pouvez reprendre une activité normale.