Differences between revisions 7 and 8
Revision 7 as of 2011-03-02 11:09:49
Size: 18700
Comment: Suite de la traduction
Revision 8 as of 2011-03-02 11:11:19
Size: 18703
Comment: Typo
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
L'acronyme '''''BTS''''' signifie ''Bug Tracking System'' (ou Système de suivi de bugs en français). Il s'agit du système ou le projet Debian réalise l'enregistrement et le suivi des rapports de bug (y compris les demandes d'amélioration, pas uniquement les "véritables" bugs). Il s'agit en majorité d'un système basé sur le courrier électronique - car on peut modifier ou effectuer des manipulations uniquement en envoyant un courrier électronique. Les courriers doivent être envoyés en format texte et non en HTML. L'acronyme '''''BTS''''' signifie ''Bug Tracking System'' (où Système de suivi de bugs en français). Il s'agit du système ou le projet Debian réalise l'enregistrement et le suivi des rapports de bug (y compris les demandes d'amélioration, pas uniquement les "véritables" bugs). Il s'agit en majorité d'un système basé sur le courrier électronique - car on peut modifier ou effectuer des manipulations uniquement en envoyant un courrier électronique. Les courriers doivent être envoyés en format texte et non en HTML.
Line 173: Line 173:
Si un rapport de bug dispose d'une étiquette de version, le BTS le considère comme touchant ''uniquement'' les versions mentionnées. Si vous disposez d'un MTA local et que vous avez renseigné la variable d'environnement {{DEBEMAIL}} comme je l'ai fait, il existe un outil très utile dans le paquet ''devscripts'': il s'appelle ''bts'' (et devinez à quoi il sert ?). Si un rapport de bug dispose d'une étiquette de version, le BTS le considère comme touchant ''uniquement'' les versions mentionnées. Si vous disposez d'un MTA local et que vous avez renseigné la variable d'environnement {{{DEBEMAIL}}} comme je l'ai fait, il existe un outil très utile dans le paquet ''devscripts'': il s'appelle ''bts'' (et devinez à quoi il sert ?).

Traductions: English - Italiano - Français



Comment utiliser le Système de Suivi de Bug (BTS)

Session d'entraînement IRC Debian Women conduite par Gerfried Fuchs, le 09 Décembre 2010

Voici un tutoriel sur l'utilisation du système de suivi de bug.

L'acronyme BTS signifie Bug Tracking System (où Système de suivi de bugs en français). Il s'agit du système ou le projet Debian réalise l'enregistrement et le suivi des rapports de bug (y compris les demandes d'amélioration, pas uniquement les "véritables" bugs). Il s'agit en majorité d'un système basé sur le courrier électronique - car on peut modifier ou effectuer des manipulations uniquement en envoyant un courrier électronique. Les courriers doivent être envoyés en format texte et non en HTML.

Prérequis

Prérequis techniques:

Interroger les rapports de bug: l'interface web du BTS

L'interface Web du BTS se consulte sur http://bugs.debian.org/. A travers cette interface, vous pouvez lancer des recherches, assez rapidement (si le serveur n'est pas trop chargé) et assez facilement, sur les rapports de bug.

Si vous allez sur http://bugs.debian.org, vous serez redirigé sur une page affichant un formulaire de recherche. Mais la partie la plus utile représente les nombreuses redirections que ce formulaire permet:

  • Si vous maintenez des paquets vous-même, vous pouvez aller sur http://bugs.debian.org/your@maintenance.addre.ss et consulter tous les rapports de bug de l'intégralité des paquets que vous maintenez avec cette adresse email.

  • Si vous remontez des rapports de bug (et j'espère que c'est ce que vous faîtes au lieu de garder pour vous les bugs que vous rencontrez et qui continueront à vous agacer tant qu'ils ne seront pas corrigés) vous pouvez aller sur http://bugs.debian.org/from:your@addre.ss pour consulter tous les rapports de bugs non corrigés.

  • Si vous voulez signaler un nouveau bug, alors vous devriez vérifier si celui-ci n'a pas déjà été remonté. Pour celà, vous pouvez utiliser http://bugs.debian.org/packagename pour visualiser tous les rapports de bugs qui affectent un paquet donné. A noter que ces rapports de bugs concernent uniquement les paquets binaires.

  • Si vous voulez consulter un rapport de bug de tous les paquets construits à partir du même paquet source, comme par exemple, openoffice.org, vous pouvez aller sur http://bugs.debian.org/src:openoffice.org à la place (notez le préfixee src:).

  • Si vous disposez d'un numéro de rapport de bug, vous pouvez aller directement consulter ce rapport en ajoutant le numéro à la fin de l'URL, comme sur http://bugs.debian.org/12345.

Sur les pages d'aperçu, une liste des rapports indiqués dans la présente page est affichée en haut. A la fin de cette page, un formulaire vous permet de sélectionner les rapports qui vous intéressent selon différentes options.

Vous vous rendrez compte que sur cette page d'aperçu, il y a souvent des caractères mystérieux à côté de chaque résumé de bug. Vous pouvez mettre le pointeur de souris dessus afin d'obtenir la signification du caractère. En cliquant dessus, vous ouvrez une fenêtre pop-up avec davantage d'information sur le rapport de bug.

Il s'agissait d'une courte introduction à l'interface web du BTS. Encore une fois, retenez qu'il s'agit seulement d'une interface de recherche et n'hésitez pas à cliquer à droite et à gauche: rien de mauvais ne peut en sortir.

Créer des rapports de bug: reportbug

Pour signaler des bugs, vous aurez besoin d'un client de courrier électronique ou, mieux encore, du paquet reportbug. reportbug est un outil principalement en mode texte (mais il existe deux interfaces graphiques: une basée sur urwid, l'autre sur GTK+). Il existe également reportbug-ng qui est une interface graphique dont l'objectif est identique à reportbug mais qui est un outil bien distinct.

