7. Fanions

Les fanions permettent d'attribuer un statut spécifique à un bogue ou une pièce jointe, aussi bien « + » que « - ». La signification de ces symboles dépend du texte du fanion lui-même, mais selon le contexte ils peuvent signifier passe/échoue, accepter/refuser, approuvé/refusé, ou même un simple oui/non. Si votre site autorise les fanions de requêtes, les utilisateurs peuvent attribuer au fanion la valeur « ? » de manière à en faire une requête auprès d'un autre utilisateur pour pouvoir regarder le bogue/pièce jointe, et donner au fanion son statut correct.

7.1. Exemple simple

Un développeur peut avoir envie de demander à sa hiérarchie : « Devrions nous corriger ce bogue avant de sortir la version 2.0 ? ». Ils peuvent avoir envie de le faire pour de nombreux bogues, et donc ce serait bien de rationaliser le procédé...

Avec Bugzilla, cela marcherait ainsi :

  1. L'administrateur de Bugzilla crée un type de fanion appelé « blocking2.0 » qui révèle tous les bogues de votre produit.

    Sur l'écran « Trouver bug », ce fanion affiche le texte « blocking2.0 » avec une zone déroulante à côté. La zone déroulante contient 4 valeurs : un espace vide, « ? », « - », et « + ».

  2. Le développeur attribue au fanion la valeur « ? ».

  3. Le directeur voit le fanion blocking2.0 à la valeur « ? » value.

  4. Si le directeur pense que le dispositif devrait être inclus dans le produit avant la sortie de la version 2.0, il attribue au fanion la valeur « + ». Sinon il lui attribue « - ».

  5. Maintenant, chaque utilisateur de Bugzilla qui voit le bogue sait si le bogue a besoin ou pas d'être corrigé avant la sortie de la version 2.0.

7.2. À propos des fanions

7.2.1. Valeurs

Les fanions peuvent prendre 3 valeurs :

?
Un utilisateur demande qu'un statut soit donné (considérez le comme « une question est posée »).
-
Le statut donné est négatif (on a répondu « non » à la question).
+
Le statut donné est positif (on a répondu « oui » à la question).

