Les rapports de bugs de Postgres en 2023
Le projet PostgreSQL est connu pour ne pas utiliser d’outil spécifique de suivi de bugs du genre bugzilla, mais une liste de diffusion dédiée, pgsql-bugs. C’est un peu plus que ça en fait, car il y a un formulaire qui permet de soumettre des bugs via le web, et qui au passage leur assigne des numéros séquentiels, ainsi que l’archive de la liste, sur laquelle les discussions sont visibles et cherchables.
Les messages et les fils de discussion sont accessibles par des liens hypertexte stables, auxquels les développeurs se réfèrent souvent dans les messages de commit ou les discussions ultérieures, si bien que l’ensemble forme un contenu relativement organisé et naviguable.
Une fonctionnalité basique que la liste n’a pas, cependant, c’est un statut ou une catégorisation des signalements de bugs. Ce qui advient d’un bug est déterminé en lisant le contenu de la discussion.
Catégorisation
En 2023, il y a eu 3396 messages postés sur la liste, dont 653 discussions démarrées dans l’année. Je me suis livré à l’exercice de les classer en catégories, histoire d’avoir une idée globale de la typologie des bugs. Voici à quoi je suis arrivé:
Catégorie | Compte |
---|---|
Pas un bug | 284 |
Bug confirmé | 175 |
Non confirmé | 91 |
Installeur EDB | 34 |
Paquets OS | 31 |
Performance | 23 |
Pas de solution | 15 |
Ce classement a forcément une part de subjectivité. Pour être transparent, la liste détaillée est disponible en export CSV, avec les message-ids et leurs catégories. Le message-id peut être copié-collé tel quel dans le formulaire de recherche sur le web pour aller directement à la discussion.
La catégorie “Pas un bug” regroupe les cas que le rapporteur a jugé anormaux alors qu’ils sont normaux, ou pour une large part aussi des questions ouvertes qui ne sont pas des signalement de bugs, ou moins souvent, des bugs qui ont déjà été signalés.
“Non confirmé” signifie qu’il n’est pas clair que le problème rapporté soit effectivement un bug. Par exemple il n’est pas reproductible, ou le rapporteur n’a pas donné suite à des réponses demandant plus d’informations.
“Installeur EDB” est une catégorie à part entière car l’installeur le plus utilisé sous Windows étant produit par EntrepriseDB en source fermé, et non par la communauté des développeurs, les rapports de bugs à ce sujet ont tendance à être ignorés par la majorité des intervenants.
“Paquets OS” regroupe les signalements sur des problèmes d’installation avec les paquets RPM ou Debian.
“Performance” concerne les questions de régression de performance.
“Pas de solution” regroupe les comportements dont il est admis qu’ils sont indésirables, mais pour lesquels il n’y pas de solution claire ou de consensus sur par quoi ou comment on pourrait les changer.
Délai de réponse
Les soumissions de bugs sont souvent suivies d’une réponse dans les heures qui suivent, ce qui est extrêmement appréciable.
Pour les bugs confirmés et reproductibles, des solutions sont parfois apportées rapidement sous la forme d’un patch du code source (puis distribuées dans la prochaine livraison corrective qui suit, en principe au rythme d’une par trimestre).
Parfois il n’y a aussi aucune réponse. Sur 653 fils de discussions initiés en 2023, 90 n’ont pas eu de réponse.
On peut voir que l’absence de réponse a une certaine corrélation avec les catégories. En particulier, les problèmes liés aux installeurs sont souvent ignorés.
Catégorie | Total | Sans réponse | Pourcentage |
---|---|---|---|
Pas un bug | 284 | 28 | 10% |
Bug confirmé | 175 | 1 | 1% |
Non confirmé | 91 | 34 | 38% |
Installeur EDB | 34 | 14 | 42% |
Paquets OS | 31 | 10 | 33% |
Performance | 23 | 3 | 14% |
Pas de solution | 15 | 0 | 0% |
Qui soumet des bugs?
La majorité des bugs rapportés le sont par des personnes différentes, à quelques exceptions près: une adresse mail en particulier a soumis 54 bugs en 2023, et une autre 13, et généralement des bugs bien caractérisés et confirmés. La répartition par nombre de bugs soumis et par émetteur est la suivante:
Rapports | Emetteurs |
---|---|
54 | 1 |
13 | 1 |
9 | 1 |
7 | 3 |
6 | 2 |
5 | 3 |
4 | 7 |
3 | 2 |
2 | 23 |
1 | 449 |
Enfin, le canal de soumission principal est le formulaire web: 459 contre 194 initiés par mail.