Les deux outils imposent l'utilisation d'un MTA (Mail Transport Agent) comme postfix, exim ou ssmtp. Je ne détaillerai pas comment les configurer. Retenez qu'il est utile pour certains de disposer d'un MTA en local de manière à pouvoir écrire son courrier électronique sur son portable lorsqu'on est déconnecté et pouvoir l'envoyer ensuite, lorsqu'on est à nouveau connecté.

Même lorsque vous ne disposez pas d'un MTA local, reportbug reste extrèmement utile car il dispose d'une option --template. Cette dernière vous aide à produire de l'information qui vous sera de toute manière demandée par le mainteneur du paquet, directement dans le rapport de bug (par exemple, l'information sur les dépendances).

Lancez dans un terminal:

reportbug --template paquet

avec un nom de paquet que vous avez installé. N'ayez pas peur: cela ne fait rien de mal ! Ca permet juste d'afficher quelques lignes de texte. :)

Dans ces lignes, plusieurs éléments importants vous donneront des indications pour la suite, comme où envoyer le courrier électronique:

To: Debian Bug Tracking System <submit@bugs.debian.org>

L'adresse submit@bugs est l'adresse à laquelle les nouveaux rapports de bug sont envoyés. Bien entendu vous devrez utiliser un titre compréhensible et bien descriptif qui permettra au mainteneur du paquet de voir quel est le problème.

Ensuite, il y a un autre bloc qui commence avec Package::, où il y a une ligne Version: et une autre Severity:

  • Les lignes Package: et Version doivent être les premières de votre rapport de bug, dans le corps du message alors que vous avez l'habitude d'y écrire Cher ami,.

  • La ligne Severity est optionnelle, vous pouvez la laisser de côté s'il s'agit d'un rapport de bug normal.

Severity indique différents niveaux de sévérité depuis grave, critical, serious, à important, normal, ou minor ou encore whishlist.

Les trois premiers niveaux (grave, critical et serious) sont considérés comme critique pour la version et définissent un groupe spécial de rapports de bug. Dans le doute, il ne faut pas les utiliser à moins de comprendre vraiment leur signification: certaines personnes peuvent réagir vivement lorsqu'ils sont employés dans le cas d'un rapport qui ne serait pas vraiment si grave. Je vous indiquerai la signification de ces rapports spéciaux un peu plus tard.

wishlist est le niveau de sévérité pour les demandes d'amélioration que vous voudriez voir intégrées au paquet. Certains mainteneurs vous suggéreront probablement de faire ces demandes dans le projet originel. Soyez préparé à cette réaction, même si personnellement, je considère qu'un mainteneur de paquet doit être un lien entre les utilisateurs Debian et les développeurs amont.

Enfin, essayez d'être le plus descriptif possible non seulement dans le titre du bug mais également dans le message du rapport. Il serait également appréciable si vous pouviez indiquer une méthode permettant de reproduire votre bug.

A propos de la création de rapports de bug, vous pouvez également consulter la documentation sur http://www.debian.org/Bugs/Reporting.

Modifier les rapports de bug: control@bugs.debian.org

Pour modifier les rapports de bug, vous devez utiliser l'adresse control@bugs.debian.org. L'intégralité du système de suivi de bug est ouvert à tous, comme cette adresse électronique. Cela signifie que techniquement tout le monde peut modifier un rapport de bug. L'adresse de contrôle est le début de l'aventure. Elle fonctionne comme l'adresse d'envoi sur les premières lignes du rapport de bug.

La documentation de l'adresse électronique de contrôle est située sur http://www.debian.org/Bugs/server-control.

La syntaxe est généralement la suivante:

 commande numéro_de_bug arguments

