Lignes de conduite pour les rapports de bogues

Lorsque vous trouvez un bogue dans PostgreSQL, il faut que nous le sachions. Vos rapports de bogues sont essentiels pour rendre PostgreSQL plus fiable. En effet même la plus grande attention ne pas garantir que chaque partie de PostgreSQL fonctionnera sur toute plates-forme en toute circonstance.

Les suggestions suivantes ont pour but de vous former à la saisie d'un rapport de bogue qui pourra ensuite être géré de façon efficace. Il n'est pas obligatoire de les suivre mais tout le monde en tirera profit.

Nous ne promettons pas de corriger tous les bogues immédiatement. Si le bogue est évident, critique ou affecte un grand nombre d'utilisateurs, il y a de grandes chances pour que quelqu'un s'en charge. Il peut aussi arriver que nous vous demandions d'utiliser une version plus récente pour voir si le bogue est toujours présent. Nous pourrions aussi décider que le bogue ne peut être corrigé avant qu'une réécriture massive, que nous planifierions, ne soit réalisée. Peut-être encore cette correction est-elle trop difficile et des choses plus importantes sont prévues. Si vous avez un besoin d'aide immédiat, il vous faudra considérer la souscription d'un contrat de support commercial.

Identifier les bogues

Avant de rapporter un bogue, merci de lire et re-lire la documentation pour vérifier que ce que vous essayez de faire est réellement prévu. Si la documentation n'est pas claire sur ce point, faites également remonter cette information ; c'est un bogue dans la documentation. S'il s'avère que le programme se déroule différemment de ce qu'indique la documentation, c'est un bogue. Ceci peut inclure les circonstances suivantes, sans s'y limiter :

Ici, << programme >> fait référence à un exécutable, pas uniquement au moteur du serveur.

Une lenteur ou une accaparation des ressources n'est pas nécessairement un bogue. Lisez la documentation ou demandez sur une des listes de discussion de l'aide pour optimiser vos applications. Ne pas se conformer au standard SQL n'est pas nécessairement un bogue sauf si une telle conformité est indiquée explicitement.

Avant de continuer, vérifiez sur la liste des tâches, ainsi que dans la FAQ, pour voir si votre bogue n'est pas déjà connu. Si vous n'arrivez pas à décoder les informations sur la liste des tâches, écrivez un rapport. Le minimum que nous puissions faire est de rendre cette liste plus claire.

Que rapporter ?

Le point le plus important lors d'un rapport de bogues est de se souvenir de rapporter tous les faits et seulement les faits. Ne spéculez pas sur ce que vous pensez être le dysfonctionnement, sur ce qu'<< il semblait faire >> ou sur la partie du programme qui contient une erreur. Si vous n'êtes pas familier de l'implémentation, vous vous tromperez probablement et vous ne nous aiderez pas. Même si vous aviez raison, des explications complètes sont un bon complément mais elles ne doivent pas se substituer aux faits. Si nous décidons de corriger le bogue, nous devons toujours le reproduire nous-même. Rapporter les faits stricts est relativement simple (vous pouvez probablement les copier/coller à partir de l'écran) mais, trop souvent, des détails importants sont oubliés parce que quelqu'un a pensé qu'ils n'avaient pas d'importance ou que le rapport serait compris.

Les éléments suivants devraient être fournis avec chaque rapport de bogue :

Ne vous inquiétez pas si votre rapport de bogue devient assez long. C'est un fait. Il est préférable de tout rapporter la première fois plutôt que de nous obliger à vous demander tous les faits. D'un autre côté, si vos fichiers en entrée sont trop gros, il est préférable de demander si quelqu'un souhaite s'y plonger.

Ne passez pas tout votre temps à vous demander quelles modifications apporter aux données en entrée pour faire disparaître le problème. Ceci ne nous aidera probablement pas à le résoudre. S'il se trouve que le bogue ne puisse pas être corrigé instantanément, vous aurez toujours le temps de chercher et de partager vos trouvailles. Encore une fois, ne perdez pas votre temps à deviner pourquoi le bogue existe. Nous trouverons cela assez rapidement.

Lors de la rédaction d'un rapport de bogue, merci de choisir une terminologie qui ne laisse pas de place à l'ambiguité. Le paquet logiciel dans sa totalité est appelé << PostgreSQL >>, parfois << Postgres >> en abrégé. Si vous parlez spécifiquement du serveur, mentionnez-le mais ne dites pas seulement << PostgreSQL a planté >>. Un arrêt brutal d'un seul processus serveur est assez différent de l'arrêt brutal du << postmaster >> père ; merci de ne pas dire que << le postmaster a planté >> lorsque vous voulez dire qu'un seul processus s'est arrêté, et vice versa. De plus, les programmes clients tels que l'interface interactive << psql >> sont complètement séparés du moteur. Essayez d'être précis sur la provenance du problème : client ou serveur.

Où rapporter des bogues ?

En général, envoyez vos rapports de bogue à la liste de discussion des rapports de bogue (). Il est recommandé d'utiliser un sujet descriptif pour votre courriel, pourquoi pas une partie du message d'erreur.

Une autre méthode consiste à remplir le formulaire web disponible sur le site web du projet http://www.postgresql.org/. Saisir un rapport de bogue de cette façon implique son envoi à la liste de discussion .

Si votre rapport de bogue a des implications sur la sécurité et que vous préfériez qu'il ne soit pas immédiatement visible dans les archives publiques, ne l'envoyez pas sur pgsql-bugs. Les problèmes de sécurité peuvent être rapportés en privé sur .

N'envoyez pas de rapports de bogue aux listes de discussion d'utilisateurs, comme ou . Ces listes de discussion servent à répondre aux questions des utilisateurs et les abonnés ne souhaitent pas, en général, recevoir de rapports de bogues. Plus important, il y a peu de chance qu'ils les corrigent.

De même, n'envoyez pas vos rapports de bogue à la liste de discussion des développeurs . Cette liste sert aux discussions concernant le développement de PostgreSQL et il serait bon de conserver les rapports de bogue séparément. Nous pouvons toujours décider de discuter de votre rapport de bogue sur pgsql-hackers si le problème nécessite plus de personnes pour s'en occuper.

Si vous avez un problème avec la documentation, le meilleur endroit pour le rapporter est la liste de discussion pour la documentation . Soyez précis sur la partie de la documentation qui vous déplaît.

Si votre bogue concerne un problème de portabilité sur une plate-forme non supportée, envoyez un courrier électronique à , pour que nous puissions travailler sur le portage de PostgreSQL sur votre plate-forme.

Note : Du fait du grand nombre de pourriels (spam) qui circulent, toutes les adresses de courrier électronique ci-dessus appartiennent à des listes de discussion fermées. C'est-à-dire que vous devez être abonné pour être autorisé à y envoyer un courriel. Néanmoins, vous n'avez pas besoin de vous abonner pour utiliser le formulaire web de rapports de bogue. Si vous souhaitez envoyer des courriels mais ne pas recevoir le trafic de la liste, vous pouvez vous abonner et configurer l'option nomail. Pour plus d'information, envoyez un courriel à avec le seul mot help dans le corps du message.