En fait, il existe une quatrième valeur possible du fanion : « aucun statut » ; celle-ci est représentée par un espace vide. Cela veut juste dire que personne n'a exprimé d'opinion (ou demandé à quelqu'un d'autre d'exprimer une opinion) à propos de ce bogue ou de la requête par pièce jointe.

7.3. Utilisation des requêtes par fanions

Si un fanion a été déclaré comme étant fanion « de requête », les utilisateurs sont autorisés à attribuer au fanion le statut « ? ». Ce statut indique que quelqu'un (alias « le demandeur ») demande à quelqu'un d'autre d'attribuer « + » ou « - ».

Si un fanion a été défini comme « fanion de requête particulière », une zone de texte apparaîtra à côté du fanion dans laquelle le demandeur peut entrer un nom d'utilisateur Bugzilla. La personne mentionnée (alias « le demandé ») recevra un courriel l'avertissant de la requête et renvoyant celle-ci vers le bogue ou la pièce jointe en question.

Si un fanion n'a pas été défini « fanion de requête particulière », aucune zone de ce genre n'apparaîtra. Une requête pour marquer ce fanion ne peut pas être faite à une personne en particulier, mais doit être demandée « à la cantonade ». Un demandeur peut « demander à la cantonade » pour n'importe quel fanion simplement en laissant la zone de texte vide.

7.4. Deux types de fanions

Les fanions peuvent se mettre à deux endroits : dans une pièce jointe, ou dans un bogue.

7.4.1. Fanions de pièce jointe

Les fanions de pièce jointe sont utilisés pour poser une question sur une pièce jointe particulière à un bogue.

Plusieurs installations Bugzilla s'en servent pour demander à un développeur « d'examiner » [« review »] le code d'un autre développeur avant de le valider. Ils joignent le code à un rapport de bogue, puis lui attribue un fanion nommé « review » à review?boss@domain.com. boss@domain.com est alors averti par courriel qu'il doit vérifier la pièce jointe et l'approuver ou la refuser.

Pour un utilisateur Bugzilla, les fanions de pièce jointe apparaissent à deux endroits :

  1. Sur la liste des pièces jointes sur l'écran « montrer un bogue » [« Show bug »], on peut voir l'état actuel de tous les fanions affectés de ?, +, ou -. On peut voir qui a demandé le fanion (le demandeur), et qui a été sollicité (le demandé).

  2. Quand vous « modifiez » une pièce jointe, on peut voir les fanions qui n'ont pas encore de valeur, ainsi que ceux qui en ont déjà une. C'est sur l'écran « éditer une pièce jointe » que l'on met ou que l'on enlève ?, -, +.

7.4.2. Fanions de bogue

Les fanions de bogue sont utilisés pour attribuer un statut au bogue lui-même. On peut voir les fanions de bogue sur l'écran « Show Bug » (editbug.cgi).

Seuls les utilisateurs ayant le droit d'éditer le bogue peuvent attribuer des valeurs aux fanions qui sont sur des bogues. Cela inclut le propriétaire, celui qui signale les bogues, et tout utilisateur ayant la permission editbugs.

7.5. Administration des fanions

Si vous avez le privilège « editcomponents », vous aurez « Edit: ... | Flags | ... » en bas de page. En cliquant sur ce lien vous pourrez accéder à la page « Administrer des types de fanions ». Ici, vous pouvez choisir si vous voulez créer (ou éditer) un fanion de bogue, ou un fanion de pièce jointe.

Peu importe celui que vous choisissez, l'interface est la même, donc nous ne l'aborderons qu'une fois.

7.5.1. Créer un fanion

Quand vous cliquez sur le lien « Create a Flag Type for... », il vous sera présenté un formulaire. Voici la signification des champs du formulaire :

7.5.1.1. Nom

C'est le nom du fanion. Il s'affichera pour les utilisateurs Bugzilla qui sont en train de regarder ou de configurer un fanion. Le nom peut contenir n'importe quel caractère Unicode valide.

7.5.1.2. Description

Donne plus de précisions sur le fanion. Pour le moment, cela n'a pas l'air d'être très utile; idéalement, ce serait bien que ce soit affiché comme aide. Ce champ peut être aussi long que vous le désirez, et peut contenir autant de caractères que vous voulez.

7.5.1.3. Catégorie

Le comportement par défaut pour un fanion fraîchement créé est d'apparaître sur les produits et tous les composants, c'est pourquoi « __Any__:__Any__ » est déjà présent dans le champ « Inclusions ». Si ce n'est pas ce comportement que vous souhaitez, vous pouvez également configurer des exclusions (pour les produits sur lesquels vous ne voulez pas que le fanion apparaisse), ou bien vous devez enlever « __Any__:__Any__ » du champ Inclusion et définir les produits/composants spécialement pour ce fanion.

Pour créer une Inclusion, sélectionnez un produit à partir du menu déroulant du haut. Vous pourrez également sélectionner un composant donné à partir de ce menu déroulant. (La configuration « __Any__ » pour les produits se traduit par « tous les produits de ce Bugzilla ». Choisir « __Any__ » dans le champ Composants veut dire « tous les composants du produit sélectionné ».) Une fois les sélections faites, appuyer sur « Include », et l'appariement de votre produit/composant sera visible dans le champ « Inclusions » sur la droite.

Pour créer une Exclusion, la procédure est la même; choisissez un produit à partir du menu déroulant du haut, choisissez un composant donné si vous en voulez un, et appuyez sur « Exclude ». L'appariement de votre produit/composant sera visible dans le champ « Exclusions » sur la droite.

Ce fanion devra et peut être configuré pour n'importe quel produit/composant apparaissant dans le champ « Inclusions » (ou qui dépend du « __Any__ » approprié). Ce fanion n'apparaîtra (et donc ne pourra être configuré) sur aucun des produits apparaissant dans le champ « Exclusions ». IMPORTANT : les Exclusions prévalent sur les Inclusions.

Vous pouvez choisir un produit sans sélectionner un composant particulier, mais choisir un composant sans produit est contraire à la règle, de même que choisir un composant qui n'appartient pas au produit évoqué. Si vous le faites, vous obtiendrez une erreur, comme on l'indique dans ce texte (2.18rc3)... même si tous vos produits possèdent un composant du même nom.

Exemple : disons que vous avez un produit appelé « Avion » qui contient des centaines de composants. Vous voulez avoir la possibilité de demander si un problème sera corrigé dans le prochain modèle d'avion que vous sortirez. Nous appellerons ce fanion « corrigerDansSuivant ». Cependant, il y a un composant dans « Jet », appelé « Pilote ». Il ne vous sert à rien de sortir un nouveau pilote, donc vous ne voulez pas que le fanion soit visible pour ce composant. Donc, vous incluez « Jet :__Any__ » et vous excluez « Jet :Pilote ».

7.5.1.4. Clé de tri

Les fanions sont normalement visibles dans l'ordre alphabétique. Si vous voulez les afficher dans un ordre différent vous pouvez utiliser ce champ pour configurer l'ordre sur chaque fanion. Les fanions ayant une clé de tri inférieur apparaîtront avant les fanions à clés de tris supérieur. Les fanions ayant le même critère seront rangés alphabétiquement mais ils seront toujours après les fanions à clés de tri inférieur et avant ceux à clés supérieur.

Exemple : j'ai AFanion (critère de tri 100), BFanion (critère de tri 10), CFanion (critère de tri 10), et DFanion (critère de tri 1). Ceux-ci s'affichent dans cet ordre : DFanion, CFanion, BFanion, AFanion.

7.5.1.5. Actif

Il vous arrivera de vouloir conserver les informations de l'ancien fanion dans la base de données Bugzilla, tout en empêchant les utilisateurs d'initialiser de nouveaux fanions de ce genre. Pour ce faire, dé-sélectionnez « active ». Les fanions désactivés seront toujours visibles dans l'interface s'ils sont ?, +, ou -, mais ils peuvent seulement être effacés (non initialisés), et ne peuvent pas avoir de nouvelles valeurs. Une fois que le fanion désactivé est supprimé, il disparaîtra complètement du bogue/pièce jointe, et ne pourra plus être reconfiguré.

7.5.1.6. Fanions de requête

Les nouveaux fanions sont, par défaut, des fanions « de requête », ce qui signifie qu'ils offrent aux utilisateurs l'option « ? », ainsi que « + » et « - ». Pour supprimer l'option ? , dé-sélectionnez « requestable ».

7.5.1.7. Liste CC

Si vous voulez que certains utilisateurs soient avertis à chaque fois qu'un fanion est initialisé à ?,-,+, ou non initialisé, ajoutez les ici. Il s'agit d'une liste d'adresses électroniques, séparées par des virgules, qu'il n'est pas nécessaire de restreindre aux noms d'utilisateurs Bugzilla.

7.5.1.8. Fanions de requêtes spécifiques

Par défaut cette case est cochée pour les nouveaux fanions, ce qui signifie que chaque utilisateur peut faire des requêtes de fanions destinées à des personnes en particulier. Décocher cette boîte supprimera le champ de texte à côté du fanion; s'il demeure fanion de requête, les demandes ne peuvent être faites qu' « à la cantonnade ». Le supprimer après que des demandes spécifiques aient été faites ne supprimera pas ces demandes; ces données vont rester dans la base de données (bien que cela n'apparaîtra plus aux utilisateurs).

7.5.1.9. Multipliable

Tout fanion initialisé sur « Multipliable » (par défaut pour les nouveaux fanions) peut être configuré plus d'une fois. Après avoir été initialisé une fois, un fanion non initialisé du même type apparaîtra en dessous de lui avec « addl. » (abréviation de « additional ») sous son nom. Il n'y a pas de limite au nombre de fois qu'un fanion Multipliable peut être initialisé sur le même bogue/pièce jointe.

7.5.2. Supprimer un fanion

Sur le boîte de dialogue « Administrer les types de fanions », vous verrez une liste de fanions de bogues et une liste de fanions de pièces jointes.

Pour supprimer un fanion, cliquez sur le lien « Delete » à côté de la description du fanion.

[Avertissement]Avertissement

Une fois que vous avez supprimé un fanion, il n'est plus dans votre Bugzilla. Toutes les données de ce fanion seront supprimées. Il disparaîtra de tous les endroits où il était installé, et vous ne pourrez pas récupérer les données. Si vous voulez garder les données d'un fanion, mais ne voulez pas que n'importe qui configure de nouveaux fanions ou modifie les fanions courants, dé-sélectionnez « active » dans le formulaire d'édition des fanions.

7.5.3. Éditer un fanion

Pour éditer les propriétés d'un fanion, il suffit de cliquer sur le lien « Edit » à côté de la description du fanion. Cela vous ramènera au formulaire décrit dans la partie « Créer un fanion ».