La quantité d'arguments varie selon la commande employée.

Ainsi, avec la commande retitle:

retitle 12345 nouveau-titre

vous modifiez le titre du rapport de bug 12345 en nouveau-titre.

N'ayez crainte, vous ne pouvez pas réaliser cette opération pour ce numéro de bug car il est archivé. Vous pouvez seulement agir sur les rapports de bug qui ne sont pas encore archivés.

Une commande souvent utilisée est la commande reassign qui permet d'indiquer que le rapport de bug concerne un paquet différent. Cette commande utilise un deuxième argument après le nom du paquet: un numéro de version. Si vous connaissez le numéro de version de l'autre paquet concerné par le bug, il est utile et important d'ajouter la version pour permettre au suivi de version de continuer à fonctionner. J'expliquerai le suivi des version un peu plus tard et je vous montrerai quelques cas d'utilisation. :)

La commande tag améliore la classification des bugs. Lorsque vous crééz un rapport de bug, vous pouvez également ajouter des Tags (étiquettes) aux pseudo en-têtes de votre message et affecter des étiquettes spécifiquement à un rapport de bug.

Voici quelques étiquettes qui sont souvent employées:

  • patch: lorsque vous joignez une correction au problème dans votre message.

  • moreinfo et unreproducible: lorsque les mainteneurs du paquet ne comprennent pas clairement le problème.

  • security: lorsque le bug concerne une faille de sécurité ou y ressemble.

La liste des étiquettes peut être consultée sur http://www.debian.org/Bugs/Developer#tags.

Les courriers à destination de l'adresse de contrôle sont stockés dans le BTS mais ne sont pas renvoyés ailleurs. Ainsi, ces messages sont souvent accompagnés d'un champ Cc vers bugnumber@bugs.debian.org. Ces courriers sont alors envoyés vers le mainteneur de paquet (ainsi qu'aux autres personnes abonnées à cette adresse).

Si vous voulez vous abonner à un rapport de bug en particulier, envoyez simplement un courrier électronique à bugnumber-subscribe@bugs.debian.org. Vous recevrez un email de confirmation à la suite de laquelle, vous recevrez tous les messages envoyés à ce rapport de bug. Vous pouvez également souscrire à tous les rapports de bug d'un paquet en utilisant le PTS (Package Tracking System ou Système de Suivi de Paquets en français) en allant sur http://packages.qa.debian.org/nom_du_paquet (remplacer nom_du_paquet par le paquet auquel vous désirez vous abonner). En bas à gauche, vous trouverez le formulatire d'inscription.

Si les utilisateurs envoyent des courriers à la fois à control@bugs et à bugnumber@bugs, ils ne veulent pas déranger ou mettre en échec le programme de contrôle avec le texte à destination du mainteneur de paquet. La commande spéciale thanks que vous avez peut-être remarquée après les commandes de contrôle indique au programme de contrôle d'arrêter de traiter le message à partir de là. Merci de vous soucier de ce programme et d'utiliser thanks pour terminer vos messages de contrôle. :)

Merci de prendre note que j'ai toujours dit que les courriers envoyés à bugnumber@bugs sont envoyés au mainteneur du paquet (et aux personnes qui y sont abonnées). Ces courriers ne sont PAS envoyés à la personne qui a créé le rapport de bug ! C'est quelque-chose qui est en discussion et qui va peut-être changer. Toutefois, pour l'instant, vous devez penser à rechercher l'adresse du créateur du rapport et à l'ajouter en copie ou bien vous devez utiliser l'adresse email: bugnumber-submitter@bugs.debian.org.

Suivi de version

Qu'est-ce-que le suivi de version ?

Le BTS conserve la trace de la version d'un paquet dans laquelle un bug a été corrigé, quelle version de Debian il affecte. C'est pourquoi la pseudo en-tête Version: dans la création du rapport est très importante. Dans le cas contraire, le BTS pourrait croire que le bug touche toutes les versions du paquet.

C'est également ici où je reviens vers le groupe spécial de bug: les bugs critiques pour la publication (release) que j'ai mentionné plus haut. Les rapports de bugs peuvent être archivés après 28 jours s'ils remplissent certaines conditions: en général, d'être corrigés dans unstable et dans testing.

Bien entendu, s'ils touchent toutes les version de Debian, ils sont également concernés par les architectures de Debian. Un rapport de bug qui touche uniquement unstable mais pas testing (à cause de la version concernée) peut être archivé tout de suite.

Ainsi, les distributions concernées forment un critère, les architectures touchées, un autre. Si ces deux critères sont gérés et corrigés, le décompte du temps est lancé.

Les rapports de bugs peuvent être fermés selon plusieurs méthodes. La plus courante est par le versement d'un paquet contenant un message closes: #12345 dans le changelog. Lorsque le paquet est accepté dans l'archive Debian, un courrier électronique est envoyé à 12345-done@bugs.debian.org avec Version: 1.2.3 dans la première ligne du message. Cela peut évidemment être déclenché manuellement si un courrier est envoyé à numéro_de_bug-done@bugs avec une en-tête Version: qui indique également que le bug a été corrigé dans cette version.

Si le rapport de bug est un faux problème (comme, un faux rapport), alors la ligne Version: ne doit PAS être ajoutée au courrier.

Cette différence est nécéssaire pour que le BTS puisse distinguer les bugs corrigés pour une version donnée et les bugs qui n'en sont pas vraiment.

The later will start right ahead with the 28 day period. The former will only start when the package in that version is in sync in unstable on all architectures and also in testing (if the bug affects testing).

Je n'ai pas encore touché un mot sur les rapports de bug critiques pour la publication qui sont envoyés ici et là.

Les rapports de bug critiques pour la publication devront AUSSI être corrigés pour la version stable avant de commencer le processus d'archivage. Ainsi, même si un rapport de bug critique pour la publication est fermé dans unstable, qu'il a migré dans testing et qu'il est synchronisé dans toutes les architctures, il ne sera PAS archivé tant que le suivi de version pensera qu'il affecte la version stable de Debian.

L'interface Web du BTS dispose d'une fonctionnalité très utile pour tout cela: le graphe de version. Vous les avez sans doute déjà remarqué dans quelques rapports de bug, ils sont situés en haut à droite. Ils contiennent plusieurs boîtes: des rouges arrondies et des vertes rectangulaires. Les boîtes vertes sont les version corrigées, les rouges sont les versions touchées.

Comme indiqué plus haut, n'hésitez pas à cliquer partout, y compris sur les graphes de version. Cela vous permettra de mieux les comprendre. ;)

Exemple 1

Jetons un coup d'oeil à un graphe de bug simple:

Aperçu d'un rapport de bug pour le bug #598227 avant la tenue de ce tutoriel

Ce graphe est vraiment simple, il peut y en avoir de très complexes avec de nombreuses branches. Vous pouvez voir en haut la boîte verte et également les version de Debian (testing, unstable) qui y sont mentionnées. Sur la gauche, vous pouvez lire la sévérité: grave. Comme mentionné plus haut, nous sommes en présence d'un bug critique pour la publication. C'est la raison pour laquelle il n'est pas encore archivé.

En lisant le rapport de bug, on voit qu'il affecte la version stable de manière non justifiée: icedove 3 n'est pas dans stable et donc ce rapport n'a pas une sévérité grave pour cette version de Debian. Mais étant donné qu'on ne peut affecter de sévérité à la version de publication, l'étiquette mentionnée précédemment peut maintenant intervenir.

Il existe en effet des étiquettes pour les distributions. Lors de mon travail sur la réduction du nombre de bugs critiques pour la publication stable, je suis tombé sur de nombreux bugs comme celui-ci. J'ai donc étiqueté ce rapport comme suit:

 tag 598274 + squeeze sid

ce qui infique qu'il ne concerne pas Lenny.

Si un rapport de bug dispose d'une étiquette de version, le BTS le considère comme touchant uniquement les versions mentionnées. Si vous disposez d'un MTA local et que vous avez renseigné la variable d'environnement DEBEMAIL comme je l'ai fait, il existe un outil très utile dans le paquet devscripts: il s'appelle bts (et devinez à quoi il sert ?).

bts est un client en ligne de commande pour le BTS et me permet d'envoyer juste un simple courrier pour corriger le problème grâce à la commande:

bts tag 598274 + squeeze sid  '# not relevant for stable'

Ainsi, lorsqu'on poursuit la lecture du rapport de bug, il semble que la version corrigée 0.7.3-3 soit fausse et qu'elle doit être supprimée:

bts notfound 598274 0.7.3-3

Dans la pratique, ces commandes peuvent être chaînées et combinées, en les séparant avec des points.

C'est très utile lorsqu'on veut réaliser plusieurs opérations en une seule, en produisant un seul courrier au lieu de plusieurs.

Si vous rechargez la page du rapport de bug vous verrez que les étiquettes ont été déjà modifiées. N'y-a-t-il rien d'autre qui a changé ? Bien sûr, quelquechose a changé: si vous cliquez sur icedove-bibiui en haut pour consulter la page récapitulative des bugs de ce paquet et que vous cliquez sur la partie [G|u|☺] dans le résumé du bug, vous constaterez que le bug peut être archivé dans 28 jours ! Hourra, nous venons de supprimer un bug critique pour la publication de la version stable, ici et maintenant :)

Exemple 2

Jetons un coup d'oeil à ce bug:

aperçu d'une page web du rapport de bug #606327 avant le déroulement de ce tutoriel