Le guide de Bugzilla - version 4.4.7 L'équipe Bugzilla 2015-01-21 Résumé Ceci est la documentation pour Bugzilla, un système de suivi de bogues de mozilla.org. Bugzilla est un logiciel taillé pour l'entreprise qui permet de suivre des millions de bogues et de problèmes et adopté par des centaines d'organisations dans le monde. La version la plus à jour de ce document est disponible sur la page de documentation de Bugzilla. Table des matières 1. À propos de ce guide 1.1. Information sur le copyright 1.2. Avis de non-responsabilité 1.3. Nouvelles versions 1.4. Contributeurs 1.5. Conventions du document 2. Installer Bugzilla 2.1. Installation 2.1.1. Perl 2.1.2. Moteur de base de données 2.1.3. Serveur Web 2.1.4. Bugzilla 2.1.5. Modules Perl 2.1.6. Mail Transfer Agent (MTA) 2.1.7. Installer Bugzilla avec mod_perl 2.2. Configuration 2.2.1. localconfig 2.2.2. Serveur de base de données 2.2.3. checksetup.pl 2.2.4. Le serveur Web 2.2.5. Bugzilla 2.3. Configuration optionnelle supplémentaire 2.3.1. Graphiques de bogues 2.3.2. Les notifications programmées 2.3.3. Notifications 2.3.4. Servir des formats alternatifs avec le bon type MIME 2.4. Plusieurs bases de données Bugzilla dans une seule installation 2.5. Notes d'installation spécifiques aux systèmes d'exploitation 2.5.1. Microsoft Windows 2.5.2. Mac OS X™ 2.5.3. Distributions GNU Linux/BSD 2.6. Notes d'installation Unix (non-root) 2.6.1. Introduction 2.6.2. MySQL 2.6.3. Perl 2.6.4. Modules Perl 2.6.5. Le serveur HTTP 2.6.6. Bugzilla 2.7. Mettre à jour vers de nouvelles versions 2.7.1. Avant de mettre à jour 2.7.2. Obtenir la nouvelle version de Bugzilla 2.7.3. Terminer la mise à jour 2.7.4. Notifications automatiques pour les nouvelles versions 3. Administrer Bugzilla 3.1. Configuration de Bugzilla 3.1.1. Paramètres requis 3.1.2. Politiques d'administration 3.1.3. Authentification utilisateur 3.1.4. Fichiers joints 3.1.5. Politique de modification des bogues 3.1.6. Champs des bogues 3.1.7. Déplacement de bogue 3.1.8. Graphiques de dépendances 3.1.9. Restrictions de groupe 3.1.10. LDAP 3.1.11. Authentification RADIUS 3.1.12. Courriel 3.1.13. Visionneuse de correctif 3.1.14. Options par défaut des requêtes 3.1.15. Base de données esclave 3.1.16. Correspondance d'utilisateur 3.2. Administrer les utilisateurs 3.2.1. Créer l'utilisateur par défaut 3.2.2. Gérer les autres utilisateurs 3.3. Catégories 3.4. Produits 3.4.1. Créer de nouveaux produits 3.4.2. Modifier des produits 3.4.3. Ajouter ou modifier les composants, versions et jalons cibles 3.4.4. Affecter des restrictions de groupes à des produits 3.5. Composants 3.6. Versions 3.7. Jalons 3.8. Étiquettes 3.8.1. Un simple exemple 3.8.2. À propos des étiquettes 3.8.3. Utiliser les demandes d'étiquettes 3.8.4. Deux types d'étiquettes 3.8.5. Gérer les étiquettes 3.9. Keywords 3.10. Champs personnalisés 3.10.1. Ajouter des champs personnalisés 3.10.2. Modifier les champs personnalisés 3.10.3. Supprimer des champs personnalisés 3.11. Valeurs autorisées 3.11.1. Voir/Modifier les valeurs autorisées 3.11.2. Supprimer des valeurs autorisées 3.12. Worflow des états de bogue 3.13. Voter 3.14. Citations 3.15. Groupes et restrictions de groupes 3.15.1. Créer des groupes 3.15.2. Modification de groupes et affectation de restrictions 3.15.3. Affecter des utilisateurs aux groupes 3.15.4. Affecter des restrictions de groupes à des produits 3.16. Vérifier et maintenir l'intégrité de la base de données 4. La sécurité dans Bugzilla 4.1. Système d'exploitation 4.1.1. Ports TCP/IP 4.1.2. Comptes utilisateur système 4.1.3. La prison chroot 4.2. Serveur Web 4.2.1. Désactiver l'accès à distance aux fichiers de configuration de Configuration 4.3. Bugzilla 4.3.1. Prevent users injecting malicious Javascript 5. Utilisation de Bugzilla 5.1. Introduction 5.2. Création d'un compte Bugzilla 5.3. Anatomie d'un bogue 5.4. Cycle de vie d'un bogue 5.5. Recherche de bogues 5.5.1. Tableaux booléens 5.5.2. Recherche d'un bogue spécifique 5.5.3. Sensibilité à la casse dans les recherches 5.5.4. Listes des bogues 5.5.5. Ajout/suppression de marqueurs 5.6. Rapporter des bogues 5.6.1. Rapporter un nouveau bogue 5.6.2. Clônage d'un bogue existant 5.7. Fichiers joints 5.7.1. Visionneuse de fichiers 5.8. Trucs et astuces 5.8.1. Hyperlien automatique 5.8.2. Commentaires 5.8.3. Formatage des commentaires du côté du serveur 5.8.4. Arbre de dépendance 5.9. Informations d'horodatage 5.10. Préférences utilisateur 5.10.1. Préférences générales 5.10.2. Préférences de messagerie 5.10.3. Recherches enregistrées 5.10.4. Préférences du compte 5.10.5. Permissions 5.11. Rapports et graphiques 5.11.1. Rapports 5.11.2. Graphiques 5.12. Étiquettes 5.13. Notifications 5.13.1. Évènement 5.13.2. Programmation des notifications 5.13.3. Requêtes de notifications 5.13.4. Enregistrement des modifications 6. Personnaliser Bugzilla 6.1. Extensions Bugzilla 6.2. Thèmes personnalisés 6.3. Personnaliser des modèles 6.3.1. Struvture de répertoires des modèlesTemplate 6.3.2. Choisir une méthode de personnalisation 6.3.3. Comment modifier les modèles 6.3.4. Types et formats de modèles 6.3.5. Modèles particuliers 6.3.6. Configurer Bugzilla pour détecter la langue de l'utilisateur 6.4. Personnaliser qui peut changer quoi 6.5. Intégration de Bugzilla avec des outils tiers A. Dépannage A.1. Notice générale A.2. Le serveur Apache n'affiche pas les pages de Bugzilla A.3. J'ai installé un module Perl mais checksetup.pl dit qu'il n'est pas installé ! A.4. DBD::Sponge::db prepare failed A.5. cannot chdir(/var/spool/mqueue) A.6. Tout le monde est obligé de se reconnecter constamment A.7. index.cgi n'apparaît pas à moins de le spécifier dans l'URL A.8. « checksetup.pl » signale « Client does not support authentication protocol requested by server… » B. Contrib B.1. Interface de recherche en ligne de commande B.2. Outil en ligne de commande « Envoyer les courriels de bogues en attente » C. Manuel d'installation des modules Perl C.1. Instructions C.2. Liens de téléchargement C.3. Modules optionnels D. GNU Free Documentation License D.0. Preamble D.1. Applicability and Definition D.2. Verbatim Copying D.3. Copying in Quantity D.4. Modifications D.5. Combining Documents D.6. Collections of Documents D.7. Aggregation with Independent Works D.8. Translation D.9. Termination D.10. Future Revisions of this License D.. How to use this License for your documents Glossaire Liste des illustrations 5.1. Cycle de vie d'un bogue Bugzilla Liste des exemples A.1. Exemples de paires « urlbase »/« cookiepath » partageant les cookies de connexion A.2. Exemples de paires « urlbase »/« cookiepath » pour limiter les cookies de connexion Chapitre 1. À propos de ce guide Table des matières 1.1. 1.2. 1.3. 1.4. 1.5. Information sur le copyright Avis de non-responsabilité Nouvelles versions Contributeurs Conventions du document 1.1. Information sur le copyright Ce document est sous copyright © 2000-2015 de ses divers contributeurs Bugzilla qui l'ont écrit. Seule la version anglaise du texte de licence a valeur officielle, la traduction est donnée ici à titre informatif. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in Annexe D, GNU Free Documentation License. Traduction : « Vous pouvez copier, distribuer et/ou modifier ce document sous les termes de la GNU Free Documentation License, Version 1.1 ou toute version ultérieure publiée par la Free Software Foundation ; sans sections invariantes, sans texte de couverture ni texte de plat verso. Une copie de la licence se trouve dans Annexe D, GNU Free Documentation License. » If you have any questions regarding this document, its copyright, or publishing this document in non-electronic form, please contact the Bugzilla Team. Traduction : « Si vous avez des questions concernant ce document, son copyright ou la publication sous forme non-électronique, veuillez contacter l'équipe de Bugzilla. » 1.2. Avis de non-responsabilité No liability for the contents of this document can be accepted. Follow the instructions herein at your own risk. This document may contain errors and inaccuracies that may damage your system, cause your partner to leave you, your boss to fire you, your cats to pee on your furniture and clothing, and global thermonuclear war. Proceed with caution. Traduction : « Aucune responsabilité sur le contenu de ce document ne saurait être assumée. Suivez les informations ci-jointes à vos risques et périls. Ce document peut contenir des erreurs et des imprécisions qui peuvent endommager votre système, provoquer le départ de votre partenaire, vous faire virer par votre chef, faire uriner vos chats sur vos meubles et vos vêtements et provoquer une guerre thermonucléaire. Procéder avec précaution. » Naming of particular products or brands should not be seen as endorsements, with the exception of the term "GNU/Linux". We wholeheartedly endorse the use of GNU/Linux; it is an extremely versatile, stable, and robust operating system that offers an ideal operating environment for Bugzilla. Traduction : « Les citations de produits ou de marques particuliers ne doivent pas être pris pour des témoignages publicitaires, à l'exception du terme “GNU/Linux”. Nous approuvons de tout coœur l'utilisation de GNU/Linux ; c'est un système d'exploitation extrêmement plyvalent, stable et robuste offrant un environnement d'exploitation idéal pour Bugzilla. » Although the Bugzilla development team has taken great care to ensure that all exploitable bugs have been fixed, security holes surely exist in any piece of code. Great care should be taken both in the installation and usage of this software. The Bugzilla development team members assume no liability for your use of Bugzilla. You have the source code, and are responsible for auditing it yourself to ensure your security needs are met. Traduction : « Bien que l'équipe de développement de Bugzilla ait pris grand soin de s'assurer que tous les bogues de sécurité aient été corrigés, des trous de sécurité existent sûrement quelque part dans le code. Un grand soin doit être apporté à l'installation et à l'utilisation de ce logiciel. L'équipe de développement de Bugzilla n'assume aucune responsabilité pour votre utilisation de Bugzilla. Vous disposez du code source et vous êtes responsable de son inspection pour vous assurer que vos besoins en sécurité sont atteints. » 1.3. Nouvelles versions C'est la version 4.4.7 du guide de Bugzilla. Il est ainsi numéroté pour correspondre au numéro de version de Bugzilla. La dernière version de ce guide est toujours disponible sur http://www.bugzilla.org/docs/. Cependant, vous devriez lire la version fournie avec la version de Bugzilla que vous utilisez. De plus, il y a des projets de localisation des modèles de Bugzilla dans différentes langues. Il peut y avoir de la documentation traduite disponible. Si vous voulez vous porter volontaire pour traduire le guide dans d'autres langues, veuillez visiter la page Bugzilla L10n team. 1.4. Contributeurs Les personnes listées ci-dessous ont fait d'énormes contributions pour la création de ce guide, par leur écriture, les efforts de codage dédiés, de nombreux courriels et sessions d'aide sur IRC, et généralement une excellente contribution à la communauté Bugzilla : Matthew P. Barnson <mbarnson@sisna.com> pour la tâche herculéenne de rassemblement des documents du guide Bugzilla et pour l'avoir mené à sa version 2.14. Terry Weissman <terry@mozilla.org> pour avoir initialement écrit Bugzilla et créer le fichier README sur lequel la documentation d'installation Unix est largement basée. Tara Hernandez <tara@tequilarists.org> pour avoir maintenu le rythme de développement après le départ de Terry de mozilla.org et pour maintenir landfill. Dave Lawrence <dkl@redhat.com> pour avoir fourni son expertise sur les différences essentielles avec la version personnalisée de Bugzilla de Red Hat. Dawn Endico <endico@mozilla.org> pour être un hacker extraordinaire et répondre aux incessants arguments et questions de Matthew sur irc.mozilla.org sur le canal #mozwebtools Jacob Steenhagen <jake@bugzilla.org> pour s'être occupé de la documentation pendant la période de développement de la version 2.17. Dave Miller <justdave@bugzilla.org> pour avoir pris la tête du projet quand Tara a levé le pied et pour pousser continuellement pour avoir la documentation la meilleure possible. Merci aussi aux personnes suivantes pour leurs contributions significatives à cette documentation : Kevin Brannen, Vlad Dascalu, Ben FrantzDale, Eric Hanson, Zach Lipton, Gervase Markham, Andrew Pearson, Joe Robins, Spencer Smith, Ron Teitelbaum, Shane Travis, Martin Wulffeld. Des remerciements sont nécessaires aussi pour les membres de la liste de diffusion mozilla.support.bugzilla (et son prédécesseur, netscape.public.mozilla.webtools). Sans vos discussions, points de vue, suggestions et correctifs, ceci n'aurait jamais pu arriver. 1.5. Conventions du document Ce document utilise les conventions suivantes : Ceci est une mise en garde. Assurez-vous de lire ceci pour ne pas avoir de problèmes ! Ceci est une astuce, généralement sur des paramètres de configuration. Ceci est une note, pour votre information. Ceci est un avertissement, auquel vous devriez prêter attention. Un nom de fichier ou un chemin de nom de fichier est affiché comme ceci : /chemin/vers/nom_de_fichier.ext Une commande à saisir dans un shell est affichée comme ceci : commande --arguments bash$ représente l'invite de commande d'un utilisateur normal dans le shell Bash bash# représente l'invite de commande d'un utilisateur root dans le shell Bash Un mot présent dans le glossaire apparaît comme ceci : Bugzilla Un échantillon de code est affiché comme ceci : Première ligne de code Deuxième ligne de code … Cette documentation est maintenue en format XML DocBook 4.2. Les modifications sont plus claires lorsqu'elles sont soumises sous forme de diff de fichiers texte ou XML, joint à un bogue créé dans le composant Bugzilla Documentation. Chapitre 2. Installer Bugzilla Table des matières 2.1. Installation 2.1.1. Perl 2.1.2. Moteur de base de données 2.1.3. Serveur Web 2.1.4. Bugzilla 2.1.5. Modules Perl 2.1.6. Mail Transfer Agent (MTA) 2.1.7. Installer Bugzilla avec mod_perl 2.2. Configuration 2.2.1. localconfig 2.2.2. Serveur de base de données 2.2.3. checksetup.pl 2.2.4. Le serveur Web 2.2.5. Bugzilla 2.3. Configuration optionnelle supplémentaire 2.3.1. Graphiques de bogues 2.3.2. Les notifications programmées 2.3.3. Notifications 2.3.4. Servir des formats alternatifs avec le bon type MIME 2.4. Plusieurs bases de données Bugzilla dans une seule installation 2.5. Notes d'installation spécifiques aux systèmes d'exploitation 2.5.1. Microsoft Windows 2.5.2. Mac OS X™ 2.5.3. Distributions GNU Linux/BSD 2.6. Notes d'installation Unix (non-root) 2.6.1. Introduction 2.6.2. MySQL 2.6.3. Perl 2.6.4. Modules Perl 2.6.5. Le serveur HTTP 2.6.6. Bugzilla 2.7. Mettre à jour vers de nouvelles versions 2.7.1. Avant de mettre à jour 2.7.2. Obtenir la nouvelle version de Bugzilla 2.7.3. Terminer la mise à jour 2.7.4. Notifications automatiques pour les nouvelles versions 2.1. Installation Si vous voulez juste utiliser Bugzilla, vous n'avez pas besoin de l'installer. Aucun de ces chapitres ne vous concerne. Demandez à votre administrateur Bugzilla l'URL pour y accéder par avec votre navigateur Web. Le logiciel serveur Bugzilla est habituellement installé sur GNU/Linux ou Solaris. Si vous l'installez sur un autre système d'exploitation, vérifiez Section 2.5, « Notes d'installation spécifiques aux systèmes d'exploitation » avant de commencer votre installation pour voir s'il n'y a pas des instructions particulières. Ce guide suppose que vous avez un accès administrateur à la machine Bugzilla. Il n'est pas possible d'installer et d'exécuter Bugzilla sans accès administrateur, excepté dans la très improbable éventualité où tous les prérequis seraient déjà déjà installés. Le processus d'installation peut rendre votre machine non-sûre pendant quelques courtes périodes. Assurez-vous qu'il y a un pare-feu entre vous et le réseau Internet. Il est fortement recommandé de faire une sauvegarde de votre système avant d'installer Bugzilla (et à intervalles réguliers après cela :-). Dans les grandes lignes, l'installation se déroule ainsi : 1. Installation de Perl (5.8.1 ou supérieur) 2. Installation d'un moteur de base de données 3. Installation d'un serveur Web 4. Installation de Bugzilla 5. Installation des modules Perl 6. Installation d'un agent de transfert de courrier (MTA) (Sendmail 8.7 ou supérieur ou un MTA compatible avec Sendmail de cette version au moins) 7. Configuration de tous les éléments ci-dessus. 2.1.1. Perl Test de la version installée : perl -v Toute machine n'ayant pas Perl installé est une machine bien triste. Si vous ne l'avez pas et que votre système d'exploitation ne fournit pas de paquets officiels, visitez http://www.perl.org. Bien que Bugzilla fonctionne avec Perl 5.8.1, c'est une bonne idée que d'utiliser la dernière version stable. 2.1.2. Moteur de base de données Bugzilla gère les serveurs de bases de données MySQL, PostgreSQL et Oracle. Vous n'avez besoin que d'un seul de ces moteurs de base de données pour faire fonctionner Bugzilla. 2.1.2.1. MySQL Test de la version installée : mysql -V Si vous ne l'avez pas et que votre système d'exploitation ne fournit pas de paquets officiels, visitez http://www.mysql.com. Vous avez besoin de MySQL version 5.0.15 ou supérieur. Beaucoup de versions bianires de MySQL stockent leurs fichiers de données dans le répertoire /var. Sur certains systèmes Unix, ce répertoire fait partie d'une plus petite partition « root », et peut ne pas avoir assez de place pour votre base de données de bogues. Pour changer le répertoire des données, vous devez compiler MySQL à partir des sources vous-même, et le définir comme option pour configure. Si vous installez à partir d'autre chose qu'un des systèmes d'installation/empaquet suivants : « .rpm » (paquet RPM), « .deb » (paquet Debian), « .exe » (exécutable Windows) ou « .msi » (Microsoft Installer), assurez-vous que le serveur MySQL soit lancé au démarrage de la machine. 2.1.2.2. PostgreSQL Test de la version installée : psql -V Si vous ne l'avez pas et si votre système d'exploitation ne fournit pas de paquets officiels, visitez http://www.postgresql.org/. Vous avez besoin de PostgreSQL version 8.03.0000 ou supérieur. Si vous installez à partir d'autre chose qu'un des systèmes d'installation/empaquet suivants : « .rpm » (paquet RPM), « .deb » (paquet Debian), « .exe » (exécutable Windows) ou « .msi » (Microsoft Installer), assurez-vous que le serveur PostGreSQL soit lancé au démarrage de la machine. 2.1.2.3. Oracle Test de la version installée : select * from v$version (vous devez d'abord vous connectez à votre base de données) Si vous ne l'avez pas ou que votre système d'exploitation ne fournit pas de paquets officiels, visitez http://www.oracle.com/. Vous devez avoir Oracle version 10.02.0 ou supérieure. Si vous installez à partir de quelque chose d'autre qu'un paquet/installation système, comme un .rpm (paquet RPM), un .deb (paquet Debian), un .exe (exécutable Windows), ou un .msi (Microsoft Installer), assurez-vous que le serveur Oracle est démarré au lancement de la machine. 2.1.3. Serveur Web Test de la version installée : Consultez la page d'accueil par défaut sur http://<votre-machine>/ Vous avez la liberté de choix ici, pratiquement n'importe quel serveur capable d'exécuter des scripts CGI fonctionnera. Cependant, nous vous recommandons fortement d'utiliser un serveur Apache (version 1.3.x ou 2.x), et les instructions d'installation supposent généralement que vous utilisez Apache. Si vous utilisez Bugzilla avec un autre serveur Web, veuillez partager vos expériences en rapportant un bogue dans http://bugzilla.mozilla.org/enter_bug.cgi? product=Bugzilla;component=Documentation. Si vous n'avez pas Apache et que votre système d'exploitation ne fournit pas de paquets officiels, visitez http://httpd.apache.org/. 2.1.4. Bugzilla Téléchargez une archive de Bugzilla (ou récupérez-le à partir de Bzr) et placez-le dans un répertoire approprié accessible par l'utilisateur par défaut du serveur Web (probablement « apache » ou « www »). Les meilleurs emplacements sont dans les répertoires de documents du serveur Web ou dans /usr/local avec un lien symbolique vers les répertoires de documents du serveur Web ou un alias dans la configuration du serveur Web. La distribution par défaut de Bugzilla n'est PAS conçue pour être placée dans un répertoire ScriptAlias cgi-bin. Ceci inclut tout répertoire configué en utilisant la directive d'Apache. Quand tous les fichiers sont dans un répertoire accessible par le serveur Web, rendez le répertoire accessible en écriture pour l'utilisateur de votre serveur Web. Ceci est une étape temporaire jusqu'à ce que vous exécutiez le script checksetup.pl qui verrouille votre installation. 2.1.5. Modules Perl Le processus d'installation de Bugzilla est basé sur un script appelé checksetup.pl. La première chose qu'il fait est de vérifier si vous avez les versions appropriées de tous les modules Perl requis. Le propos de cette section est de passer cette vérification. quand elle est passée, procédez à la Section 2.2, « Configuration ». À partir de ce point, vous devez faire la commande su - root. Vous devrez demeurer « root » jusqu'à la fin de l'installation. Pour vérifier que vous avez les modules requis, exécutez : bash# ./checksetup.pl --check-modules affichera une liste de tous les modules Perl requis et optionnels avec leur numéro de version (le cas échéant) installés sur votre machine. La liste des modules requis est plutôt longue ; cependant, vous devez déjà avoir plusieurs d'entre eux installés. checksetup.pl Il existe un méta-module appelé « Bundle::Bugzilla », qui installe tous les autres modules en une simple commande. Vous devriez utiliser ceci si vous exécutez Perl 5.6.1 ou supérieur. La manière à privilégier pour installer les modules Perl manquants est d'utiliser le gestionnaire de paquets fourni par votre système d'exploitation (par ex.« rpm » ou « yum » pour les ditributions GNU/Linux, ou « ppm » pour Windows si vous utilisez ActivePerl, consulter Section 2.5.1.2, « Modules Perl sur Win32 »). Si certains modules Perl sont toujours manquants ou sont trop vieux, nous vous recommandons alors d'utiliser le script install-module.pl (il ne fonctionne pas avec ActivePerl sous Windows). Si pour une raison ou une autre vous avez vraiment besoin d'installer les modules Perl manuellement, consulter Annexe C, Manuel d'installation des modules Perl. Par exemple, sous GNU/Linux, le script installmodule.pl est exécuté ainsi : bash# perl install-module.pl <modulename> Beaucoup de gens se plaignent que les modules Perl ne s'installent pas pour eux. La plupart du temps, les messages d'erreur indiquent un fichier manquant dans « @INC ». Pratiquement à chaque fois, cette erreur est due aux permissions qui sont trop restrictives pour compiler les modulesPerl ou à l'absence des bibliothèques de développement Perl installées sur votre système. Consultez votre administrateur système Unix local pour vous aider à résoudre ces problèmes de permissions ; si vous êtes l'administrateur système Unix local, veuillez consulter le forum ou la liste de discussion pour plus d'assistance ou engagez quelqu'un pour vous aider. Si vous utilisez un paquet fourni par votre système d'exploitation et que vous essayez d'installer les modules Perl à partir de CPAN, vous aurez peut-être besoin d'installer les paquets « développement » pour MySQL et GD avant d'essayer d'installer les modules Perl relatifs. Le nom de ces paquets varieront en fonction de la distribution que vous utilisez, mais ils sont souvent appelés <nom_paquet>-devel. Voici la liste complète des modules et leur version minimum. Certains modules ont des notes d'installation spéciales qui suivent cette liste. Modules Perl nécessaires : 1. CGI (3.51) 2. Date::Format (2.23) 3. DateTime (0.28) 4. DateTime::TimeZone (0.71) 5. DBI (1.614) 6. DBD::mysql (4.001) si utilisation de MySQL 7. DBD::Pg (2.7.0) si utilisation de PostgreSQL 8. DBD::Oracle (1.19) si utilisation de Oracle 9. Digest::SHA (any) 10.Email::Send (2.04) 11.Email::MIME (1.904) 12.Template (2.22) 13.URI (1.37) Modules Perl optionnels : 1. GD (1.20) pour les tableaux de bogues 2. Template::Plugin::GD::Image (any) pour les rapports graphiques 3. Chart::Lines (2.1.0) pour les tableaux de bogues 4. GD::Graph (any) pour les tableaux de bogues 5. GD::Text (any) pour les tableaux de bogues 6. XML::Twig (any) pour l'import et l'export des bogues 7. MIME::Parser (5.406) pour l'import et l'export des bogues 8. LWP::UserAgent (any) pour les notifications automatiques de mises à jour 9. PatchReader (0.9.6) pour un affichage HTML amélioré des correctifs 10.Net::LDAP (any) pour l'authentification LDAP 11.Authen::SASL (any) pour l'authentification SASL 12.Authen::Radius (any) pour l'authentification RADIUS 13.SOAP::Lite (0.712) pour l'interface de web service 14.JSON::RPC (any) pour l'interface JSON-RPC 15.Test::Taint (any) pour l'interface de web service 16.HTML::Parser (3.67) pour plus de HTML dans les descriptions des produits et groupes 17.HTML::Scrubber (any) pour plus de HTML dans les descriptions des produits et groupes 18.Email::Reply (any) pour les courriels sortants 19.TheSchwartz (1.07) pour les files d'attente de courriel 20.Daemon::Generic (any) pour les files d'attente de courriel 21.mod_perl2 (1.999022) pour mod_perl 2.1.6. Mail Transfer Agent (MTA) Bugzilla dépend de la disponibilité d'un système de messagerie pour son authentification utilisateur et d'autres tâches. Ce n'est pas entièrement vrai. Il est possiblede désactiver complètement l'envoi de courriels, ou de faire stocker à Bugzilla les courriels dans un fichier plutôt que de les envoyer. Cependant, c'est principalement destiné aux tests, car désactiver ou détourner des courriels sur une machine de production signifierait que les utilisateurs pourrait manquer d'importants événements (comme les changements sur les bogues et la création de nouveaux comptes). Pour plus d'informations, consultez le paramètre « mail_delivery_method » dans Section 3.1, « Configuration de Bugzilla ». Sous GNU/Linux, tout MTA (Mail Transfer Agent) compatible avec Sendmail suffira. Sendmail, Postfix, qmail et Exim sont des exemples de MTA courants. Sendmail est le MTA original d'Unix, mais les autres sont plus faciles à configurer et par conséquent, beaucoup de gens remplacent Sendmail par Postfix ou Exim. Ce sont des remplacements trasparents donc Bugzilla ne fera pas la différence. Si vous utilisez Sendmail, la version 8.7 ou supérieure est requise. Si vous utilisez un MTA compatible avec Sendmail, il doit être congruent avec au moins la version 8.7 de Sendmail. Consultez le manuel du MTA que vous avez choisi pour des instructions d'installation détaillées. Chacun de ces programmes a ses propres fichiers de configuration ou vous devez configurer certains paramètres pour vous assurer que les courriels seront distribués correctement. Ils sont mis en œuvres en tant que services et vous devez vous assurer que le MTA est dans la liste de démarrage automatiques des services de votre machine. Si un courrier envoyé avec le programme en ligne de commande mail réussit, alors Bugzilla devrait fonctionner correctement. 2.1.7. Installer Bugzilla avec mod_perl Il est maintenant possible d'exécuter Bugzilla dans mod_perl sur Apache. mod_perl a des prérequis supplémentaires autre que celui d'exécuter Bugzilla sous mod_cgi (la manière standard et précédente). Bugzilla nécessite que mod_perl soit installé, lequel peut être obtenu sur http://perl.apache.org - Bugzilla nécessite que la version 1.999022 (aussi connue comme 2.0.0-RC5) soit installée. 2.2. Configuration Des installations mal configurées de MySQL et Bugzilla ont permis de donner l'accès complet au système aux pirates dans le passé. Veuillez prendre au sérieux les recommandations sur la sécurité de ce guide, même pour des machines Bugzilla protégées derrière votre pare-feu. Assurez-vous de lire Chapitre 4, La sécurité dans Bugzilla pour ces conseils sur la sécurité importants. 2.2.1. localconfig Vous devez maintenant exécuter --check-modules. checksetup.pl à nouveau, cette fois sans l'argument bash# ./checksetup.pl Cette fois, checksetup.pl devrait vous dire que tous les modules appropriés sont installés et affichera un message à ce sujet, et générera un fichier de sortie appelé localconfig. Ce fichier contient les paramètres par défaut pour un grand nombre de paramètres de Bugzilla. Ouvrez ce fichier dans votre éditeur. Les deux seules valeurs que vous avez besoin de changer sont « $db_driver » et « $db_pass », respectivement le type de base de données et le mot de passe pour l'utilisateur qui créera pour vous la base de données. Choisissez un mot de passe compliqué (pour la simplicité, il ne dervait pas contenir d'apostrophe) et saisissez-le dans le fichier. « $db_driver » peut être 'mysql', 'Pg', 'oracle' ou 'SQLite'. Sous Oracle, $db_name devrait en fait être le nom du SID de votre base de données (par ex. « XE » si vous utilisez Oracle XE). Vous devrez peut-être changer la valeur de webservergroup si votre serveur Web ne s'exécute pas dans le groupe « apache ». Sur Debian, par exemple, Apache s'exécute dans le groupe « www-data ». Si vous allez exécuter Bugzilla sur une machine où vous n'avez pas l'accès « root » (comme sur un serveur Web partagé hébergé), vous aurez besoin de laisser webservergroup vide, en ignorant les avertissements que checksetup.pl affichera à chacune de ses exécutions. Si vous utilisez « suexec », vous devez utiliser votre propre groupe principal pour webservergroup plutôt que de le laisser vide, et consultez les autres directives dans la section suexec Section 2.6.6.1, « suexec ou hébergement partagé ». Les autres options du fichier localconfig sont documentés par les commentaires les accompagnant. Si vous avez une configuration légèrement non-standard, vous voudrez sans doute modifier un ou plusieurs autres paramètres « $db_* ». 2.2.2. Serveur de base de données Cette section traite de la configuration de votre serveur de base de données utilisé avec Bugzilla. Actuellement, MySQL (Section 2.2.2.2, « MySQL »), PostgreSQL (Section 2.2.2.3, « PostgreSQL »), Oracle (Section 2.2.2.4, « Oracle ») et SQLite (Section 2.2.2.5, « SQLite ») sont disponibles. 2.2.2.1. Schéma de la base de données de Bugzilla Le schéma de la base de données de Bugzilla est disponible est disponible sur Ravenbrook. Cet outil très utile peut générer une description écrite du schéma de la base de données de Bugzilla pour toute version de Bugzilla. Il peut aussi générer un diff entre deux versions pour aider quelqu'un à voir ce qui a changé. 2.2.2.2. MySQL La configuration par défaut de MySQL est peu sécurisée. Nous vous recommandons vivement d'exécuter mysql_secure_installation sous Linux ou l'installeur de MySQL sous Windows, et de suivre les instructions. Les points importants à noter sont : 1. Assurez-vous que le compte root a son mot de passe défini. 2. Ne créez pas de compte anonyme, et s'il en existe un, dites « oui » pour le supprimer. 3. Si votre serveur Web et le serveur MySQL sont sur la même machine, vous devriez désactiver l'accès par le réseau. 2.2.2.2.1. Autoriser les gros fichiers et plusieurs commentaires Par défaut, MySQL ne vous autorisera à insérer dans la base de données, que des objets plus petits que 1 Mo. Les fichiers joints peuvent être plus gros que cela. De même, Bugzilla concatène tous les commentaires d'un bogue dans un seul champ pour la recherche plein texte, et la somme de tous les commentaires d'un bogue sera vraisemblablement supérieure à 1 Mo. Pour changer ce paramètre par défaut de MySQL, vous devez modifier votre fichier de configuration MySQL, qui est habituellement /etc/my.cnf sous Linux. Nous vous recommandons d'autoriser au moins des packets de 4 Mo en ajoutant le paramètre max_allowed_packet dans votre fichier de configuration MySQL dans la section [mysqld], comme ceci : [mysqld] # Allow packets up to 4MB max_allowed_packet=4M 2.2.2.2.2. Autoriser les mots courts dans les index texte intégral Par défaut, les mots doivent avoir au moins quatre caractères afin d'être indéxés par les index texte intégral de MySQL. Ceci fait que beaucoup de mots clés spécifique peuvent être manqués, y compris « cc », « ftp » et « uri ». MySQL peut être configuré pour indexer ces mots en définissant le paramètre « ft_min_word_len » pour la taille minimale des mots à indexer. Ceci peut être fait en modifiant le fichier /etc/my.cnf comme l'indique l'exemple ci-dessous : [mysqld] # Allow small words in full-text indexes ft_min_word_len=2 La reconstruction des index peut être faite en suivant les indications de la documentation sur http://www.mysql.com/doc/fr/Fulltext_Fine-tuning.html. 2.2.2.2.3. Ajouter un utilisateur à MySQL Vous avez besoin d'ajouter un nouvel utilisateur à MySQL pour Bugzilla. (Il n'est pas sûr de faire utiliser par Bugzilla le compte « root » de MySQL). Les instructions suivantes supposent que vous utilisez les options par défaut dans localconfig ; si vous changez celles-ci, vous devez modifier la commande SQL en conséquence. Vous aurez besoin du mot de passe $db_pass que vous avez défini dans le fichier localconfig : Section 2.2.1, « localconfig ». Nous utilisons une commande SQL GRANT pour créer un utilisateur « bugs ». Ceci limite aussi l'utilisateur « bugs » aux opérations dans la base de données appelées « bugs » et ne permet à ce compte de se connecter qu'à partir de « localhost ». Modifiez-le pour refléter votre configuration si vous voulez vous connecter à partir d'une autre machine ou avec un utilisateur différent. Exécutez le client en ligne de commande mysql et saisissez : mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass'; mysql> FLUSH PRIVILEGES; 2.2.2.2.4. Autoriser la table des fichiers joints à dépasser les 4 Go Par défaut, MySQL limitera la table à 4 Go. Cette limite est présente même si le système d'exploitation sur lequel est exécuté MySQL n'a pas cette limite. Pour définir une limite plus haute, suivez ces instructions. Après avoir terminé le reste de l'installation (ou au moins les parties concernant la configuration de la base de données), vous devez exécuter le client en ligne de commande MySQL et saisir les commandes suivantes, en remplaçant $bugs_db avec votre nom de base de données (bugs par défaut) : mysql> use $bugs_db mysql> ALTER TABLE attachments AVG_ROW_LENGTH=1000000, MAX_ROWS=20000; La commande ci-dessus changera la limite à 20 Go. Mysql devra faire une copie temporaire de toute votre table pour faire ceci. Idéalement, vous devriez faire ceci quand la table des fichiers joint est encore petite. Ceci n'affecte pas le champ « Gros fichiers », les fichiers qui sont stockés directement sur disque au lieu de la base de données. 2.2.2.3. PostgreSQL 2.2.2.3.1. Ajouter un utilisateur à PostgreSQL Vous devez ajouter un nouvel utilisateur pour PostgreSQL pour que Bugzilla accède à la base de données. Les instructions suivantes supposent que vous utilisez les options par défaut dans localconfig ; si vous changez celles-ci, vous devrez modifier les commandes en conséquence. Vous devrez utiliser le mot de passe $db_pass que vous vaez défini dans localconfig : Section 2.2.1, « localconfig ». Sur la plupart des systèmes, pour créer l'utilisateur dans PostgreSQL, vous devrez vous connecter en tant qu'utilisateur « root » et saisir la commande bash# su - postgres en tant qu'utilisateur « postgres », vous devez créer un nouvel utilisateur : bash$ createuser -U postgres -dRSP bugs Quand un mot de passe vous sera demandé, fournissez le mot de passe qui sera défini pour $db_pass dans localconfig. L'utilisateur créé ne sera pas un super utilisateur (-S) et ne pourra pas créer de nouveaux utilisateurs (-R). Il aura seulement la possibilité de créer des bases de données (-d). Si vous utilisez PostgreSQL 8.0, vous devez remplacer -dRSP par -dAP. 2.2.2.3.2. Configurer PostgreSQL Maintenant, vous devez modifier le fichier pg_hba.conf qui se trouve habituellement dans le répertoire /var/lib/pgsql/data/. Dans ce fichier, vous devez ajouter une nouvelle ligne, comme indiqué ci-dessous : host all bugs 127.0.0.1 255.255.255.255 md5 Ceci signifie pour les connexions TCP/IP (hôte), de les autoriser pour « 127.0.0.1 » pour « all » (toutes) les bases de données de ce serveur pour l'utilisateur « bugs », et d'utiliser l'authentification de mot de passe (md5) pour cet utilisateur. Maintenant, vous devez redémarrer PostgreSQL, mais vous devrez arrêter complètement le serveur et le démarrer au lieu de seulement le redémarrer à cause de la possibilité d'un changement dans le fichier postgresql.conf. Après le redémarrage du serveur, vous devrez modifier le fichier localconfig, en cherchant la variable $db_driver et en la définissant à Pg et en changeant le mot de passe dans $db_pass pour celui que vous avez choisi précédemment, lors de la création du compte. 2.2.2.4. Oracle 2.2.2.4.1. Créer un nouveau tablespace Vous pouvez utiliser un tablespace existant ou en créer un nouveau pour Bugzilla. Pour créer un nouveau tablespace, exécutez la commande suivante : CREATE TABLESPACE bugs DATAFILE '$path_to_datafile' SIZE 500M AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED Ici, le nom du tablespace est 'bugs', mais vous pouvez choisir un autre nom. $path_to_datafile est le chemin d'accès au fichier contenant votre base de données, par exemple /u01/oradata/bugzilla.dbf. La taille initiale du fichier de base de données est défini dans cet exemple à 500 Mo, avec un incrément de 30 Mo chaque fois que la taille limite du fichier est atteinte. 2.2.2.4.2. Ajouter un utilisateur à Oracle Le nom d'utilisateur et le mot de passe doivent correspondre à ce que vous avez défini dans localconfig ($db_user et $db_pass, respectivement). Ici, nous supposons que l'utilisateur est 'bugs' et que le nom du tablespace est identique. CREATE USER bugs IDENTIFIED BY "$db_pass" DEFAULT TABLESPACE bugs TEMPORARY TABLESPACE TEMP PROFILE DEFAULT; -- GRANT/REVOKE ROLE PRIVILEGES GRANT CONNECT TO bugs; GRANT RESOURCE TO bugs; -- GRANT/REVOKE SYSTEM PRIVILEGES GRANT UNLIMITED TABLESPACE TO bugs; GRANT EXECUTE ON CTXSYS.CTX_DDL TO bugs; 2.2.2.4.3. Configurer le serveur Web Si vous utilisez Apache, ajoutez ces lignes au fichier httpd.conf pour définir les variables ORACLE_HOME et LD_LIBRARY_PATH. Par exemple : SetEnv ORACLE_HOME /u01/app/oracle/product/10.2.0/ SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/10.2.0/lib/ Quand ceci est fait, redémarrez votre serveur Web. 2.2.2.5. SQLite En raison des limitations de concurrence de SQLite, nous ne le recommandons que pour des petites installations de Bugzilla ou des installations de développement. Aucune configuration spéciale n'est requise pour exécuter Bugzilla avec SQLite. La base de données sera stockée dans data/db/$db_name, où $db_name est le nom de la base de données définie dans localconfig. 2.2.3. checksetup.pl Ensuite, ré-exécutez checksetup.pl. Il confirmera à nouveau que tous les modules sont présents et remarquera la modification du fichier localconfig, en supposant que vous l'avez modifié à votre convenance. Il compile ensuite les modèles de l'interface utilisateur, se connecte à la base de données en utilisant l'utilisateur « bugs » que vous avez créé et le mot de passe que vous avez défini et crée enfin la base de données « bugs » et les tables à l'intérieur. Après cela, il demande des détails sur le compte administrateur. Bugzilla peut avoir plusieurs administrateurs - vous pouvez en créer plus plus tard - mais il en a besoin d'un pour démarrer. Saisissez l'adresse électronique d'un administrateur, son nom complet, et un mot de passe approprié pour Bugzilla. se terminera alors. Vous pouvez relancer si vous le souhaitez. checksetup.pl checksetup.pl à tous moments 2.2.4. Le serveur Web Configurer votre serveur Web selon les instructions de la section appropriée. (Si cela peut faire une différence dans votre choix, l'équipe de Bugzilla recommande Apache). Pour vérifier si votre serveur Web est correctement configuré, essayez d'accéder à la page testagent.cgi à partir de votre serveur Web. Si « OK » est affiché, alors votre configuration est correcte. Peu importe le serveur Web que vous utilisez, assurez-vous que les informations sensibles ne sont pas accessibles à distance en appliquant des contrôles d'accès corrects dans Section 4.2.1, « Désactiver l'accès à distance aux fichiers de configuration de Configuration ». Vous pouvez exécuter testserver.pl pour vérifier si votre serveur Web sert les pages de Bugzilla comme prévu. 2.2.4.1. Bugzilla utilisant Apache vous avez deux options pour exécuter Bugzilla sur Apache : mod_cgi (par défaut) et mod_perl (nouveau à partir de Bugzilla 2.23) 2.2.4.1.1. Apache httpd™ avec mod_cgi Pour configurer votre serveur Web Apache pour fonctionner avec Bugzilla en utilisant mod_cgi, suivez les instructions suivantes : 1. Ouvrez le fichier httpd.conf dans votre éditeur. Sous Fedora et Red Hat Linux, ce fichier se trouve dans /etc/httpd/conf. 2. Apache utilise des directives <Directory> pour permettre des paramètrages de permissions granulaires. Ajoutez les lignes suivantes à une directive s'appliquant à l'emplacement de votre installation Bugzilla. (Si une telle section n'existait pas, vous devrez en ajouter une). Dans cet exemple, Bugzilla a été installé dans /var/www/html/bugzilla. <Directory /var/www/html/bugzilla> AddHandler cgi-script .cgi Options +ExecCGI DirectoryIndex index.cgi index.html AllowOverride Limit FileInfo Indexes Options </Directory> Ces instructions : autorisent Apache à exécuter les fichiers « .cgi » se trouvant dans le répertoire bugzilla ; indiquent au serveur de chercher un fichier appelé index.cgi, ou s'il n'est pas trouvé, index.html, si quelqu'un saisit seulement le nom du répertoire dans le navigateur ; et autorisent les fichiers .htaccess de Bugzilla à outrepasser quelques permissions globales. Il est possible de faire ces changements globalement ou sur la directive contrôlant le répertoire parent de Bugzilla (par ex. <Directory /var/www/html/>). De tels changements s'appliquent aussi au répertoire de Bugzilla directory… mais ils s'appliqueraient aussi à plein d'autres endroits où cela pourrait ne pas être approprié. Dans la plupart des cas, y compris celui-ci, il est mieux d'être aussi restrictif que possible lors de l'affectation de droits d'accès supplémentaires. Sous Windows, vous pourriez aussi avoir à ajouter la ligne ScriptInterpreterSource Registry-Strict, voir les notes spécifiques pour Windows. 3. peut définir des permissions plus réduites sur les fichiers et répertoires de Bugzilla s'il connaît le groupe dans lequel est exécuté le serveur Web. Cherchez la ligne Group dans le fichier httpd.conf, placez la valeur checksetup.pl trouvée ici dans la variable exécutez checksetup.pl. $webservergroup du fichier localconfig, puis, ré- 4. Optionnel : Si Bugzilla ne se trouve pas dans le répertoire de l'espace Web, mais a été lié symboliquement ici, vous devrez ajouter ce qui suit à la ligne Options de la directive <Directory> de Bugzilla (la même que dans l'étape précedente) : +FollowSymLinks Sans cette directive, Apache ne suivra pas les liens symboliques aux emplacements extérieurs à sa propre structure de répertoires et vous ne pourrez pas exécuter Bugzilla. 2.2.4.1.2. Apache httpd™ avec mod_perl Une certaine configuration est requise pour faire fonctionner Bugzilla avec Apache et mod_perl 1. Ouvrez httpd.conf dans votre éditeur. sous Fedora et Red Hat Linux, ce fichier se trouve dans /etc/httpd/conf. 2. Ajoutez les informations suivantes à votre fichier httpd.conf, en substituant où cela est approprié vos propres chemins d'accès locaux. Ceci doit être utilisé au lieu du bloc <Directory> indiqué plus haut. Ceci doit aussi être placé au-dessus de toute autre directive mod_perl dans le fichier httpd.conf et doit être spécifié dans l'ordre indiqué ci-dessous. Vous devez aussi vous assurer que vous avez désactivé la gestion de KeepAlive dans votre installation Apache en utilisant Bugzilla avec mod_perl PerlSwitches -w -T PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl 3. peut définir des permissions plus réduites sur les fichiers et répertoires de Bugzilla s'il connaît le groupe dans lequel est exécuté le serveur Web. Cherchez la ligne Group dans le fichier httpd.conf, placez la valeur trouvée ici dans la variable $webservergroup du fichier localconfig, puis, réexécutez checksetup.pl. checksetup.pl Au redémarrage d'Apache, Bugzilla devrait alors fonctionner en environnement mod_perl. Veuillez vous assurer d'avoir exécuté checksetup.pl pour définir les permissions avant de redémarrer Apache. Veuillez garder à l'esprit les points suivants quand vous cherchez à utiliser Bugzilla avec mod_perl : La gestion mod_perl dans Bugzilla peut consommer ÉNORMÉMENT de RAM. Vous pouvez compter facilement 30 Mo par processus httpd enfant. En gros, vous avez seulement besoin de beaucoup de RAM. Plus vous en aurez, mieux ce sera. mod_perl utilise basiquement la mémoire pour augmenter la vitesse de traitement. Il est recommandé d'avoir au moins 2 Go de RAM pour exécuter Bugzilla sous mod_perl. Sous mod_perl, vous devez redémarrer Apache si vous faites un chagement manuel sur tout fichier de Bugzilla. vous ne pouvez pas seulement recharger -- vous devez en fait redémarrer le serveur (être sûr qu'il soit arrêté puis démarré à nouveau) Vous pouvez modifier le fichier localconfig et le fichier des paramètres, si vous le voulez, car ceux-ci sont lus chaque fois que vous chargez une page. Vous devez exécuter « Prefork MPM » de Apache (c'est l'option par défaut). Le « Worker MPM » peut ne pas fonctionner -- nous n'avons pas testé Bugzilla sous mod_perl avec la gestion des threads. (Et en fait, nous sommes pratiquement sûrs que cela ne fonctionnera pas.) Bugzilla s'attend généralement à être la seule application fonctionnant sous mod_perl sur tout le serveur. Il peut ne pas fonctionner s'il y a d'autres applications fonctionnant aussi sous mod_perl. Il s'efforcera de cohabiter avec d'autres applications sous mod_perl, mais il pourra y avoir des conflits. Il est recommandé de n'avoir qu'une seule instance de Bugzilla fonctionnant sous mod_perl sur votre serveur. Bugzilla n'a pas été testé avec plus d'une instance. 2.2.4.2. Microsoft Internet Information Services™ Si vous voulez exécuter Bugzilla sur Windows et choisir d'utiliser Microsoft Internet Information Services™ ou Personal Web Server™ vous aurez besoin de réaliser d'autres étapes de configuration comme expliqué ci-dessous. Vous pouvez aussi vous référez aux articles de la base de connaissance de Microsoft : 245225 « HOW TO: Configure and Test a PERL Script with IIS 4.0, 5.0, and 5.1 » (pour Internet Information Services™) et 231998 « HOW TO: FP2000: How to Use Perl with Microsoft Personal Web Server on Windows 95/98 » (pour Personal Web Server™). Vous devrez créer un répertoire virtuel pour l'installation de Bugzilla. Mettez les fichiers Bugzilla dans un répertoire appelé autrement que le nom que vous voulez que vos utilisateurs voient. C'est-à-dire, si vous voulez que vos utilisateurs accèdent à votre installation Bugzilla par « http://<votre_nom_de_domaine>/Bugzilla », alors ne mettez pas vos fichiers Bugzilla dans un répertoire nommé « Bugzilla ». Au lieu de cela, placez les dans un emplacement différent et utilisez l'outil d'administration de IIS pour créer un répertoire virtuel nommé « Bugzilla » qui se comporte comme un alias pour l'emplacement réel des fichiers. Lors de la création du répertoire virtuel, assurez-vous d'ajouter les permissions « Exécuter les scripts ». Vous devrez aussi indiquer à IIS comment Bugzilla doit manipuler les fichiers « .cgi ». Utilisez à nouveau l'outil d'administration de IIS, ouvrez les propriétés du nouveau répertoire virtuel et sélectionnez l'option « Configuration » pour accéder à l'association de fichiers. Créez une entrée « .cgi » ainsi : <chemin d'accès complet à perl.exe >\perl.exe -x<chemin d'accès complet à Bugzilla> -wT "%s" %s Par exemple : c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s L'installation de ActiveState a peut-être déjà créé une entrée pour les fichiers « .pl » qui est limitée à « GET,HEAD,POST ». Si c'est le cas, cette association doit être retirée car les fichiers « .pl » de Bugzilla ne sont pas conçus pour être exécutés par un serveur Web. IIS devra aussi savoir que le fichier index.cgi doit être traité comme le document par défaut. Dans l'onglet « Documents » dans la page de propriétés du répertoire virtuel, vous devez ajouter « index.cgi » comme type de document par défaut. si vous le souhaitez, vous pouvez retirer les autres types de document pour ce répertoire virtuel particulier, puisque Bugzilla ne les utilise pas. Et aussi, nous ne le dirons jamais assez, assurez-vous que les fichiers tels que localconfig et votre répertoire data sont sécurisés comme indiqué dans Section 4.2.1, « Désactiver l'accès à distance aux fichiers de configuration de Configuration ». 2.2.5. Bugzilla Votre installation de Bugzilla devrait à présent fonctionner. Accédez à la page http://<votre-serveur-bugzilla>/ - vous devriez voir la page d'accueil de Bugzilla. Si ce n'est pas le cas, consultez la section « Dépannage », Annexe A, Dépannage. L'URL ci-dessus peut être incorrecte si vous avez installé Bugzilla dans un sousrépertoire ou utilisé un lien symbolique depuis la racine de votre site Web vers le répertoire de Bugzilla. Connectez-vous avec le compte administrateur que vous avez défini lors du dernier lancement de checksetup.pl. Rendez-vous sur la page des paramètres et regardez s'il y a des paramètres que vous souhaitez changer. Les paramètres clés sont documentés dans Section 3.1, « Configuration de Bugzilla » ; vous devriez certainement modifier les paramètres maintainer et urlbase ; vous pourriez aussi vouloir modifier les paramètres cookiepath ou requirelogin. Bugzilla comporte plusieurs fonctionnalités optionnelles qui nécessitent une configuration supplémentaire. Vous pouvez lire cela dans Section 2.3, « Configuration optionnelle supplémentaire ». 2.3. Configuration optionnelle supplémentaire Bugzilla a beaucoup de fonctionnalités optionnelles. Cette section décrit comment les configurer ou les activer. 2.3.1. Graphiques de bogues Si vous avez installé les modules Perl nécessaires, vous pouvez commencer à collecter les statistiques pour les graphiques de Bugzilla. bash# crontab -e Ceci devrait ouvrir le fichier crontab dans votre éditeur. Ajoutez une entrée « cron » comme celle-ci pour exécuter collectstats.pl quotidiennement à minuit cinq : 5 0 * * * cd <votre-repertoire-bugzilla> && ./collectstats.pl Après deux jours, vous pourrez consulter des graphiques de bogues à partir de la page « Rapports ». Windows ne dispose pas de l'outil « cron », mais il dispose des « Tâches programmées », qui accomplit les mêmes travaux. Il existe également des outils tiers qui peuvent être utilisés pour mettre en œuvre « cron », tel que nncron. 2.3.2. Les notifications programmées À quoi servent les bogues s'ils ne sont pas ennuyeux ? Pour qu'ils le soient plus, vous pouvez paramétrer le système de notifications automatique de Bugzilla pour rappeler aux ingénieurs leurs bogues qui sont dans l'état CONFIRMÉ et qu'ils n'ont pas triés. Ceci peut être réalisé en ajoutant la commande suivante dans le fichier crontab, de la même manière que pour les graphiques de bogue, expliqué ci-dessus. Cet exemple s'exécute quotidiennement à 12:55. 55 0 * * * cd <votre-repertoire-bugzilla> && ./whineatnews.pl Windows ne dispose pas de l'outil « cron », mais il dispose des « Tâches programmées », qui accomplit les mêmes travaux. Il existe également des outils tiers qui peuvent être utilisés pour mettre en œuvre « cron », tel que nncron. 2.3.3. Notifications À partir de Bugzilla 2.20, les utilisateurs peuvent configurer Bugzilla pour qu'il vienne les ennuyer à intervalles réguliers en faisant exécuter à Bugzilla des recherches enregistrées à certains moments et envoyer les résultats par courriels à l'utilisateur. Ceci s'appelle les « Notifications ». La manière de les configurer est décrite dans Section 5.13, « Notifications », et pour que cela fonctionne, un script Perl doit être exécuté à intervalles réguliers. Ceci peut être réalisé en ajoutant la commande suivante dans le fichier crontab, de la même manière que pour les graphiques de bogue, expliqué ci-dessus. Cet exemple s'exécute quotidiennement toutes les 15 minutes. */15 * * * * cd <votre-repertoire-bugzilla> && ./whine.pl Les notifications peuvent être exécutées toutes els 15 minutes, aussi, si vous spécifiez des intervalles plus longs pour l'exécution de whine.pl, certains utilisateurs peuvent ne pas être notifiés aussi souvent qu'ils le souhaiteraient. Selon les personnes, cela peut être une bonne chose ou une mauvaise chose. Windows ne dispose pas de l'outil « cron », mais il dispose des « Tâches programmées », qui accomplit les mêmes travaux. Il existe également des outils tiers qui peuvent être utilisés pour mettre en œuvre « cron », tel que nncron. 2.3.4. Servir des formats alternatifs avec le bon type MIME Certaines pages de Bugzilla ont des formats alternatifs, autre que le HTML intégral. En particulier, quelques pages de Bugzilla peuvent offrir leur contenu soit en XUL (un format spécial de Mozilla, qui ressemble à un programme GUI) ou RDF (un type de XML structuré qui peut être lu par divers programmes). Pour que vos utilisateurs voient ces pages correctement, Apache doit leur envoyer le bon type MIME. Pour faire cela, ajouter les lignes suivantes à votre fichier de configuration Apache, soit dans la section <VirtualHost> de votre Bugzilla soit dans la section <Directory> de votre Bugzilla : AddType application/vnd.mozilla.xul+xml .xul AddType application/rdf+xml .rdf 2.4. Plusieurs bases de données Bugzilla dans une seule installation Les instructions précédentes se référaient à une installation standard, avec une seule base de données Bugzilla. Cependant, vous pourriez vouloir héberger plusieurs installations distinctes, sans avoir plusieurs copies du code. Ceci est possible en utilisant la variable d'environnement « PROJECT ». Quand il est accédé, Bugzilla vérifie l'existence de cette variable, et si elle est présente, utilise sa valeur pour vérifier la présence d'un fichier de configuration alternatif appelé localconfig.<PROJECT> au même emplacement que celui par défaut (localconfig). Il vérifie aussi la présence de modèles personnalisés dans le répertoire nommé <PROJECT> au même emplacement que celui par défaut (template/<langcode>). Par défaut, c'est le répertoire template/en/default donc les modèles de « PROJECT » se trouveraient dans template/en/PROJECT. Pour définir une installation alternative, exporter la variable « PROJECT=toto » avant de lancer checksetup.pl pour la première fois. Il en résultera un fichier nommé localconfig.toto au lieu de localconfig. Modifiez ce fichier comme décrit plus haut, avec la référence à une nouvelle base de données, et relancez checksetup.pl pour la populer. C'est tout. Maintenant, vous devez paramétrer le serveur Web pour lui passer cette variable d'environnement quand il est accédé via une URL alternative, comme un hôte virtuel par exemple. Ce qui suit est un exemple de ce que vous pouvez faire avec Apache, cela peut différer pour les autres serveurs Web. <VirtualHost 212.85.153.228:80> ServerName toto.titi.tata SetEnv PROJECT toto Alias /bugzilla /var/www/bugzilla </VirtualHost> N'oubliez pas aussi d'exporter cette variable avant d'accéder à Bugzilla par d'autres voies, comme les tâches programmées de « cron » par exemple. 2.5. Notes d'installation spécifiques aux systèmes d'exploitation Plusieurs aspects de l'installation de Bugzilla peuvent être affectés par le système d'exploitation que vous avez choisi. C'est parfois plus facile et d'autres fois plus difficile. Cette section tentera de vous aider à commprendre les difficultés de fonctionnement sur des systèmes d'exploitation spécifiques et les utilitaires disponibles pour que ce soit plus facile. Si vous avez quelque chose à ajouter ou des notes pour un système d'exploitation non couvert par cette documentation, veuillez rapporter un bogue sur http://bugzilla.mozilla.org/enter_bug.cgi? product=Bugzilla;component=Documentation. 2.5.1. Microsoft Windows Faire fonctionner Bugzilla sur Windows est plus difficile que sur Unix. Pour cette raison, nous vous recommandons encore de le faire sur un systèmecompatible Unix tel que GNU/Linux. Ceci dit, si vous voulez vraiment faire fonctionner Bugzilla sur Windows, vous devrez faire les ajustements suivants. Un guide d'installation pour Windows étape par étape est également disponible si vous avez besoin de plus d'aide pour votre installation. 2.5.1.1. Win32 Perl Perl pour Windows peut être obtenu sur ActiveState. Vous devriez pouvoir trouver un binaire compilé sur http://aspn.activestate.com/ASPN/Downloads/ActivePerl/. Les intructions suivantes supposent que vous utilisez une version 5.8.1 de ActiveState. Ces instructions sont pour des versions 32-bits de Windows. Si vous utilisez une version 64-bits de Windows, vous aurez besoin d'installer Perl 32-bits pour installer les modules 32-bit comme décrit ci-dessous. 2.5.1.2. Modules Perl sur Win32 Bugzilla sur Windows nécessite les mêmes modules Perl que sur Section 2.1.5, « Modules Perl ». La différence principale est que Windows utilise PPM au lieu de « CPAN ». ActiveState fournit une interface graphique pour gérer les modules Perl. Nous vous recommandons fortement de l'utiliser. Si vous préférez utiliser ppm en ligne de commande, saisissez : C:\perl> ppm install <nom_du_module> Le référentiel PPM stocke les modules en « paquets » qui peuvent avoir un nom légèrement différent de celui du module. Si vous récupérez les modules d'ici, vous devrez prêter attention aux informations fournies lorsque vous exécutez checksetup.pl car il vous dira quel paquet vous aurez besoin d'installer. Si vous êtes derrière un pare-feu, vous devrez indiquer à l'utilitaire ActiveState PPM comment le passer pour accéder aux référentiels en définissant la variable d'environnement « HTTP_proxy ». Pour plus d'informations sur la définition de cette variable, consultez la documentation de ActiveState. 2.5.1.3. Servir les pages Web Comme c'est le cas pour les systèmes compatibles Unix, tout serveur Web doit être capable de faire fonctionner Bugzilla ; cependant, l'équipe de Bugzilla recommande l'utilisation d'Apache quand on lui demande. Peu importe le serveur Web que vous avez choisi, assurez-vous de lire les recommandations de sécurité dans Section 4.2.1, « Désactiver l'accès à distance aux fichiers de configuration de Configuration ». Vous pourrez trouver des informations sur la configurations de serveurs Web spécifiques dans Section 2.2.4, « Le serveur Web ». Le serveur Web cherche /usr/bin/perl pour invoquer Perl. Si vous utilisez Apache sur Windows, vous pouvez définir la directive ScriptInterpreterSource pour qu'Apache regarde au bon endroit. Insérez la ligne ScriptInterpreterSource Registry-Strict dans votre fichier httpd.conf et créez la clé de registre HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command avec la valeur C:\Perl\bin\perl.exe -T (adaptez le chemin si nécessaire). Quand ceci est fait, redémarrez Apache. 2.5.1.4. Envoyer des courriels Pour permettre à Bugzilla d'envoyer des courriels sur Windows, le serveur sur lequel s'exécute le code de Bugzilla doit pouvoir se connecter à un serveur SMTP ou être un serveur SMTP lui-même. 2.5.2. Mac OS X™ Faire fonctionner Bugzilla sur Mac OS X nécessite les ajustements suivants. 2.5.2.1. Sendmail Sur Mac OS X 10.3 et supérieur, Postfix est utilisé en tant que serveur de courriels intégré. Postfix fournit un exécutable qui imite suffisamment sendmail pour tromper Bugzilla, tant que Bugzilla peut le trouver. Bugzilla est capable de trouver le faux exécutable sendmail sans assistance. 2.5.2.2. Bibliothèques et modules Perl Modules pour Mac OS X Apple ne fournit pas la bibliothèque GD avec Mac OS X. Bugzilla en a besoin pour les graphiques de bogues. Vous pouvez utiliser MacPorts (http://www.macports.org/) ou Fink (http://sourceforge.net/projects/fink/), qui sont de nature semblable à l'installeur CPAN, mais installent les utilitaires GNU courants. Suivez les instructions pour paramétrer MacPorts ou Fink. Une fois installée, vous voudrez utiliser une de ces applications pour installer le paquet gd2. Fink vous demandera d'installer un certain nombre de dépendances, saisissez « y » et appuyez sur la touche « Entrée » pour installer toutes les dépendances puis vérifiez que cela fonctionne. vous serez alors en mesure d'utiliser CPAN pour installer le module Perl GD. Pour emêcher la création de conflits avec les logiciels installés par défaut par Apple, Fink crée sa propre arborescence de répertoires dans /sw où il installe la plupart des logiciels qu'il installe. Ceci signifie que les bibliothèques et en-têtes se trouveront dans /sw/lib et /sw/include au lieu de /usr/lib et /usr/include. Quand le script du module de configuration Perl demande où se trouve votre fichier libgd, assurez-vous d'indiquer /sw/lib. est aussi disponible via MacPorts ou Fink. Après avoir installé le paquet « expat », vous pourrez installer le module « XML::Parser » en utilisant CPAN. Si vous utilisez Fink, il faut faire attention. Contrairement aux versions récentes du module GD, XML::Parser ne demande pas l'emplacement des bibliothèques requises. Lors de l'utilisation de CPAN, vous devrez utiliser la séquence de commandes suivante : expat # perl -MCPAN -e'look XML::Parser' # perl Makefile.PL EXPATLIBPATH=/sw/lib EXPATINCPATH=/sw/include # make; make test; make install # exit La commande look téléchargera le module et engendrera un nouveau shell avec les fichiers extraits dans le répertoire courant. La commande exit vous renverra dans le shell d'origine. Vous devrez surveiller la sortie de ces commandes make, et particulièrement « make test » car des erreurs peuvent empêcher XML::Parser de fonctionner correctement avec Bugzilla. 2.5.3. Distributions GNU Linux/BSD Beaucoup de distributions GNU Linux/BSD incluent Bugzilla et ses dépendances dans leur système de gestion de paquets natif. Installer Bugzilla avec un accès « root » sur tout système GNU Linux/BSD devrait être aussi facile que de trouver le paquet Bugzilla dans l'application de gestion de paquet et de l'installer en utilisant la syntaxe de commande normale. Plusieurs distributions réalisent automatiquement la configuration correcte du serveur Web lors de l'installation. Veuillez consulter la documentation de votre distribution Linux pour des instructions sur la façon d'installer les paquets, ou pour des instructions spécifiques pour installer Bugzilla avec les outils de gestion de paquets natifs. Il existe également la page wiki de Bugzilla pour des notes d'installation spécifiques à certaines distributions. 2.6. Notes d'installation Unix (non-root) 2.6.1. Introduction Si vous utilisez un système d'exploitation *NIX en n'étant pas « root », soit par manque d'accès (serveurs Web, par exemple) soit pour raisons de sécurité, ceci détaillera comment installer Bugzilla sur ce type de configuration. Il est recommandé de lire la partie Section 2.1, « Installation » d'abord pour avoir une idée des étapes d'installation nécessaires. (Ces notes se référeront aux étapes de ce guide.) 2.6.2. MySQL Vous avez peut-être MySQL installé en tant que « root ». Si vous définissez un compte avec un hôte Web, un compte MySQL doit être créé pour vous. De là, vous pouvez créer le compte « bugs » ou utiliser le compte qui vous a été donné. Vous pouvez avoir des problèmes en définissant des permissions GRANT dans la base de données. Si vous utilisez un hôte Web, il y a des chances que vous ayez une base de données séparée qui est déjà verrouillée (ou une grosse base de données sans accès ou avec des accès limités sur d'autres zones), mais vous pouvez demander à votre administrateur système les paramètres de sécurité définis et/ou lui demander d'exécuter la commande GRANT pour vous. Vous pourriez aussi ne pas être en mesure de changer le mot de passe de l'utilisateur « root » de MySQL (pour des raisons évidentes), aussi, sautez cette étape. 2.6.2.1. Exécuter MySQL en n'étant pas « root » 2.6.2.1.1. La méthode de configuration personnalisée Créez un fichier comme suit… .my.cnf dans votre répertoire home (/home/foo dans cet exemple) [mysqld] datadir=/home/toto/mymysql socket=/home/toto/mymysql/thesock port=8081 [mysql] socket=/home/toto/mymysql/thesock port=8081 [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/home/toto/mymysql/the.log pid-file=/home/toto/mymysql/the.pid 2.6.2.1.2. La méthode de création personnalisée Vous pouvez installer MySQL zn n'étant pas « root », si vous en avez vraiment besoin. créez-le avec la variable « PREFIX » définié à /home/toto/mysql, ou utilisez des exécutables pré-installés en spécifiant que vous voulez mettre tous les fichiers de données dans /home/toto/mysql/data. S'il y a un autre serveur MySQL qui s'exécute sur le système qui ne vous appartient pas, utilisez l'option « -P » pour spécifier un port TCP qui n'est pas utilisé. 2.6.2.1.3. Démarrer le serveur Après avoir créé votre programme « mysqld » et votre fichier « .my.cnf », vous devez initialiser les bases de données (UNE FOIS). bash$ mysql_install_db Puis démarrez le démon avec bash$ safe_mysql & après avoir lancé « mysqld » la première fois, connectez vous en tant que « root » et donnez les permissions (GRANT) aux autres utilisateurs. (Le compte « root » de MySQL n'a rien à voir avec le compte « root » des systèmes *NIX). Vous devrez démarrer les démons vous-mêmes. Vous pouvez soit demander à votre administrateur système de les ajouter aux fichiers de démarrage du système, soit ajouter une entrée dans le fichier crontab qui exécute un script vérifiant que ces démons sont lancés et les redémarre si nécessaire. Ne lancez pas de démons ou autres services sur un serveur sans avoir d'abord consulter votre administrateur système ! Les démons utilisent des ressources système et en exécuter peut être en violation des conditions de service pour toute machine sur laquelle vous êtes utilisateur ! 2.6.3. Perl Dans le cas très rare où vous n'auriez pas Perl sur la machine, vous devrez construire les sources vous mêmes. Les commandes suivantes devraient installer sur votre système votre propre version de Perl : bash$ wget http://perl.org/CPAN/src/stable.tar.gz bash$ tar zvxf stable.tar.gz bash$ cd perl-5.8.1 (ou la version de Perl que vous avez) bash$ sh Configure -de -Dprefix=/home/toto/perl bash$ make && make test && make install Dès que vous avez installé Perl dans un répertoire (probablement dans ~/perl/bin), vous devrez installer les modules Perl comme détaillé plus bas dans cette page. 2.6.4. Modules Perl Installer les modules Perl sans être utilisateur « root » est réalisé en exécutant le script install-module.pl. Pour plus de détails sur ce script, consultez la documentation de install-module.pl. 2.6.5. Le serveur HTTP Idéalement, ceci nécessite aussi d'être installé avec l'utilisateur « root » et s'exécuter sous un compte spécial pour le serveur Web. Tant que le serveur autorise l'exécution des fichiers *.cgi en dehors de cgi-bin et refuser l'accès à certains fichiers (comme le fichier .htaccess), ça devrait aller. 2.6.5.1. Exécuter Apache sans être « root » Vous pouvez exécuter Apache sans être « root », mais le port devra être supérieur à 1024. Si vous saisissez la commande httpd -V, vous obtiendrez une liste des variables que votre copie système de httpd utilise. Une de celles-ci, « HTTPD_ROOT », vous indique où cette installation va rechercher ses informations de configuration. De là, vous pouvez copier les fichiers de configuration vers votre répertoire home pour les modifier. Quand vous éditez ceux-ci et que vous utilisez l'option « -d » pour outrepasser la valeur de la variable « HTTPD_ROOT » compilée dans votre serveur Web, vous prenez le contrôle de votre propre serveur Web personnalisé. Vous devrez démarrer les démons vous-mêmes. Vous pouvez soit demander à votre administrateur système de les ajouter aux fichiers de démarrage du système, soit ajouter une entrée dans le fichier crontab qui exécute un script vérifiant que ces démons sont lancés et les redémarre si nécessaire. Ne lancez pas de démons ou autres services sur un serveur sans avoir d'abord consulter votre administrateur système ! Les démons utilisent des ressources système et en exécuter peut être en violation des conditions de service pour toute machine sur laquelle vous êtes utilisateur ! 2.6.6. Bugzilla Quand vous exécutez ./checksetup.pl pour créer le fichier localconfig, il listera les modules Perl qu'il trouve. S'il en manque, revenez en arrière et revérifier l'installation du module depuis Section 2.6.4, « Modules Perl », puis supprimez le fichier localconfig et essayez à nouveau. L'option dans le fichier localconfig avec laquelle vous pourriez avoir des problèmes est le groupe du serveur Web. Si vous ne pouvez pas afficher la page index.cgi (une erreur d'accès refusé par exemple), vous aurez sans doute à relâcher vos permissions et à vider le groupe du serveur Web. Bien sûr, ceci peut poser des problèmes de sécurité. Avoir un shell correctement emprisonné et/ou un accès limité aux comptes du shell peut diminuer les risques de sécurité, mais utilisez ceci à vos risques et périls. 2.6.6.1. suexec ou hébergement partagé Si vous êtes sur un système qui utilise « suexec » (la plupart des environnements d'hébergement le font), vous aurez besoin de définir la valeur de webservergroup dans le fichier localconfig pour qu'elle corresponde à votre groupe principal, plutôt que celui avec lequel le serveur Web est exécuté. Vous devrez lancer les commandes suivantes après avoir exécuté ./checksetup.pl, chaque fois que vous le lancez (ou modifiez checksetup.pl pour qu'il le fasse pour vous grâce à la commande system()). for i in docs graphs images js skins; do find $i -type d -exec chmod o+rx {} \; ; done for i in jpg gif css js png html rdf xul; do find . -name \*.$i -exec chmod o+r {} \; ; done find . -name .htaccess -exec chmod o+r {} \; chmod o+x . data data/webdot Faites particulièrement attention au nombre de point-virgules et de points. Ils sont tous importants. Une prochaine version de Bugzilla sera, avec un peu de chance, capable de faire ceci pour vous automatiquement. 2.7. Mettre à jour vers de nouvelles versions Mettre à jour vers une nouvelle version de Bugzilla est très facile. Il y a un script checksetup.pl inclus dans Bugzilla qui fera automatiquement toute la migration de la base de données pour vous. Les sections suivantes expliquent comment mettre à jour d'une version Bugzilla à une autre. Que vous mettiez à jour d'une version corrective à une autre (comme par exemple de 4.2 à 4.2.1) ou d'une version majeure à une autre (comme par exemple de 4.0 à 4.2), les instructions sont toujours les mêmes. Les exemples des sections suivantes sont écrits pour un utilisateur faisant une mise à jour à partir d'une version 4.2.1, mais les procédures sont les mêmes quelle que soit la version. Également, dans les exemples, l'installation Bugzilla de l'utilisateur se trouve dans /var/www/html/bugzilla. Si ce n'est pas le même emplacement que pour votre installation, substituez simplement les chemins d'installation quand c'est approprié. 2.7.1. Avant de mettre à jour Avant de démarrer la mise à jour, il y a quelques étapes importantes à réaliser : 1. Lisez les Notes de version de la version vers laquelle vous allez mettre à jour, particulièrement la section « Comment migrer à partir d'une version précédente ». 2. Consultez la page de Contrôle d'intégrité (Section 3.16, « Vérifier et maintenir l'intégrité de la base de données ») de votre installation avant de mettre à jour. Essayez de corriger tous les avertissements produits sur cette page avant d'aller plus loin ou vous pourriez avoir des problèmes pendant la mise à jour. 3. Arrêter votre installation Bugzilla en ajoutant du texte ou du code HTML dans le paramètre « shutdownhtml » (voir Section 3.1, « Configuration de Bugzilla »). 4. Faites une sauvegarde de votre base de données Bugzilla. CECI EST TRÈS IMPORTANT. Si quelque chose se passe mal pendant la mise à jour, votre installation peut être corrompue et irrécupérable. Avoir une sauvegarde est une sécurité. La mise à jour ne fonctionne que dans un sens. Vous ne pouvez pas « descendre » d'une version de Bugzilla. Si vous voulez revenir à l'ancienne version de Bugzilla pour quelque raison que ce soit, vous devrez restaurer votre base de données à partir de cette sauvegarde. Voici quelques exemples de commandes que vous pourriez utiliser pour sauvegarder votre base de données, en fonction du système de gestion de base de données que vous utilisez. Vous pourriez avoir à modifier ces commandes en fonction de vos paramètres d'installation. MySQL : mysqldump --opt -u bugs -p bugs > bugs.sql PostgreSQL : pg_dump --no-privileges --no-owner -h localhost -U bugs > bugs.sql 2.7.2. Obtenir la nouvelle version de Bugzilla Il existe trois moyens d'obtenir la nouvelle version de Bugzilla. Nous allons les lister brièvement ici, puis nous les expliquerons plus en détail ensuite. Bzr (Section 2.7.2.2, « Mettre à jour en utilisant Bzr ») Si bzr est installé sur votre machine et que vous avez un accès à Internet, ceci est le moyen le plus facile pour mettre à jour, en particulier si vous avez fait des modifications dans le code ou les templates de Bugzilla. Télécharger l'archive (Section 2.7.2.3, « Mettre à jour en utilisant l'archive ») Ceci est un moyen très simple de mettre à jour, et bien si vous n'avez fait que peu (ou pas) de modifications dans le code ou dans les templates de Bugzilla. Correctifs (Section 2.7.2.4, « Mettre à jour en utilisant les correctifs ») Si vous avez des modifications dans votre installation Bugzilla et que vous n'avez pas d'accès à Internet ou que vous ne voulez pas utiliser cvs, alors ceci est le meilleur moyen de mise à jour. Vous ne pouvez faire que des mises à jour mineures (comme par exemple de 4.2 à 4.2.1 ou de 4.2.1 à 4.2.2) avec les correctifs. 2.7.2.1. Si vous avez modifié votre installation Bugzilla si vous avez modifié le code ou les templates de votre installation Bugzilla, alors la mise à jour nécessite un peu plus d'effort et de réflexion. Une discussion sur les diverses méthodes de mise à jour en fonction du degré et des méthodes de personnalisation locaux se trouve dans Section 6.3.2, « Choisir une méthode de personnalisation ». Plus l'écart de version est important, plus il sera difficile de mettre à jour si vous avez fait des personnalisations locales. Une mise à jour d'une version 4.2. vers une version 4.2.1 devrait se faire sans peine, même si vous avez fortement personnalisé votre installation. Mais passer d'une version 2.18 à une version 4.2 un gros travail de ré-écriture de vos changements locaux pour utiliser les nouveaux fichiers, logique, templates, etc. Si vous n'avez pas fait de changement locaux du tout cependant, alors la mise à jour devrait représenter approximativement la même quantité de travail, quelle que soit la version que vous utilisez actuellement. 2.7.2.2. Mettre à jour en utilisant Bzr Ceci nécessite que bzr soit installé (c'est le cas pour la plupart des machines Unix), et aussi que vous puissiez accéder à bzr.mozilla.org, ce qui peut ne pas être une option si vous n'avez pas d'accès à Internet. Ci-dessous, la séquence des commandes nécessaires pour mettre à jour une installation Bugzilla par Bzr, et les résultats typiques obtenus. En supposant que Bugzilla a déjà éé installé en utilisant Bzr. Si votre installation utilise encore CVS, vous devez d'abord la convertir vers Bzr. Une documentation très détaillée est disponible sur wiki.mozilla.org. bash$ cd /var/www/html/bugzilla bash$ bzr switch 4.2 (n'utilisez cette commande que si vous n'utilisez pas déjà la version 4.2) bash$ bzr up -r tag:bugzilla-4.2.1 +N extensions/MoreBugUrl/ +N extensions/MoreBugUrl/Config.pm +N extensions/MoreBugUrl/Extension.pm … M Bugzilla/Attachment.pm M Bugzilla/Attachment/PatchReader.pm M Bugzilla/Bug.pm … All changes applied successfully. Si une ligne de résultat de bzr update mentionne un conflit, cela représente alors un fichier avec des changements locaux que Bzr n'est pas capable de fusionner correctement. Vous devez résoudre manuellement ces conflits avant que Bugzilla (ou tout au moins la portion utilisant ce fichier) ne soit utilisable. 2.7.2.3. Mettre à jour en utilisant l'archive Si vous ne pouvez (ou ne voulez) pas utiliser Bzr, une autre option est toujours disponible pour obtenir la dernière archive à partir de la Page de téléchargements pour créer une nouvelle installation de Bugzilla à partir de celle-ci. Cette séquence de commandes montre comment obtenir l'archive en ligne de commande ; il est aussi possible de la télécharger à partir du site directement dans le navigateur. Si vous procédez ainsi, enregistrez le fichier dans le répertoire /var/www/html (ou son équivalent, si vous utilisez autre chose) et passez les trois premières lignes de l'exemple. bash$ cd /var/www/html bash$ wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.2.1.tar.gz (Affichage des résultats omis) bash$ tar xzvf bugzilla-4.2.1.tar.gz bugzilla-4.2.1/ bugzilla-4.2.1/colchange.cgi (Affichage des résultats tronqué) bash$ cd bugzilla-4.2.1 bash$ cp ../bugzilla/localconfig* . bash$ cp -r ../bugzilla/data . bash$ cd .. bash$ mv bugzilla bugzilla.old bash$ mv bugzilla-4.2.1 bugzilla Les commandes cp se terminent toutes deux avec un point (« . »), ce qui est un détail important (cela signifie que le répertoire de destination est le répertoire de travail courant). Si vous avez des extensions installées, vous devrez aussi les copier dans le nouveau répertoire bugzilla. Les extensions sont situées dans bugzilla/extensions/. Ne copiez que celles que vous avez installées, pas celles gérées par l'équipe de Bugzilla. Cette méthode de mise à jour vous donnera une installation propre de Bugzilla. Ce qui est très bien si vous n'avez pas de personnalisations locales que vous voulez maintenir. Si vous avez des personnalisations, vous devrez alors les réappliquer manuellement dans les fichiers appropriés. 2.7.2.4. Mettre à jour en utilisant les correctifs Un correctif est un ensemble de corrections de bogues qui ont été faites depuis la version mineure précédente. Si vous faites une mise à jour par correctif (c'est-à-dire, où seule le dernier numéro de révsion change, comme par exemple de 4.2 à 4.2.1), alors vous pouvez obtenir et appliquer le fichier correctif à partir de la Page de téléchargements. Comme précédemment, cet exemple commence par l'obtention du fichier en ligne de commande. Si vous l'avez déjà téléchargé, vous pouvez passer les deux premières commandes. bash$ cd /var/www/html/bugzilla bash$ wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.2-to-4.2.1.diff.gz (Affichage des résultats omis) bash$ gunzip bugzilla-4.2-to-4.2.1.diff.gz bash$ patch -p1 < bugzilla-4.2-to-4.2.1.diff patching file Bugzilla/Constants.pm patching file enter_bug.cgi (etc.) Soyez conscient que la mise à jour à partir d'un fichier correctif ne change pas les entrées dans votre répertoire .bzr. Ceci pourrait rendre plus difficile une mise à jour en utilisant Bzr (Section 2.7.2.2, « Mettre à jour en utilisant Bzr ») dans le futur. 2.7.3. Terminer la mise à jour Maintenant que vous avez le nouveau code de Bugzilla, il reste quelques étapes à accomplir pour terminer votre mise à jour. 1. Si votre nouvelle installation Bugzilla est dans un répertoire différent ou sur une machine différente de celle de votre ancienne installation Bugzilla, assurez-vous d'avoir copié le répertoire data et le fichier localconfig de votre ancienne installation Bugzilla. (Si vous avez suivi les instructions d'installation via l'archive ci-dessus, c'est déjà fait). 2. S'il s'agit d'une mise à jour majeure, vérifiez que la configuration (Section 2.2, « Configuration ») pour votre nouvelle installation de Bugzilla est à jour. Quelquefois, les prérequis de configuration changent entre une version majeure et une autre. 3. Si vous ne l'avez pas fait dans l'étape de configuration ci-dessus, vous devez maintenant exécuter checksetup.pl, qui fera tout ce qui est nécessaire pour convertir votre base de données existante et les paramètres pour la nouvelle version : bash$ cd /var/www/html/bugzilla bash$ ./checksetup.pl Le point (« . ») au début de la commande ./checksetup.pl est important et ne peut pas être omis. S'il s'agit d'une mise à jour majeure (disons de 3.6 à 4.2 ou similaire), l'exécution de checksetup.pl sur une grosse installation (75 000 bogues ou plus) peut prendre un long moment, parfois plusieurs heures. 4. Effacez tout texte ou code HTML saisi dans le paramètre « shutdownhtml » pour ré-activer Bugzilla. 5. Consultez la page (Section 3.16, « Vérifier et maintenir l'intégrité de la base de données ») Contrôle d'intégrité dans votre installation de Bugzilla mise à jour. Il est recommandé, dans la mesure du possible, de corriger immédiatement tout problème que vous voyez. Ne pas le faire peut signifier que Bugzilla ne fonctionnera pas correctement. Veuillez noter que si la page de contrôle d'intégrité contient plus d'erreurs après une mise à jour, cela ne veut pas nécessairement dire qu'il y a plus d'erreurs dans votre base de données qu'auparavant, car des tests additionnels sont ajoutés au contrôle d'intégrité avec le temps et il est possible que ces erreurs nétaient pas vérifiées dans la version précédente. 2.7.4. Notifications automatiques pour les nouvelles versions Bugzilla 3.0 a introduit la possibilité de notifier automatiquement les administrateurs lorsque de nouvelles versions sont disponibles, en fonction du paramètre upgrade_notification, voir Section 3.1, « Configuration de Bugzilla ». Les administrateurs verront ces notifications en accédant à la page index.cgi, c-à-d. généralement lors de la connexion. Bugzilla vérifie une fois par jour la présence de nouvelles versions, à moins que le paramètre soit défini à « désactivé ». Si vous êtes placé derrière un proxy, vous pourriez avoir à définir le paramètre proxy_url de façon appropriée. Si le proxy nécessite une authentification, utilisez la synatxe http://utilisateur:mot_de_passe@url_proxy/. Chapitre 3. Administrer Bugzilla Table des matières 3.1. Configuration de Bugzilla 3.1.1. Paramètres requis 3.1.2. Politiques d'administration 3.1.3. Authentification utilisateur 3.1.4. Fichiers joints 3.1.5. Politique de modification des bogues 3.1.6. Champs des bogues 3.1.7. Déplacement de bogue 3.1.8. Graphiques de dépendances 3.1.9. Restrictions de groupe 3.1.10. LDAP 3.1.11. Authentification RADIUS 3.1.12. Courriel 3.1.13. Visionneuse de correctif 3.1.14. Options par défaut des requêtes 3.1.15. Base de données esclave 3.1.16. Correspondance d'utilisateur 3.2. Administrer les utilisateurs 3.2.1. Créer l'utilisateur par défaut 3.2.2. Gérer les autres utilisateurs 3.3. Catégories 3.4. Produits 3.4.1. Créer de nouveaux produits 3.4.2. Modifier des produits 3.4.3. Ajouter ou modifier les composants, versions et jalons cibles 3.4.4. Affecter des restrictions de groupes à des produits 3.5. Composants 3.6. Versions 3.7. Jalons 3.8. Étiquettes 3.8.1. Un simple exemple 3.8.2. À propos des étiquettes 3.8.3. Utiliser les demandes d'étiquettes 3.8.4. Deux types d'étiquettes 3.8.5. Gérer les étiquettes 3.9. Keywords 3.10. Champs personnalisés 3.10.1. Ajouter des champs personnalisés 3.10.2. Modifier les champs personnalisés 3.10.3. Supprimer des champs personnalisés 3.11. Valeurs autorisées 3.11.1. Voir/Modifier les valeurs autorisées 3.11.2. Supprimer des valeurs autorisées 3.12. Worflow des états de bogue 3.13. Voter 3.14. Citations 3.15. Groupes et restrictions de groupes 3.15.1. Créer des groupes 3.15.2. Modification de groupes et affectation de restrictions 3.15.3. Affecter des utilisateurs aux groupes 3.15.4. Affecter des restrictions de groupes à des produits 3.16. Vérifier et maintenir l'intégrité de la base de données 3.1. Configuration de Bugzilla Bugzilla se configure en changeant divers paramètres accessibles à partir du lien « Paramètres » de la page Administration (la page Administration est accessible en cliquant sur le lien « Administration » dans le pied de page). Les paramètres sont divisés en plusieurs catégories, accessibles par le menu à gauche. Vous trouverez ci-dessous une description des différentes catégories et de leurs paramètres importants. 3.1.1. Paramètres requis Les paramètres principaux obligatoires pour une installation de Bugzilla sont définis ici. Ces paramètres doivent être définis avant qu'une nouvelle installation de Bugzilla soit fonctionnelle. Les administrateurs doivent revoir cette liste avant de déployer une nouvelle installation de Bugzilla. maintainer Adresse électronique de la personne responsable de la maintenance de cette installation de Bugzilla. L'adresse n'est pas nécessairement celle d'un compte Bugzilla valide. urlbase Définit le nom de domaine complet et le chemin d'accès du serveur Web de cette installation de Bugzilla. Par exemple, si la page de recherche est http://www.toto.com/bugzilla/query.cgi, « urlbase » doit être défini à http://www.toto.com/bugzilla/. docs_urlbase Définit le chemin d'accès à la documentation de Bugzilla. Cela peut-être un chemin d'accès absolu ou relatif à « urlbase ». Par exemple, si la page « Configuration de Bugzilla » de la documentation est http://www.toto.com/bugzilla/docs/html/parameters.html, définissez « docs_urlbase » à http://www.toto.com/bugzilla/docs/html/. sslbase Définit le nom de domaine complet et le chemin d'accès au serveur Web pour les connexions HTTPS (SSL) de cette installation de Bugzilla. Par exemple, si la page principale de Bugzilla est https://www.toto.com/bugzilla/index.cgi, « sslbase » doit être défini à https://www.toto.com/bugzilla/. ssl_redirect Quand ceci est activé, Bugzilla forcera des connexions HTTPS (SSL), en redirigeant automatiquement tout utilisateur essayant d'utiliserune connexion non-SSL. cookiedomain Définit le domaine pour les cookies de Bugzilla. Ceci est typiquement laissé vide. S'il y a plusieurs noms d'hôtes qui pointent vers le même serveur Web, qui nécessitent le même cookie, alors ce paramètre peut être utilisé. Par exemple, si votre site Web est https://www.toto.com/, définir ce paramètre à .toto.com/ permettra aussi à titi.toto.com/ d'accéder aux cookies de Bugzilla. cookiepath Définit un chemin, relatif à la racine du serveur Web, auquel seront restreints les cookies de Bugzilla. Par exemple, si urlbase est défini à http://www.toto.com/bugzilla/, cookiepath devrait être défini à /bugzilla/. Définir ceci à « / » permettra à tous les sites servis par ce serveur Web ou cet hôte virtuel de lire les cookies de Bugzilla. utf8 Détermine l'utilisation de l'encodage UTF-8 (Unicode) pour tout texte dans Bugzilla. Les nouvelles installations devraient définir ce paramètre à « Activé » pour éviter les problèmes d'encodage de caractères. Les bases de données existantes ne devraient définir ceci à « Activé » qu'après que les données aient été converties de l'encodage existant vers UTF-8, en utilisant le script contrib/recode.pl. Si vous passez ce paramètre de « Désactivé » à « Activé », vous devez réexécuter checksetup.pl immédiatement après. shutdownhtml S'il y a du texte dans ce champ, cette installation de Bugzilla sera totalement désactivée et ce texte apparaîtra à la place de toutes les pages de Bugzilla pour tous les utilisateurs, y compris les administrateurs. À utiliser dans le cadre d'une maintenance du site ou de problèmes. Bien que toute possibilité de connexion soit impossible quand shutdownhtml est activé, des garde-fous sont en place pour protéger le malachanceux administrateur qui perd sa connexion à Bugzilla. Si cela vous arrivait, allez directement dans editparams.cgi (en tapant l'URL manuellement, si nécessaire). En faisant cela vous serez invité à vous connecter, et vos nom et mot de passe seront acceptés ici (mais seulement ici). announcehtml Tout texte dans ce champ sera affiché en haut de chaque page HTML de cette installation de Bugzilla. Ce texte n'est pas encadré dans des balises. Pour de meilleurs résultats, encadrez le texte avec des balises « <div> ». tout attribut de style de la CSS peut être appliqué. Par exemple, pour mettre le texte en vert dans une boîte rouge, ajoutez « id=message » à la balise « <div> ». proxy_url Si cette installation de Bugzilla se trouve derrière un proxy, saisissez les informations du proxy ici pour permettre à Bugzilla d'accéder à Internet. Bugzilla nécessite un accès à Internet pour utiliser le paramètre upgrade_notification (ci-dessous). Si le proxy nécessite une authentification, utilisez la syntaxe : http://user:pass@proxy_url/. upgrade_notification Active ou désactive la notification sur la page d'accueil de cette installation de Bugzilla quand une nouvelle version de Bugzilla est disponible. Cette notification n'est visible que des administrateurs. Choisissez « disabled », pour désactiver la notification. Sinon, choisissez pour quelles versions de Bugzilla vous voulez être prévenu : « development_snapshot » est la dernière version du tronc ; « latest_stable_release » est la dernière version disponible sur la branch stable la plus récente ; « stable_branch_release » est la version la plus récente de la branche sur laquelle est basée cette installation. 3.1.2. Politiques d'administration Cette page contient les paramètres pour les fonctions administratives de base. Les options comprennent l'autorisation de la suppression de bogues et d'utilisateurs et l'autorisation pour les utilisateurs de modifier leur adresse électronique. 3.1.3. Authentification utilisateur Cette page contient les paramètres qui contrôlent la façon dont cette installation de Bugzilla fera l'authentification. Choisissez le mécanisme d'authentification à utiliser (la base de données de Bugzilla, ou une source externe comme un serveur LDAP), et définissez les paramètres de base. Par exemple, choisissez si les utilisateurs doivent s'authentifier pour parcourir les bogues, la gestion des cookies d'authentification, et les expressions régulières utilisées pour valider les adresses électroniques. Certains paramètres sont soulignés ci-dessous. emailregexp Définit l'expression régulière utilisée pour valider les adresses électroniques utilisées pour les noms de connexion. Par défaut, une correspondance totale est recherchée (par ex. « utilisateur@exemple.com ») d'une façon légèrement plus restrictive que ce sui est autorisé dans la RFC 2822. Certaines installations de Bugzilla n'autorisent que des noms d'utilisateurs locaux (par ex. « utilisateur » au lieu de « utilisateur@exemple.com »). Dans ce cas, ce paramètre doit être utilisé pour définir le domaine des adresses électroniques. emailsuffix Cette chaîne est ajoutée aux noms de connexion lors de l'envoi d'un courriel à un utilisateur. Par exemple, si emailregexp a été défini pour permettre les noms d'utilisateurs locaux, alors ce paramètre doit contenir le domaine des adresses électroniques pour tous les utilisateurs (par ex. « @exemple.com »). 3.1.4. Fichiers joints Cette page permet la définition des restrictions et d'autres paramètres concernant les fichiers joints aux bogues. Par exemple, le contrôle des limitations de taille et l'autorisation de pointer vers des fichiers externes via une URI. 3.1.5. Politique de modification des bogues Définit la politique sur le comportement par défaut des événements de modification de bogues. Par exemple, choisir l'état dans lequel mettre un bogue quand celui-ci est marqué comme doublon, et choisir d'autoriser si les rapporteurs de bogues peuvent définir la priorité ou le jalon cible. Permet aussi la configuration des changements qui nécessitent un commentaire de la part des utilisateurs, décrit cidessous. commenton* Tous ces champs vous permettent de définir quels changements peuvent être faits sans commentaire, et ceux qui doivent avoir un commentaire de la personne qui fait les changements. Souvent, les administrateurs autoriseront les utilisateurs à s'ajouter à la liste « Copie à », à accepter les bogues ou à modifier le Tableau blanc sans ajouter de commentaire pour justifier les changements, et demanderont que la plupart des autres changements soit justifiés. Définissez les options « commenton » selon la politique de votre site. Il est sage de demander des commentaires quand les utilisateurs résolvent, réassignent ou rouvrent des bogues, au minimum. Il est généralement bien mieux de demander un commentaire au développeur lors de la résolution des bogues. Il y a peu de choses plus ennuyeuses pour les utilisateurs d'une base de données de bogues, que d'avoir un développeur marquant un bogue « CORRIGÉ » sans commentaire sur le correctif (ou même si cela a vraiment été corrigé !) noresolveonopenblockers Cette option empêchera les utilisateurs de résoudre les bogues en CORRIGÉ s'il y a des dépendances non résolues. Seule la résolution CORRIGÉ est affectée. Les utilisateurs seront encore capables de résoudre les bogues avec des résolutions autres que CORRIGÉ s'il reste des bogues dépendants non résolus. 3.1.6. Champs des bogues Les paramètres dans cette section déterminent le choix par défaut de plusieurs champs de Bugzilla pour les nouveaux bogues et contrôlent aussi si certains champs sont utilisés ou pas. Par exemple, l'utilisation des champs « Jalon cible » ou « Tableau blanc ». useqacontact Ceci permet de définir une adresse électronique pour chaque composant, en plus de celle du responsable par défaut, à laquelle seront envoyées les copies de courriel de bogues. usestatuswhiteboard Ceci définit si vous souhaitez avoir un champ de formulaire libre et modifiable associé à chaque bogue. L'avantage de ce tableau blanc est qu'il peut être effacé ou modifié facilement, et qu'il fournit un champ de recherche facile pour indexer des bogues qui ont des traits communs. 3.1.7. Déplacement de bogue Cette page définit si certains utilisateurs de cette installation de Bugzilla sont autorisés à déplacer des bogues vers une base de données externe. Si le déplacement de bogue est activé, il y a de nombreux paramètres qui contrôlent le comportement du déplacement de bogue. Par exemple, le choix des utilisateurs autorisés à déplacer les bogues, l'emplacement de la base de données externe, et le produit et le composant par défaut pour les bogues déplacés à partir d'autres bases de données de bogues vers cette installation de Bugzilla. 3.1.8. Graphiques de dépendances Cette page a un paramètre qui définit l'emplacement d'un serveur Web Dot, ou du binaire Web Dot sur le système local, qui est utilisé pour générer des graphiques de dépendance. Web Dot est un programme CGI qui crée des images à partir des fichiers de description graphique .dot. Si aucun serveur ou binaire Web Dot n'est spécifié, alors les graphiques de dépendance seront désactivés. 3.1.9. Restrictions de groupe Bugzilla permet la création de différents groupes, avec la possibilité de restreindre la visibilité des bogues dans un groupe à un ensemble d'utilisateurs spécifiques. Des produits spécifiques peuvent aussi être associés à des groupes, et des utilisateurs restreints à ne voir les produits que dans leurs groupes. Plusieurs paramètres sont décrits plus en détail ci-dessous. La plupart de la configuration des groupes et leurs relations aux produits est faite dans les pages « Groupes » et « Produit » dans la zone « Administration ». Les options sur cette page contrôlent les comportements globaux par défaut. Pour plus d'informations sur les Groupes et les restrictions de groupes, consulter Section 3.15, « Groupes et restrictions de groupes » makeproductgroups Détermine la création automatique de groupes lors de la création de nouveaux produits. Si ce paramètre est activé, les groupes seront utilisés pour les requêtes sur les bogues. usevisibilitygroups Si ce paramètre est sélectionné, la visibilité de l'utilisateur sera restreinte aux membres des groupes, tels que sélectionnés dans les paramètres de configuration de groupe. Chaque groupe défini par utilisateur peut être autorisé à voir les membres des autres groupes sélectionnés. Pour des détails sur la configuration des groupes (y compris les restrictions de visibilité), consulter Section 3.15.2, « Modification de groupes et affectation de restrictions ». querysharegroup Le nom du groupe d'utilisateurs autorisés à partager leurs recherches enregistrées avec d'autres. Pour plus d'informations sur l'utilisation des recherches enregistrées, consulter Recherches enregistrées. 3.1.10. LDAP L'authentification LDAP est un module pour l'architecture de plugin d'authentification de Bugzilla. Cette page contient tous les paramètres nécessaires pour configurer Bugzilla en utilisant l'authentification LDAP. Le schéma d'authentification existant de Bugzilla utilise les adresses électroniques comme identifiant primaire de l'utilisateur et un mot de passe pour authentifier cet utilisateur. Tous les endroits dans Bugzilla qui nécessitent un identifiant d'utilisateur (par ex. pour assigner un bogue) utilisent l'adresse électronique. L'authentification LDAP se situe au-dessus de ce schéma et ne le remplace pas. La connexion initiale est faite avec un nom d'utilisateur et un mot de passe pour l'annuaire LDAP. Bugzilla essaie de se lier à LDAP en utilisant les crédentiels et, s'il réussit, essaie d'associer ce compte à un compte Bugzilla. Si un attribut LDAP d'adresse électronique est défini, la valeur de cet attribut est utilisé, sinon, le paramètre « emailsuffix » est ajouté au nom d'utilisateur LDAP pour former l'adresse électronique complète. Si un compte pour cette adresse existe déjà dans l'installation de Bugzilla, il se connectera avec ce compte. Si aucun compte pour cette adresse électronique n'existe, il en sera créé un au moment de la connexion. (Dans ce cas, Bugzilla essaiera d'utiliser l'attribut « displayName » ou « cn » pour déterminer le nom complet de l'utilisateur). Après l'authentification, toutes les tâches liées à l'utilisateur seront toujours manipulées par l'adresse électronique et pas par le nom d'utilisateur LDAP. Par exemple, les bogues sont encore assignés par l'adresse électronique et les utilisateurs recherchés par leur adresse électronique. Parce qu'un compte Bugzilla n'est pas créé jusqu'à ce que l'utilisateur se connecte pour la première fois, un utilisateur qui ne s'est pas encore connecté est inconnu de Bugzilla. Ceci signifie qu'il ne peut pas être utilisé comme Responsable ou Contact QA (par défaut ou non), ajouté à la liste « Copie à » ou toute autre opération de ce type. Un contournement possible est le script bugzilla_ldapsync.rb dans le répertoire contrib. Une autre solution est de résoudre le bogue 201069. Paramètres nécessaires pour utiliser l'authentification LDAP : user_verify_class Si vous voulez lister « LDAP » ici, assurez-vous d'avoir défini les autres paramètres listés ci-dessous. À moins d'avoir d'autres méthodes d'authentification (qui fonctionnent) listées aussi, vous ne pourrez pas vous reconnecter à Bugzilla une fois déconnecté. Si cela vous arrive, vous devrez modifier manuellement data/params et définir « user_verify_class » à « DB ». LDAPserver Ce paramètre doit être défini avec le nom (et optionnellement le port) de votre serveur LDAP. Si aucun port n'est spécifié, le port LDAP par défaut 389 sera utilisé. Par exemple : « ldap.societe.com » ou « ldap.societe.com:3268 » Vous pouvez également spécifier une URI LDAP, tout comme utiliser d'autre protocoles, tels que LDAPS ou LDAPI. Si le port n'était pas spécifié dans l'URI, le défaut est 389 pour « LDAP » et 636 pour « LDAPS ». Afin d'utiliser SSL avec LDAP, indiquez une URI avec « ldaps:// » Ceci forcera l'utilisation de SSL sur le port 636. Par exemple, pour LDAP non sécurisé : « ldap://ldap.societe.com », pour LDAP avec SSL : « ldaps://ldap.societe.com » ou pour LDAP sur un socket de domaine Unix : « ldapi://%2fvar%2flib%2fldap_sock ». LDAPbinddn [Optionnel] Certains serveurs LDAP une liaison anonyme pour faire des recherches dans l'annuaire. Si c'est le cas pour votre configuration, vous devrez définir le paramètre « LDAPbinddn » pour le compte utilisateur que Bugzilla doit utiliser à la place de la liaison anonyme. Ex. : « cn=default,cn=utilisateur:mot_de_passe » LDAPBaseDN Le paramètre « LDAPBaseDN » doit être défini pour indiquer l'emplacement dans votre arbre LDAP où vous voulez faire la recherche des adresses électroniques. Les « uid » doivent être uniques sous le « DN » indiqué ici. Ex. : « ou=Personne,o=Societe » LDAPuidattribute Le paramètre « LDAPuidattribute » doit être défini sur l'attribut qui contient les « UID » uniques de vos utilisateurs. La valeur récupérée de cet attribut sera utilisée lors de la tentative de liaison des utilisateurs pour confirmer leur mots de passe. Ex. : « uid » LDAPmailattribute Le paramètre « LDAPmailattribute » doit être le nom de l'attribut qui contient l'adresse électronique que vos utilisateurs saisiront pour se connecter dans les boîtes de connexion de Bugzilla. Ex. : « mail » 3.1.11. Authentification RADIUS L'authentification RADIUS est un module pour l'architecture de plugin d'authentification de Bugzilla. Cette page contient tous les paramètres nécessaires pour configurer Bugzilla en utilisant l'authentification RADIUS. La plupart des avertissements concernant l'authentification LDAP s'applique aussi à l'authentification RADIUS. Consulter Section 3.1.10, « LDAP » pour des détails. Paramètres requis pour utiliser l'Authentification RADIUS : user_verify_class Si vous voulez lister « RADIUS » ici, assurez-vous d'avoir défini les autres paramètres listés ci-dessous. À moins d'avoir d'autres méthodes d'authentification (en fonction) listées aussi, vous pourriez ne pas être en mesure de vous reconnecter à Bugzilla après déconnexion. Si cela se produisait, vous devriez modifier manuellement le fichier data/params et définir le paramètre « user_verify_class » à « DB ». RADIUS_server Ce paramètre doit être renseigné avec le nom (et optionnellement le port) de votre serveur RADIUS. RADIUS_secret Ce paramètre doit être renseigné avec le secret du serveur RADIUS. RADIUS_email_suffix Bugzilla a besoin d'une adresse électronique pour chaque compte utilisateur. Par conséquent, il a besoin de déterminer l'adresse électronique correspondant à un utilisateur RADIUS. Bugzilla ne propose qu'un simple moyen de faire cela : il concatène un suffixe au nom d'utilisateur RADIUS pour le convertir en adresse électronique. Vous pouvez indiquer ce suffixe dans le paramètre « RADIUS_email_suffix ». Si cette solution ne fonctionne pas pour vous, vous devrez certainement modifier Bugzilla/Auth/Verify/RADIUS.pm pour que cela corresponde à vos besoins. 3.1.12. Courriel Cette page contient tous les paramètres pour configurer la façon dont Bugzilla traitent les notifications par courriel qu'il envoie. Voir ci-dessous pour un résumé des options importantes. mail_delivery_method Ce paramètre est utilisé pour indiquer comment sont envoyés les courriels ou s'il ne faut pas les envoyer. Il y a plusieurs options pour les différents MTA, avec deux options supplémentaires qui désactivent l'envoi de courriels. « testfile » n'envoie pas les courriels mais les enregistre dans data/mailer.testfile pour qu'ils soient consultés plus tard. « none » désactive totalement l'envoi de courriels. mailfrom C'est l'adresse électronique qui apparaîtra dans le champ « De » pour tous les courriels envoyés par cette installation de Bugzilla. Certains serveurs de messagerie nécessitent une adresse électronique valide ; par conséquent, il est recommandé de choisir une adresse électronique valide ici. smtpserver C'est l'adresse du serveur SMTP, si le paramètre « mail_delivery_method » est défini pour SMTP. Utiliser « localhost » si vous utilisez un MTA local, ou le nom du serveur SMTP distant. Ajouter « : » et le numéro de port s'il ne s'agit pas du numéro de port par défaut. smtp_username Nom d'utilisateur à utiliser pour l'authentification SASL sur le serveur SMTP. Laisser ce paramètre vide si le serveur ne nécessite pas d'authentification. smtp_password Mot de passe à utiliser pour l'authentification SASL sur le serveur SMTP. Ce paramètre sera ignoré si le paramètre « smtp_username » est laissé vide. smtp_ssl Active la gestion de SSL pour la connexion au serveur SMTP. smtp_debug Ce paramètre permet d'activer le débogage détaillé. Les messages sont indiqués dans le journal d'erreur du serveur Web. whinedays Ceci indique le nombre de jours pendant lequel les bogues sont dans l'état CONFIRMÉ avant de notifier les personnes qu'elles ont de nouveaux bogues qui n'ont pas été touchés. Si vous ne comptez pas utiliser cette focntionnalité, ne définissez pas la tâche de notification « cron » décrite dans les instructions d'installation ou définissez cette valeur à « 0 » (ne jamais notifier). globalwatcher Ceci permet de définir des utilisateurs spécifiques qui recevront une notification chaque fois qu'un nouveau bogue est saisi ou lors de changements sur un bogue existant, en fonction des permissions de l'ensemble des groupes. Cela peut-être utile pour envoyer les notifications sur une liste de diffusion par exemple. 3.1.13. Visionneuse de correctif Cette page contient les paramètres de configuration pour le serveur CVS, le serveur Bonsai et le serveur LXR que Bugzilla utilisera pour activer les fonctionnalités de la visionneuse de correctif. Bonsai est un outil qui permet de faire des requêtes sur un arbre CVS. LXR est un outil qui permet de faire des références croisées et d'indexer du code source. 3.1.14. Options par défaut des requêtes Cette page contrôle le comportement par défaut de Bugzilla concernant plusieurs aspects des requêtes sur les bogues. Les options comprennent ce que sont les options de requête par défaut, ce que renvoie la page « Mes bogues », si les utilisateurs peuvent ajouter librement des bogues à la liste de citations, et le nombre de doublons de bogues nécessaire pour ajouter un bogue à la liste des « bogues les plus fréquemment rapportés ». 3.1.15. Base de données esclave Cette page contrôle si une base de données esclave est utilisée et tous les paramètres associés à cette base de données. Les versions de Bugzilla antérieures à la version 3.2 utilisaient des types de tables MyISAM, qui ne supportent que le verrouillage en écriture au niveau de la table. Avec MyISAM, chaque fois que quelqu'un fait un changement dans un bogue, la table entière est verrouillée jusqu'à ce que l'opération d'écriture soit terminée. Le verrouillage pour l'écriture bloque aussi les lectures jusqu'à ce que l'opération d'écriture soit terminée. Le paramètre « shadowdb » a été conçu pour contourner cette limitation. Alors qu'un seul utilisateur à la fois est autorisé à écrire sur une table à un moment donné, les lectures peuvent continuer sans interruption sur une base de données esclave en lecture seule. À partir de la version 3.2, Bugzilla n'utilise plus de type de table MyISAM. À la place, il utilise InnoDB, qui peut faire des verrouillages au niveau de la transaction. Par conséquent, les limitations pour lesquelles la fonctionnalité de base de données esclave avait été conçue comme moyen de contournement, n'existent plus. 3.1.16. Correspondance d'utilisateur Les paramètres de cette page contrôlent la façon dont les utilisateurs sont sélectionnés et recherchés lors de l'ajout d'un utilisateur à un bogue. Par exemple, les utilisateurs doivent être sélectionnés lors du choix d'un responsable de bogue, de l'ajout à la liste « Copie à » ou lors de la sélection du Contact QA. Avec le paramètre « usemenuforusers », il est possible de configurer Bugzilla pour afficher une liste des utilisateurs dans les champs plutôt qu'un champ de texte vide. Ceci ne doit être utilisé que pour des installations de Bugzilla ayant un petit nombre d'utilisateurs. Si les utilisateurs sont sélectionnés via une boîte de texte, cette page contient aussi les paramètres sur la façon dont les utilisateurs sont recherchés et le mode de correspondance lors de la saisie. Un autre paramètre appelé 'ajax_user_autocompletion' permet dans certains champs d'utilisateur d'afficher une liste déroulante de noms d'utilisateurs correspondants après avoir saisi quelques caractères. Il est recommandé d'utiliser mod_perl quand 'ajax_user_autocompletion' est activé. 3.2. Administrer les utilisateurs 3.2.1. Créer l'utilisateur par défaut À la première exécution du script checksetup.pl après l'installation de Bugzilla, il vous demandera le nom de l'utilisateur d'administration (adresse électronique) et le mot de passe pour ce « super utilisateur ». Si pour une raison ou pour une autre vous supprimez le compte « super utilisateur », la ré-exécution du script checksetup.pl vous permettra d'indiquer à nouveau ce nom d'utilisateur et son mot de passe. Si vous souhaitez ajouter plus d'utilisateurs d'administration, ajoutez-les au groupe « admin » et optionnellement modifiez les groupes « tweakparams », « editusers », « creategroups », « editcomponents » et « editkeywords » pour y ajouter le groupe « admin » (ce qui est le cas par défaut). 3.2.2. Gérer les autres utilisateurs 3.2.2.1. Rechercher les utilisateurs existants Si vous avez le privilège « editusers » ou si vous êtes autorisé à donner des privilèges sur certains groupes, le lien « Utilisateurs » apparaîtra dans la page administration. Le premier écran que vous obtenez est un formulaire de recherche des comptes utilisateurs existants. Vous pouvez lancer des recherches basées sur le numéro, le nom réel ou le nom de connexion (c-à-d. l'adresse électronique dans la plupart des cas, ou seulement la première partie de l'adresse si le paramètre « emailsuffix » est défini). Vous pouvez faire des recherches de différentes manières à l'aide de la liste déroulante à droite de la boîte de texte. Vous pouvez faire une recherche de correspondances de sous-chaînes insensibles à la casse (par défaut), avec une expression régulière, avec l'inverse d'une expression régulière, (qui trouve chaque nom d'utilisateur qui ne correspond PAS à l'expression régulière), ou la chaîne exacte si vous savez qui vous cherchez. La recherche peut être restreinte à des utilisateurs se trouvant dans un groupe spécifique. Par défaut, la restriction est désactivée. La recherche renvoie une liste des utilisateurs correspondant à vos critères. Les propriétés de l'utilisateur peuvent être modifiées en cliquant sur le nom de connexion. L'historique du compte d'un utilisateur peut être lu en cliquant sur le lien « Afficher » dans la colonne « Journal du compte utilisateur ». Le journal du compte affiche les changements qui ont été faits sur le compte de l'utilisateur, la date et l'heure du changement et l'utilisateur qui a effectué les modifications. Par exemple, le journal du compte affichera les détails sur la suppression ou l'ajout d'un utilisateur à un groupe. 3.2.2.2. Créer de nouveaux utilisateurs 3.2.2.2.1. Auto-enregistrement Par défaut, les utilisateurs peuvent créer leur propre compte en cliquant sur le lien « Nouveau compte » au bas de chaque page (en supposant qu'ils ne soient pas déjà connectés avec un autre compte). Si vous voulez désactiver cet enregistrement automatique ou si vous voulez limiter ceux qui peuvent créer leur compte, vous devrez modifier le paramètre « createemailregexp » dans la page « Configuration », voir Section 3.1, « Configuration de Bugzilla ». 3.2.2.2.2. Comptes créés par un administrateur Les utilisateurs ayant le privilège « editusers », tels que les administrateurs, peuvent créer des comptes pour d'autres utilisateurs : 1. Après la connexion, cliquez sur le lien « Utilisateurs » dans le pied de la page de requête, puis cliquez sur « Ajouter un nouvel utilisateur ». 2. Remplissez le formulaire présenté. Cette page est explicite. Quand c'est terminé, cliquez sur « Soumettre ». Ajouter un utilisateur de cette façon n'enverra pas un courriel l'informant de son nom d'utilisateur et de son mot de passe. Alors que c'est utile pour créer des comptes génériques (des scrutateurs qui redirigent les courriels vers un autre système par exemple ou des adresses électroniques qui sont des listes de diffusion), en général, il est préférable de se déconnecter et d'utiliser le bouton « Nouveau compte » pour créer des utilisateurs car cela pré-remplira tous les champs requis et notifiera également l'utilisateur de son nom de compte et de son mot de passe. 3.2.2.3. Modifier les utilisateurs Quand vous avez trouvé votre utilisateur, vous pouvez changer les champs suivants : Nom de connexion : Ceci est généralement l'adresse électronique complète de l'utilisateur. Cependant, si vous utilisez le paramètre « emailsuffix », ceci peut être juste le nom de connexion de l'utilisateur. Notez que les utilisateurs peuvent à présent changer leur nom de connexion eux-mêmes (pour une adresse électronique valide). Nom réel : Le nom réel de l'utilisateur. Notez que Bugzilla n'a pas besoin de ceci pour créer un compte. Mot de passe : Vous pouvez changer le mot de passe de l'utilisateur ici. Les utilisateurs peuvent automatiquement demander un nouveau mot de passe ; vous ne devriez donc pas avoir besoin de faire cela souvent. Si vous voulez désactiver un compte, voir « Texte de désactivation » ci-dessous. Courriel de bogues désactivé : Cochez cette case pour déscativer les courriels de bogues et de notification totalement pour ce compte. Cette case à cocher remplace le fichier data/nomail existant dans les versions précédentes de Bugzilla. Texte de désactivation : Si vous saisissez quoi que ce soit dans cette boîte, y compris juste une espace, l'utilisateur ne pourra pas se connecter ou faire des modifications de bogues via l'interface Web. Le code HTML que vous saisissez dans cette boîte sera affiché à l'utilisateur quand il essaiera de faire ces actions et doit expliquer pourquoi le compte a été désactivé. Les utilisateurs ayant leur compte désactivé continueront à recevoir des courriels de Bugzilla ; de plus, ils ne pourront pas se connecter eux-mêmes pour changer leurs préférences et arrêter l'envoi de courriels. Si vous voulez qu'un compte (désactivé ou activé) arrête de recevoir les courriels, cochez la case « Courriel de bogues désactivé » ci-dessus. Même les utilisateurs ayant leur compte désactivé peuvent encore soumettre des bogues par l'intermédiaire de la passerelle de courriels, si elle existe. La passerelle de courriels ne devrait pas être activée pour les installations sécurisées de Bugzilla. Ne désactivez pas tous les comptes administrateurs ! <nomgroupe> : Si vous avez créé des groupes, par ex. « securitesensible », alors des cases à cocher apparaîtront ici pour vous permettre d'ajouter ou de supprimer des utilisateurs de ces groupes. La première case à cocher donne à l'utilisateur la possibilité d'ajouter ou de supprimer d'autres utilisateurs comme membres de ce groupe. La seconde ajoute l'utilisateur lui-même en tant que membre du groupe. canconfirm : Ce champ est seulement utilisé si vous avez activé l'état « NON CONFIRMÉ ». Si vous activez ceci pour un utilisateur, cet utilisateur peut changer les bogues dans l'état « NON CONFIRMÉ » en « CONFIRMÉ » (par ex. : état « NOUVEAU »). creategroups : Cette option permet à un utilisateur de créer et supprimer des groupes dans Bugzilla. editbugs : À moins qu'un utilisateur n'ait cette option définie, il ne peut que modifier que les bogues pour lesquels il est responsable ou rapporteur. Même si cette option n'est pas cochée, les utilisateurs peuvent encore ajouter des commentaires aux bogues. editcomponents : Cette option permet aux utilisateurs de créer de nouveaux produits et composants et de modifier ou supprimer ceux pour lesquels aucun bogue n'est associé. Si un produit ou un composant a des bogues associés, ces bogues doivent être déplacés dans un produit ou un composant différent avant que Bugzilla n'autorise leur suppression. editkeywords : Si vous utilisez la fonctionnalité des mots-clés de Bugzilla, activer ceci permet à un utilisateur de créer et supprimer des mots-clés. Comme d'habitude, les bogues existants contenant le mot-clé que l'utilisateur veut supprimer doivent être modifiés avant que Bugzilla autorise la suppression du mot-clé. editusers : Cette option permet à un utilisateur de faire ce que vous êtes en train de faire : modifier d'autres utilisateurs. Ceci permettra à l'utilisateur ayant cette option d'ajouter ou de retirer les privilèges administrateur à d'autres utilisateurs. À activer avec précaution. tweakparams : Cette option permet à un utilisateur de modifier les paramètres de Bugzilla (en utilisant editparams.cgi.) <nomproduit> : Ceci autorise un administrateur à indiquer les produits pour lesquels un utilisateur peut voir les bogues. Si vous activez le paramètre « makeproductgroups » dans le panneau « Restrictions de groupe » dans la page « Paramètres », Bugzilla crée alors un groupe par produit (au moment de la création du produit), et ce groupe a exactement le même nom que le produit. Veuillez noter que pour les produits existants, lorsque le paramètre est activé, les groupes correspondants ne seront pas créés. L'utilisateur doit encore avoir le privilège « editbugs » pour modifier les bogues dans ces produits. 3.2.2.4. Supprimer des utilisateurs Si le paramètre « allowuserdeletion » est activé, voir Section 3.1, « Configuration de Bugzilla », vous pouvez alors aussi supprimer des comptes utilisateurs. Notez que ce n'est la plupart du temps pas la meilleure chose à faire. Si seul un avertissement dans une boîte jaune est affiché, alors la suppression est sûre. Si un avertissement est également affiché dans une boîte rouge, alors vous ne devriez PAS essayer de supprimer le compte utilisateur, sinon vous rencontrerez des problèmes d'intégrité référentielle dans votre base de données, qui peuvent mener à un comportement inattendu, tels que des bogues n'apparaissant plus dans les listes de bogues ou des données ou des données incorrectement affichées. Vous avez été prévenu ! 3.2.2.5. Se substituer à des utilisateurs Il y a des fois où un administrateur veut accomplir des actions en tant qu'un autre utilisateur. La fonctionnalité sudo peut être utilisée pour faire cela. Pour utiliser la fonctionnalité « sudo », vous devez être dans le groupe bz_sudoers. Par défaut, tous les administrateurs sont dans ce groupe. Si vous voulez utiliser cette fonctionnalité, vous devez démarrer une session en allant sur la page de modification des utilisateurs, rechercher un utilisateur et cliquer sur son nom de connexion. Vous devriez voir un lien sous son nom de connexion intitulé « Prendre la place de cet utilisateur ». Cliquez sur le lien. Ceci vous amènera sur une page décrivant la fonctionnalité et les instructions pour l'utiliser. Après avoir lu le texte, saisissez le nom de connexion de l'utilisateur dont vous voulez usurper l'identité, fournissez un court message expliquant pourquoi vous faites cela, et appuyez sur le bouton. Tant que vous utiliserez cette fonctionnalité, tout ce que vous ferez sera vu comme si vous étiez connecté avec le compte utilisateur dont vous usurpez l'identité. L'utilisateur dont vous usurpez l'identité ne recevra pas de compte-rendu de ce que vous faites. Si vous effectuez des actions qui engendrent l'envoi de courriels, ces courriels apparaîtront comme envoyés par l'utilisateur dont vous usurpez l'identité. Vous devez être extrêmement prudent lorsque vous utilisez cette fonctionnalité. 3.3. Catégories Les catégories sont utilisées pour regrouper plusieurs produits en une entité distincte. Le niveau « Catégories » est désactivé par défaut ; il peut être activé ou désactivé en utilisant le paramètre « useclassification », dans la section Champs de bogue dans la page de modification des paramètres. L'accès à l'administration des catégories est contrôlé par l'utilisation du groupe groupe système editclassifications, qui définit les privilèges de création, suppression et modification des catégories. Lorsqu'elles sont activées, les catégories introduisent une étape supplémentaire lors de la création des bogues (se manifestant par la sélection d'une catégorie) ; elles apparaissent aussi dans le formulaire de recherche avancée. 3.4. Produits Les Produits représentent typiquement les produits que vous délivrez réellement. Les produits peuvent être classés en Catégories. Par exemple, si une société conçoit des jeux pour ordinateur, elle pourrait avoir une catégorie « Jeux » et un produit différent pour chaque jeu. Cette société pourrait également avoir un produit « Commun » pour les unités technologiques utilisées dans plusieurs jeux, et peutêtre aussi quelques produit spéciaux qui représentent des éléments ne faisant pas partie des produits (par exemple, « Site Web » ou « Administration »). Beaucoup de paramètres de Bugzilla sont configurables par produit. Le nombre de « votes » disponibles pour les utilisateurs est défini par produit, tout comme le nombre de votes requis pour faire passer automatiquement un bogue de l'état NON CONFIRMÉ à l'état CONFIRMÉ. Lors de la création ou de la modification des produits, les options suivantes sont disponibles : Produit Le nom du produit Description Une brève description du produit Jalon par défaut Sélectionner le jalon par défaut pour ce produit. Fermé pour la saisie de bogues Sélectionner cette case à cocher pour empêcher la saisie de nouveaux bogues pour ce produit. Votes maximum par personne Le nombre maximum de votes autorisé pour un utilisateur pour ce produit. Votes maximum qu'une personne peut affecter à un bogue Le nombre de votes maximum autorisé pour un utilisateur dans ce produit pour un seul bogue. Seuil de confirmation Le nombre de votes nécessaire pour passer automatiquement tout bogue dans ce produit de l'état NON CONFIRMÉ à NOUVEAU. Version Indique quelle version sera affichée pour les bogues de ce produit. Créer des graphiques pour ce produit Cocher cette case pour permettre la création de graphiques pour ce produit. Lors de la modification d'un produit, il y a également un lien pour modifier les restrictions de groupes, voir Section 3.4.4, « Affecter des restrictions de groupes à des produits ». 3.4.1. Créer de nouveaux produits Pour créer un nouveau produit : 1. Sélectionnez « Produits » dans le pied de page 2. Sélectionnez le lien « Ajouter » au bas de la page à droite 3. Saisissez le nom du produit et sa description. Le champ « Description » peut contenir du code HTML. 4. Quand le produit est créé, Bugzilla affiche un message indiquant qu'un composant doit être créé avant de pouvoir rapporter des bogues pour ce nouveau produit. Suivre le lien pour créer un nouveau composant. Voir Composants pour plus de détails. 3.4.2. Modifier des produits Pour modifier un produit existant, cliquez sur le lien « Produits » dans la page « Administration ». si le paramètre « useclassification » est activé, un tableau des catégories existantes est affiché, y compris la catégorie « Unclassified ». Le tableau indique le nombre de produits dans chaque catégorie. Cliquez sur le nom de la catégorie pour voir ses produits. Si le paramètre « useclassification » n'est pas activé, le tableau liste tous les produits directement. Le tableau du produit résume les informations sur celui-ci fournie lors de sa création. Cliquez sur le nom du produit pour modifier ses propriétés et accéder aux liens vers les autres attributs tels que les composants, les versions, les jalons et les restrictions de groupe. 3.4.3. Ajouter ou modifier les composants, versions et jalons cibles Pour modifier ou ajouter de nouveaux composants, versions ou jalons cibles à un produit, cliquez sur les liens « Modifier les composants », « Modifier les versions » ou « Modifier les jalons » dans la page « Modifier le produit ». Un tableau des composants, versions et jalons existants est affiché. Cliquez sur un nom d'élément pour modifier ses propriétés. Sous le tableau se trouvent un lien pour ajouter un nouveau composant, version ou jalon. Pour plus d'informations sur les composants, consultez Composants. Pour plus d'informations sur les versions, consultez Section 3.6, « Versions ». Pour plus d'informations sur les jalons, consultez Section 3.7, « Jalons ». 3.4.4. Affecter des restrictions de groupes à des produits Sur la page « Modifier le produit », il y a un lien appelé « Modifier les restrictions de groupes ». Les paramètres de cette page contrôlent les relations des groupes au produit édité. Les restrictions de groupe sont un aspect important de l'utilisation des groupes pour isoler et restreindre les accès aux bogues saisis pour ces produits. Pour plus d'informations sur les groupes, y compris la création, la modification, l'ajout d'utilisateurs et la modifications des permissions, consultez Section 3.15, « Groupes et restrictions de groupes ». Après avoir cliqué sur le lien « Modifier les restrictions de groupes » dans la page « Modifier le produit », un tableau contenant tous les groupes d'utilisateurs de cette installation de Bugzilla est affiché. Les groupes système qui sont créés lors de l'installation de Bugzilla is installed ne sont pas utilisables pour les restrictions de groupes. Une description de la signification de chacun de ces champs est indiquée ci-dessous. Les groupes peuvent être « applicable », « défaut », et « obligatoire ». Les groupes peuvent aussi contrôler les droits de saisie pour un produit donné ou être utilisés pour que les bogues dans le produit soient en lecture seule à moins que les restrictions de groupes ne soient remplies. La meilleure façon de comprendre ces relations est de voir des exemples. Concultez Section 3.4.4.1, « Applications courantes des restrictions de groupe » pour des exemples de relations entre produit et groupe. Les produits et les groupes ne sont pas limités à une relation un pour un. Plusieurs groupes peuvent être associés au même produit et les groupes peuvent être associés à plus d'un produit. Si un groupe a Entry sélectionné, alors le produit restreindra la saisie de bogues aux seuls utilisateurs membres de groupes ayant entry sélectionné. Si un groupe a canedit sélectionné, alors le produit sera en lecture seule pour tous les utilisateurs qui ne sont pas membres de tous les groupes ayant canedit sélectionné. Seuls les utilisateurs qui sont membres de tous les groupes ayant canedit sélectionné seront capables de modifier. C'est une restriction additionnelle qui limite encore plus ce qui peut être modifié par un utilisateur. Les paramètres suivants vous permettent de choisir les privilèges par produit. C'est un moyen pratique pour donner des privilèges à certains utilisateurs pour certains produits seulement, sans avoir à leur donner de privilèges globaux qui affecteraient tous les produits. Les groupes ayant editcomponents sélectionné permettent aux utilisateurs membres de ces groupes de modifier tous les aspects de ce produit, y compris les composants, les jalons et les versions. Les groupes ayant canconfirm sélectionné permettent aux utilisateurs membres de ces groupes de confirmer les bogues dans ce produit. Les groupes ayant editbugs sélectionné permettent aux utilisateurs membres de ces groupes de modifier tous les champs de bogue dans ce produit. Les champs MemberControl et OtherControl sont utilisés en tandem pour déterminer quels bogues seront placés dans ce groupe. Les seules combinaisons autorisées de ces deux paramètres sont listées dans un tableau dans la page « Modifier les restrictions de de groupe ». Consultez ce tableau pour des détails sur la façon d'utiliser ces champs. Des exemples de différentes utilisations sont décrits ci-dessous. 3.4.4.1. Applications courantes des restrictions de groupe L'utilisation des groupes est mieux expliquée avec des exemples illustrant des configurations utilisées couramment. Les exemples suivent une syntaxe commune : Group: Entry, MemberControl, OtherControl, CanEdit, EditComponents, CanConfirm, EditBugs. Où « Group » est le nom du groupe modifié pour ce produit. Les autres champs correspondent tous au tableau dans la page « Modifier les restrictions de groupes ». Si une de ces options n'est pas listée, cela signifie qu'elle n'a pas été cochée. Restriction produit/groupe basique Supposons qu'il y ait un produit appelé « Toto ». Le produit « Toto » ne peut contenir que des bogues saisis par les utilisateurs du groupe « Titi ». De plus, les bogues saisis pour le produit « Toto » doivent être toujours restreints aux utilisateurs du groupe « Titi ». De plus, seuls les membres du groupe « Titi » peuvent modifier les bogues saisis pour le produit « Toto », même si d'autres utilisateurs peuvent voir le bogue. Ces conditions seraient réalisées ainsi : Produit Toto: Titi: ENTRY, OBLIGATOIRE/OBLIGATOIRE, CANEDIT Peut-être que des restrictions si strictes ne sont pas nécessaires pour le produit « Toto ». Un façon moins stricte de configurer le produit « Toto » et le groupe « Titi » serait : Produit Toto: titi: ENTRY, AFFICHÉ/AFFICHÉ, EDITCOMPONENTS, CANCONFIRM, EDITBUGS Les lignes ci-dessus indiquent que, pour le produit « Toto », les membres du groupe « Titi » peuvent saisir des bogues. Toute personne ayant la permission de modifier un bogue du produit « Toto » peut mettre le bogue dans le groupe « Titi », même s'ils n'appartiennent pas eux-mêmes au groupe « Titi ». Tout utilisateur du groupe « Titi » peut modifier tous les aspects des composants du produit « Toto », peut confirmer les bogues pour le produit « Toto » et peut modifier tous les champs de tous les bogues du produit « Toto ». Accès utilisateur général avec groupe de sécurité Pour permettre à tout utilisateur de saisir un bogue pour le produit « A » et de soumettre ces bogues au groupe appelé « Security » : Produit A: Security: AFFICHÉ/AFFICHÉ Accès utilisateur général et produit Sécurité Pour permettre à tout utilisateur de saisir des bogues pour le produit « Sécurité » tout en empêchant ces bogues d'être visibles à quiconque en dehors du groupe « SecurityWorkers » (à moins qu'un membre de ce groupe n'enlève cette restriction) : Produit Sécurité: securityworkers: DÉFAUT/OBLIGATOIRE Isolation de produit avec un groupe commun Pour permettre aux utilisateurs du produit « A » d'accéder aux bogues du produit « A », aux utilisateurs du produit « B » d'accéder aux bogues du produit « B » et au personnel du support, membres du groupe « Support », d'accéder aux deux produits, trois groupes sont nécessaires : 1. Le groupe « Support » : contient les membres du personnel du support. 2. Le groupe « AccessA » : contient les utilisateurs du produit « A » et du groupe « Support ». 3. Le groupe « AccessB » : contient les utilisateurs du produit « B » et du groupe « Support ». Quand ces trois groupes ont été définis, les restrictions de groupes peuvent être définies ainsi : Produit A: AccessA: ENTRY, OBLIGATOIRE/OBLIGATOIRE Produit B: AccessB: ENTRY, OBLIGATOIRE/OBLIGATOIRE Peut-être que le groupe « Support » veut plus de droits. Par exemple, le groupe « Support » pourrait être autorisé à rendre les bogues inaccessible aux utilisateurs des groupes « AccessA » et « AccessB ». Alors, le groupe « Support » pourrait être autorisé à publier les bogues appropriés à tous les utilisateurs dans un troisième produit (appelons-le « Commun ») qui est en lecture seule pour quiconque n'appartient pas au groupe « Support ». De cette façon, le groupe « Support » pourrait contrôler les bogues qui peuvent être vus par les deux groupes à la fois. Cette configuration serait : Produit A: AccessA: ENTRY, OBLIGATOIRE/OBLIGATOIRE Support: AFFICHÉ/NON APPLICABLE Produit B: AccessB: ENTRY, OBLIGATOIRE/OBLIGATOIRE Support: AFFICHÉ/NON APPLICABLE Produit Commun: Support: ENTRY, DÉFAUT/OBLIGATOIRE, CANEDIT Mettre un produit en lecture seule Quelquefois, un produit est retiré et par conséquent, on ne devrait pas pouvoir saisir de bogues pour celui-ci (par exemple, une ancienne version d'un logiciel qui n'est plus supportée). Un produit peut être mis en lecture seule en créant un groupe appelé « LectureSeule » et en ajoutant les produits dedans quand c'est nécessaire : Produit A: LectureSeule: ENTRY, NON APPLICABLE/NON APPLICABLE, CANEDIT Pour plus d'informations sur les groupes (en dehors de leurs relations avec les produits), consultez Section 3.15, « Groupes et restrictions de groupes ». 3.5. Composants Les composants sont des sous-sections d'un produit. Par exemple, le jeu vidéo que vous concevez peut avoir les composants « UI », « API », « Système audio » et « Plugins », chacun d'eux étant supervisé par un programmeur différent. Il est souvent souhaitable de diviser les composants dans Bugzilla en fonction des divisions naturelles des responsabilités au sein de votre produit ou de votre société. Chaque composant à un responsable par défaut et, si vous l'activez dans la page des paramètres, un contact QA par défaut. Le responsable par défaut doit être la première personne qui corrige les bogues dans ce composant. Le contact QA doit être la personne qui s'assure que les bogues sont totalement corrigés. Le responsable, le contact QA et le rapporteur recevront un courriel quand de nouveaux bogues sont créés dans ce composant et quand il y a des changements sur les bogues. Les champs « Responsable par défaut » et « Contact QA par défaut » ne concernent que les assignations par défaut ; ils peuvent être changés lors de la soumission du bogue ou plus tard dans le cycle de vie du bogue. Pour créer un nouveau composant : 1. Cliquez sur le lien « Modifier les composants » dans la page « Modifier le produit » 2. Cliquez sur le lien « Ajouter » au bas de la page à droite. 3. Remplissez le champ « Composant », saisissez une courte « Description », le « Responsable par défaut », la « En copie par défaut » et le « Contact QA par défaut » (si activé). Le champ « Description du composant » peut contenir un nombre limité de balises HTML. Les champs « Composant » et « Description » peuvent contenir du code HTML ; le champ « Responsable par défaut » doit être un nom de connexion déjà existant dans la base de données de Bugzilla. 3.6. Versions Les versions sont les révisions du produit, comme par exemple, « Flinders 3.1 », « Flinders 95 » et « Flinders 2000 ». Le champ « Version » n'est pas un champ à sélections multiples ; la pratique habituelle est de sélectionner la version la plus ancienne connue ayant le bogue. Pour créer et modifier les versions : 1. Dans la page « Modifier le produit », sélectionnez « Modifier les versions » 2. Vous remarquerez que le produit a déjà la version par défaut « undefined ». Cliquez sur le lien « Ajouter » au bas de la page à droite. 3. Saisissez le nom de la version. Ce champ ne prend que du texte. Puis, cliquez sur le bouton « Ajouter ». 3.7. Jalons Les jalons sont des objectifs pour lesquels vous projetez de corriger un bogue. Par exemple, vous avez un bogue que vous prévoyez de corriger pour la version 3.0, on doit donc lui assigner le jalon 3.0. Les options de jalons n'apparaissent pour un produit que si vous avez activé le paramètre « usetargetmilestone » dans l'onglet « Champs des bogues » dans la page « Paramètres ». Pour créer de nouveaux jalons et définir des jalons par défaut : 1. Sélectionnez « Modifier les jalons » dans la page « Modifier le produit ». 2. Sélectionnez « Ajouter » dans le coin inférieur droit. 3. Saisissez le nom du jalon dans le champ « Jalon ». Vous pouvez optionnellement définir la « Position », qui est un nombre positif ou négatif (32768 to 32767) qui définit où dans la liste apparaît ce jalon. Ceci est utile car les jalons ne suivent pas l'ordre alphanumérique. Par exemple, « Futur » devrait se trouver après « Version 1.2 ». Cliquez sur « Ajouter ». 3.8. Étiquettes Les étiquettes sont un moyen d'attacher un état spécifique à un bogue ou un fichier joint, soit « + » soit « - ». La signification de ces symboles dépend du texte de l'étiquette elle-même, mais selon le contexte, ils pourraient signifier « passé/échoué », « accepté/rejeté », « approuvé/refusé » ou un simple « oui/non ». Si votre site accepte les demandes d'étiquettes, alors un utilisateur peut définir une étiquette à « ? » pour demander à un autre utilisateur de regarder son bogue/fichier joint et de définir l'étiquette pour son état correct. 3.8.1. Un simple exemple Un développeur pourrait vouloir demander à son responsable, « Devons-nous corriger ce bogue pour la version 2.0 ? ». Ils pourraient vouloir faire cela pour beaucoup de bogues, donc il serait bien de faciliter le processus… Dans Bugzilla, cela fonctionnerait de cette façon : 1. L'administrateur de Bugzilla crée un étiquette intitulée « bloquant2.0 » qui s'affiche dans tous les bogues de votre produit. Elle s'affiche dans la page « Afficher le bogue » sous le texte « bloquant2.0 » avec une liste déroulante à côté. La liste déroulante contient quatre valeurs : une espace, « ? », « - » et « + ». 2. Le développeur définit l'étiquette à « ? ». 3. Le responsable voit l'étiquette bloquant2.0 avec la valeur « ? ». 4. Si le responsable pense que la fonctionnalité doit être intégrée avant la publication de la version 2.0, il définit l'étiquette à « + ». Sinon, à « - ». 5. Maintenant, tout utilisateur de Bugzilla qui consulte le bogue sait si le bogue doit être corrigé avant la version 2.0. 3.8.2. À propos des étiquettes 3.8.2.1. Valeurs Les étiquettes peuvent avoir trois valeurs : ? Un utilisateur demande qu'un état soit défini. (Pensez à cela comme « Une question est posée »). - L'état a été défini négativement. (La réponse est « non »). + L'état a été défini positivement. (La réponse est « oui »). Il existe en fait une quatrième valeur que peut avoir une étiquette -- « non défini » -- qui s'affiche comme une espace. Cela signifie juste que personne n'a expressément émis d'opinion (ou demandé à quelqu'un d'autre son opinion) sur le bogue ou le fichier joint. 3.8.3. Utiliser les demandes d'étiquettes Si une étiquette a été définie comme « demandé » et qu'un utilisateur a suffisamment de privilèges pour la demander (voir ci-dessous), il peut définir l'état de l'étiquette à « ? ». Cet état indique que quelqu'un (« le demandeur ») demande à quelqu'un d'autre de définir l'étiquette à « + » ou « - ». Si l'étiquette a été définie comme « sollicité », une boîte de texte apparaîtra à coté de l'étiquette dans laquelle le demandeur peut saisir un nom d'utilisateur de Bugzilla. Cette personne recevra un courriel l'informant de la requête et pointant sur le bogue/fichier joint en question. Si une étiquette n'a pas été définie comme « sollicité », alors aucune boîte de texte n'apparaîtra. Une requête pour définir cette étiquette ne peut pas être adressée à un utilisateur en particulier, mais doit être demandée « en l'air ». Le demandeur peut faire une requête « en l'air » sur toute étiquette en laissant simplement la boîte de texte vide. 3.8.4. Deux types d'étiquettes Les étiquettes peuvent être posées à deux endroits : sur un fichier joint ou sur un bogue. 3.8.4.1. Étiquettes de fichiers joints Les étiquettes de fichiers joints sont utilisées pour poser une question sur un fichier joint spécifique d'un bogue. Beaucoup d'installation de Bugzilla utilise ceci pour demander à un développeur la « revue » du code d'un autre développeur avant de le déposer dans le référentiel. Ils joingnent le code à un rapport de bogues et définissent une étiquette sur le fichier joint intitulée « revue » à revue?chef@domaine.com. « chef@domaine.com » est alors notifié par courriel qu'il doit vérifier le fichier joint et l'approuver ou le refuser. Pour un utilisateur de Bugzilla, les étiquettes de fichiers joints apparaissent dans trois endroits : 1. Sur la liste des fichiers joints dans la page « Afficher le bogue », vous pouvez voir l'état actuel de toutes les étiquettes qui ont été définies à « ? », « + » ou « - ». Vous pouvez voir qui a demandé l'étiquette et à qui elle a été demandée). 2. Quand vous modifiez un fichier joint, vous pouvez voir toutes les étiquettes qui peuvent être définies ainsi que celles qui ont déjà été définies. L'écran « Modifier le fichier joint » est l'endroit où vous définissez les valeurs « ? », « - », « + » et où vous pouvez les enlever. 3. Les requêtes sont listées dans la « File d'attente des requêtes », qui est accessible à partir du lien « Mes requêtes » (si vous êtes connecté) ou du lien « Requêtes » (si vous êtes déconnecté) visible dans le pied de page de toutes les pages. 3.8.4.2. Étiquettes de bogues Les étiquettes de bogues sont utilisées pour définir un état sur le bogue lui-même. Vous pouvez les voir dans les écrans « Afficher le bogue » et « Requêtes » comme décrit plus haut. Seuls les utilisateurs ayant suffisamment de privilèges (voir ci-dessous) peuvent définir des étiquettes sur les bogues. Ceci n'inclut pas nécessairement le responsable, le rapporteur ou les utilisateurs ayant le privilège editbugs. 3.8.5. Gérer les étiquettes Si vous avez le privilège « editcomponents », vous pouvez modifier les « Types d'étiquettes » dans la page principale d'administration. Cliquer sur le lien « Étiquettes » vous amènera sur la page « Gérer les types d'étiquettes ». Vous pouvez sélectionner ici si vous voulez créer (ou modifier) une étiquette de bogue ou de fichier joint. Peu importe ce que vous choisissez, l'interface est la même, donc nous ne l'aborderons qu'une fois. 3.8.5.1. Modifier une étiquette Pour modifier les propriétés d'une étiquette, cliquez sur le nom de l'étiquette. Cela vous mènera au même formulaire comme décrit ci-dessous (Section 3.8.5.2, « Créer une étiquette »). 3.8.5.2. Créer une étiquette Quand vous cliquez sur le lien « Créer un type d'étiquette pour … », un formulaire est affiché. Voici ce que signifie les champs dans ce formulaire : 3.8.5.2.1. Nom C'est le nom de l'étiquette. Il sera affiché aux utilisateurs de Bugzilla qui consulteront ou définiront les étiquettes. Le nom peut contenir tout caractère Unicode valide sauf les virgules et les espaces. 3.8.5.2.2. Description Explique de façon détaillée l'étiquette. Elle est visible dans une info-bulle quand le curseur de la souris passe au-dessus du nom de l'étiquette dans les pages « Afficher le bogue » et « Modifier le fichier joint ». Ce champ peut être aussi long que vous le voulez et contenir tous les caractères que vous voulez. 3.8.5.2.3. Categorie LE comportement par défaut pour une nouvelle étiquette est d'apparaître sur tous les produits et composants, c'est pourquoi « __Tous__:__Tous__ » est déjà saisi dans la boîte « Inclusions ». Si ce n'est pas ce que vous voulez, vous pouvez soit définir des exclusions (pour les produits pour lesquels vous ne voulez pas voir apparaître l'étiquette), soit supprimer « __Tous__:__Tous__ » de la boîte « Inclusions » et définir spécifiquement les produits/composants pour cette étiquette. Pour créer une inclusion, sélectionnez un produit dans la liste déroulante. Vous pouvez également sélectionner un composant spécifique dans la liste déroulante. (Définir « __Tous__ » pour « Produit » se traduit par « tous les produits dans cette installation de Bugzilla ». Sélectionner « __Tous__ » dans le champ « Composant » signifie « tous les composants du produit sélectionné. ») quand les sélections sont faites, cliquez sur « Inclure » et les paires Produit/Composant apparaîtront dans la boîte « Inclusions » à droite. Pour créer une exclusion, le processus est le même ; sélectionnez un produit dans la liste déroulante, sélectionnez un composant spécifique si vous en voulez un, et cliquez sur « Exclure ». Les paires produit/composant apparaîtront dans la boîte « Exclusions » à droite. Cette étiquette sera et pourra être définie pour tous les produits/composants apparaissant dans la boîte « Inclusions » (ou qui tombent dans la règle « __Tous__ » appropriée). Cette étiquette n'apparaîtra pas (et par conséquent ne pourra être définie) pour tout produit apparaissant dans la boîte « Exclusions ». IMPORTANT : Les exclusions surpassent les inclusions. Vous pouvez sélectionner un produit sans sélectionner de composant spécifique, mais vous ne pouvez pas sélectionner de composant sans produit ou sélectionner de composant qui n'appartienne à aucun produit. Si vous faites cela, Bugzilla affichera un message d'erreur, même si tous vos dproduits ont un composant ayant ce nom. Exemple Imaginons que vous ayez un produit intitulé « Avion » qui a des milliers de composants. Vous voulez avoir la possibilité de demander si un problème doit être corrigé pour le prochain modèle d'avion que vous fabriquez. Nous appellerons l'étiquette « corrigerProchainModèle ». Mais il y a un composant dans « Avion » intitulé « Pilote ». Cela n'a pas de sens de fabriquer un nouveau pilote, et donc vous ne voulez pas avoir cette étiquette dans ce composant. Donc vous incluez « Avion:__Tous__ » et vous excluez « Avion:Pilote ». 3.8.5.2.4. Position Les étiquettes s'affichent normalement en ordre alphabétique. Si vous voulez les afficher dans un ordre différent, vous pouvez utiliser ceci pour définir la position de chaque étiquette. Les étiquettes ayant une valeur de position faible apparaîtront avant les étiquettes ayant une valeur de position élevée. Les étiquettes ayant la même valeur de position seront classées alphabétiquement, mais seront encore placées après les étiquettes ayant une plus faible valeur de la position et avant celles ayant une valeur de poistion plus élevée. Exemple : J'ai les étiquettes « A » (Position 100), « B » (Position 10), « C » (Position 10) et « D » (Position 1). L'ordre d'affichage sera : D, B, C, A. 3.8.5.2.5. Active Parfois, vous pourriez vouloir conserver les informations sur les anciennes étiquettes dans la base de données de Bugzilla, mais empêcher les utilisateurs de continuer à les utiliser. Pour faire cela, décochez « active ». Les étiquettes désactivées continueront à apparaître dans l'interface utilisateur si elles ont les valeurs « ? », « + » ou « - » mais elles ne peuvent être qu'effacées (non définies) et ne peuvent pas prendre de nouvelle valeur. Quand une étiquette désactivée est affacée (non définie), elle disparaîtra complètement d'un bogue/fichier joint et ne pourra pas être redéfinie. 3.8.5.2.6. Demandé Les nouvelles étiquettes sont par défaut de type « demandé », ce qui veut dire qu'elles permettent aux utilisateurs de définir les options « ? », « + » et « - ». Pour supprimer l'option « ? », décochez « demandé ». 3.8.5.2.7. Sollicité Par défaut cette boîte est cochée pour les nouvelles étiquettes, ce qui veut dire que les utilisateurs peuvent faire des demandes d'étiquettes à des personnes en particulier. Décocher cette case enlèvera la boîte de texte à côté de l'étiquette ; si elle est toujours de type « demandé », alors les requêtes pourront seulement être faites « en l'air ». Enlever ceci après que des requêtes de type « sollicité » aient été faites ne supprimera pas ces requêtes ; ces informations resteront dans la base de données (bien qu'elles ne s'afficheront plus pour l'utilisateur). 3.8.5.2.8. Multiple Une étiquette de type « Multiple » (activé par défaut pour les nouvelles étiquettes) peut être définie plus d'une fois. Après avoir été définie une fois, une étiquette du même type apparaîtra au-dessous avec le mot « suppl. » (abrégé pour « supplémentaire ») devant son libellé. Il n'y a pas de limite au nombre de fois qu'une étiquette de type « multiple » puisse être définie sur le même bogue/fichier joint. 3.8.5.2.9. Liste « Copie à » Si vous voulez que certains utilisateurs soient notifiés chaque fois que cette étiquette change de valeur (« ? », « - », « + » ou vide), ajoutez-les ici. C'est une liste d'adresses électroniques séparées par des virgules qui ne sont pas nécessairement des comptes utilisateurs de Bugzilla. 3.8.5.2.10. Groupe des permissions Quand ce champ est défini avec un groupe donné, seuls les utilisateurs de ce groupe peuvent définir la valeur de l'étiquette à « + » et « - ». Ce champ n'affecte pas ceux qui peuvent demander ou effacer l'étiquette. Pour cela, voir le champ « Groupe des requêtes » ci-dessous. Si ce champ est laissé vide, tous les utilisateurs peuvent définir ou effacer cette étiquette. Ce champ est utile pour limiter les utilisateurs qui peuvent approuver ou rejeter les requêtes. 3.8.5.2.11. Groupe des requêtes Quand ce champ est défini sur un groupe donné, seuls les utilisateurs de ce groupe peuvent demander ou effacer cette étiquette. Notez que ce champ n'a aucun effet si le champ « Groupe des permissions » est vide. Vous pouvez définir la valeur de ce champ la valeur de ce champ pour un groupe différent, mais les deux champs doivent être renseignés avec un groupe pour que ce champ ait un effet. 3.8.5.3. Supprimer une étiquette Quand vous êtes sur l'écran « Gérer les types d'étiquettes », une liste des étiquettes de bogues et de fichiers joints est affichée. Pour supprimer une étiquette, cliquez sur le lien « Supprimer » à côté de la description de l'étiquette. Une fois supprimée, l'étiquette n'existe plus dans Bugzilla. Toutes les données concernant cette étiquette seront supprimées. Partout où cette étiquette était définie, elle disparaîtra, et vous ne pourrez pas revenir en arrière. Si vous voulez conserver les données concernant l'étiquette, mais que personne ne continue à l'utiliser, décochez « active » dans le formulaire de modification des étiquettes. 3.9. Keywords L'administrateur peut définir des mots-clés qui peuvent être utilisés pour étiqueter et catégoriser les bogues. Par exemple, le mot-clé « régression » est utilisé couramment. Une société pourrait avoir comme politique de corriger toutes les régressions dans la version suivante ; ce mot-clé peut permettre alors de tracer ces bogues plus facilement. Les mots-clés sont globaux, plutôt que limités à un produit. Si un administrateur change un mot-clé actuellement appliqué à des bogues, le cache des mots-clés peut être reconstruit en utilisant le script Section 3.16, « Vérifier et maintenir l'intégrité de la base de données ». Actuellement, les mots-clés ne peuvent pas être marqués comme obsolètes pour empêcher une utilisation ultérieure. Les mots-clés peuvent être créés, modifiés ou supprimés en cliquant sur le lien « Mots-clés » dans la page d'administration. Il y a deux champs pour chaque motclé : le mot-clé lui-même et une brève description. Une fois créé, les mots-clés peuvent être sélectionnés et appliqués à chaque bogue individuellement dans la section « Détails » de chaque bogue. 3.10. Champs personnalisés Bugzilla 3.0 a introduit la possibilité de créer des champs personnalisés. Les champs personnalisés sont traités comme tout autre champ : ils peuvent être définis dans les bogues et utilisés dans les requêtes. Les administrateurs doivent garder à l'esprit qu'ajouter trop de champs peut rendre l'interface utilisateur plus compliquée et plus difficile à utiliser. Les champs personnalisés ne devraient être ajoutés que lorsqu'ils sont absolument nécessaires et en y portant une attention particulière. Avant d'ajouter un champ personnalisé, assurez-vous que Bugzilla ne peut pas déjà réaliser le comportement escompté. Beacoup d'options de Bugzilla ne sont pas activées par défaut, et souvent, les administrateurs trouvent qu'activer simplement certaines options existantes suffit. Les administrateurs peuvent gérer les champs personnalisés en utilisant le lien « Champs personnalisés » dans la page d'administration. La page d'administration des champs personnalisés affiche une liste de champs personnalisés, s'il y en a, et un lien « Ajouter un nouveau champ personnalisé ». 3.10.1. Ajouter des champs personnalisés Pour ajouter un nouveau champ personnalisé, cliquez sue le lien « Ajouter un nouveau champ personnalisé ». Cette page affiche plusieurs options pour le nouveau champ, comme indiqué ci-dessous. Les attributs suivants doivent être définis pour chaque nouveau champ personnalisé : Nom : Le nom du champ utilisé dans la base de données, utilisée en interne. Ce nom DOIT commencer par « cf_ » pour éviter toute confusion avec les champs standards. Si vous omettez cette chaîne, elle sera automatiquement ajoutée au nom que vous avez saisi. Description : Une chaîne courte qui est utilisée comme libellé pour ce champ personnalisé. C'est la chaîne que les utilisateurs verront ; elle doit donc être courte et explicite. Type : Le type du champ à créer. Il existe différents types disponibles : ID de bogue Un champ où l'on peut saisir l'ID d'un autre bogue de la même installation Bugzilla. Pour indiquer le bogue d'une autre installation de Bugzilla, utiliser le champ « Consulter aussi ». Grande boîte de texte : Une boîte de plusieurs lignes pour saisir du texte. Texte libre : Une boîte d'une seule ligne pour saisir du texte. Boîte à sélection multiple : Une boîte de liste où plusieurs options peuvent être sélectionnées. Après la création de ce champ, vous devez le modifier pour y ajouter les options de sélection. Voir Section 3.11.1, « Voir/Modifier les valeurs autorisées » pour des informations sur la modification des valeurs autorisées. Liste déroulante : Une boîte de liste où une seule option peut-être sélectionnée. Après la création de champ, vous devez le modifier pour y ajouter les options de sélection. Voir Section 3.11.1, « Voir/Modifier les valeurs autorisées » pour des informations sur la modification des valeurs autorisées. Date/Heure : Un champ de date. Ce champ apparaît avec un widget de calendrier pour choisir une date. Position : Un nombre entier qui détermine l'ordre dans lequel seront affichés les champs personnalisés dans l'interface utilisateur, notamment lors de la consultation d'un rapport de bogue. Les champs ayant les valeurs les plus faibles seront affichés en premier. Description de relation réciproque : Quand le champ personnalisé est de type « ID de bogue », vous pouvez saisir du texte ici qui sera utilisé comme libellé dans le bogue référencé pour lister les bogues qui pointent vers celui-ci. Ceci permet d'avoir des relations réciproques entre deux bogues. Peut être défini à la création du bogue : Un booléen qui détermine si ce champ peut être défini lors de la création du bogue. Si ce n'est pas le cas, vous devrez d'abord créer le bogue pour pouvoir définir ce champ. Sinon, vous pourrez définir sa valeur lors de la création du bogue, voir Section 5.6, « Rapporter des bogues » à propos de la saisie de bogues. Affiché dans les courriels de bogue pour les nouveaux bogues : Un booléen qui détermine si la valeur définie dans ce champ doit apparaître dans les courriels de bogues quand un bogue est créé. Cet attribut n'aucun effet si le champ ne peut pas être défini lors de la création du bogue. Est obsolète : Un booléen qui détermine si le champ doit être affiché. Les champs personnalisés obsolètes sont cachés. Est obligatoire : Booléen déterminant si ce champ doit être défini. Pour les champs simples et multiples, ceci signifie qu'une valeur (qui n'est pas par défaut) doit être sélectionnée, et pour les champs date et texte, du texte doit être saisi. Le champ apparaît seulement quand : Un champ personnalisé peut être rendu visible quand certains critères sont remplis. Par exemple, quand le bogue appartient à un produit donné ou quand le bogue à une certaine gravité. Si ce champ est laissé vide, alors le champ personnalisé sera toujours visible, dans tous les bogues. Champ contrôlant les valeurs qui apparaissent dans ce champ : Quand le champ personnalisé est de type « Liste » ou « Boîte de sélection multiple », vous pouvez restreindre la disponibilité des valeurs du champ personnalisé en fonction de la valeur d'un autre champ. Ce critère est indépendant du critère utilisé dans le paramètre « Le champ apparaît seulement quand : ». Par exemple, vous pouvez décider qu'une certaine valeur « valeurY » est seulement disponible quand l'état du bogue est RÉSOLU alors que la valeur « valeurX » doit toujours être affichée. Une fois sélectionné le champ qui doit contrôler la disponibilité des valeurs de ce champ personnalisé, vous pouvez modifier les valeurs de ce champ personnalisé pour définir le critère, voir Section 3.11.1, « Voir/Modifier les valeurs autorisées ». 3.10.2. Modifier les champs personnalisés Dès qu'un champ personnalisé est créé, son nom et son type ne peuvent pas être modifiés. Si ce champ est une liste déroulanteIf , la liste de ses valeurs peut être définie comme indiqué dans Section 3.11.1, « Voir/Modifier les valeurs autorisées ». Tous les autres attributs peuvent être modifiés comme décrit ci-dessous. 3.10.3. Supprimer des champs personnalisés Seuls les champs personnalisés marqués comme obsolètes et qui n'ont jamais été utilisés peuvent ≖tre supprimés (sinon l'intégrité de l'historique du bogue pourrait être compromise). Pour les champs personnalisés marqués comme obsolètes, un lien « Supprimer » apparaîtra dans la colonne « Action ». Si le champ personnlisé a déjà été utilisé auparavant, la suppression sera rejetée. Mais marquer le champ comme obsolète suffira à le masquer totalement de l'interface utilisateur. 3.11. Valeurs autorisées Les valeurs autorisées pour le système d'exploitation, la plateforme, les priorité et gravité de bogue, les champs personnalisés de type « Liste » et « Boîte de sélection multiple » (voir Section 3.10, « Champs personnalisés »), ainsi que la liste des états et résolutions peuvent être personnalisés à partir de la même interface. Vous pouvez ajouter, modifier, désactiver et supprimer les valeurs qui peuvent être utilisées pour ces champs. 3.11.1. Voir/Modifier les valeurs autorisées Modifier les valeurs autorisées nécessite le privilège « admin ». Cliquez sur « Valeurs du champ » dans la page d'administration. Une liste de tous les champs, standards et personnalisés, pour lesquels les valeurs autorisées peuvent être modifiées, apparaît. Cliquez sur un nom de champ pour modifier ses valeurs autorisées. Il n'y a pas de limite au nombre de valeurs qu'un champ peut avoir, mais chaque valeur doit être unique pour ce champ. La position est importante pour afficher ces valeurs dans l'ordre désiré. Quand la disponibilité des valeurs d'un champ personnalisé est contrôlée par un autre champ, vous pouvez sélectionner ici quelle valeur de l'autre champ doit être définie pour que la valeur du champ personnalisé apparaisse. 3.11.2. Supprimer des valeurs autorisées Les valeurs autorisées de champs personnalisés peuvent être supprimées, mais seulement si les deux conditions suivantes sont respectées : 1. La valeur n'est pas celle utilisée par défaut par le champ. 2. Aucun bogue n'utilise cette valeur. Si une de ces conditions n'est pas respectée, la valeur ne peut pas être effacée. La seule façon de supprimer ces valeurs consiste à réassigner les bogues pour une autre valeur et de définir une autre valeur par défaut pour le champ. 3.12. Worflow des états de bogue Le workflow des états de bogues n'est plus codé en dur et peut être librement personnalisé à partir de l'interface Web. Seul un état de bogue ne peut pas être renommé ou supprimé, NON CONFIRMÉ, mais le workflow le concernant est libre. La page de configuration affiche tous les états de bogues existants deux fois, la première sur la gauche pour les états de bogue d'où l'on arrive, et la seconde pour l'état vers lequel on va. Si la case est cochée, alors la transition entre les deux états de bogues est valide, sinon, elle est interdite indépendamment de vos privilèges. L'état de bogue utilisé pour le paramètre « duplicate_or_move_bug_status » doit faire partie du workflow car c'est l'état de bogue qui sera utilisé lors du clonage ou du déplacement d'un bogue ; il doit donc être disponible pour chaque état de bogue. Quand le workflow est défini, le lien « Voir les déclencheurs » sous la table vous permet de définir quelles transitions nécessitent un commentaire de la part des utilisateurs. 3.13. Voter Le code pour le système de vote de Bugzilla a été déplacé dans une extension, appelée « Voting », dans le répertoire extensions/Voting/. Pour l'activer, vous devez supprimer le fichier disabled de ce répertoire et exécuter checksetup.pl. Le vote permet de donner aux utilisateurs un ensemble de bulletins de votes qu'ils peuvent affecter à des bogues pour indiquer qu'ils aimeraient les voir corrigés. Ceci permet aux développeurs de jauger les besoins des utilisateurs pour une amélioration ou un bogue particulier. En permettant aux bogues ayant un certain nombre de votes de passer automatiquement de l'état « NON CONFIRMÉ » à l'état « CONFIRMÉ », les utilisateurs de Bugzilla peuvent aider à ce que les bogues de haute priorité soient portés à l'attention des développeurs pour qu'ils ne restent pas longtemps dans l'attente d'un triage. Pour modifier les paramètres de vote : 1. Rendez-vous sur la page « Modifier le produit » du produit que vous souhaitez modifier 2. Votes maximum par personne : Définir ce champ à « 0 » désactive les votes. 3. Votes maximum qu'une personne peut affecter à un bogue : Cela doit être un nombre plus petit que le nombre de « Votes maximum par personne ». Ne définissez pas cd champ à « 0 » si « Votes maximum par personne » n'est pas zéro ; cela n'aurait pas de sens. 4. Nombre de votes qu'un bogue de ce produit doit obtenir pour quitter automatiquement l'état NON CONFIRMÉ : Définir ce champ à « 0 » désactive le passage automatique des bogues de l'état NON CONFIRMÉ à CONFIRMÉ. 5. Quand vous avez ajusté les valeurs comme vous le souhaitez, cliquez sur « Mettre à jour ». 3.14. Citations Les citations sont de petits messages qui peuvent être configurés pour apparaître avec les résultats de recherche. Une installation de Bugzilla peut avoir ses propres citations. Quand une citation doit être affichée, une sélection aléatoire est faite sur l'ensemble des citations déjà présentes. La soumission de citation est contrôlée par le paramètre quip_list_entry_control. Plusieurs valeurs sont possibles : open, moderated ou closed. Pour activer l'approbation de citations, vous devez définir ce paramètre à « moderated ». De cette façon, les utilisateurs seront libres de soumettre des citations mais un administrateur doit explicitement les approuver avant qu'elles ne soient effectivement utilisées. Pour voir les citations dans l'interface utilisateurs, il suffit de cliquer sur une citation lorsqu'elle est affichée avec les résultats de recherche. Ou elles peuvent être atteintes directement dans le navigateur en visitant l'URL « quips.cgi » (préfixée par l'emplacement Web habituel de votre installation Bugzilla). Quand l'interface pour les citations a été activée, il suffit de cliquer sur « Voir et modifier la liste complète des citations » pour voir la page d'administration. Une page recensant toutes les citations disponibles de la base de données sera affichée. Une case à cocher est située à côté de chaque citation, dans la colonne « Approuvée ». Les citations ayant cette case cochée sont déjà approuvées et apparaîtront avec les résultats de recherche. Celles qui n'ont pas cette case cochée sont encore dans la base de données mais n'apparaîtront pas dans les résultats de recherche. Les citations soumises par les utilisateurs n'ont pas cette case cochée. Il y a également un lien de suppression à côté de chaque citation qui peut être utilisé pour supprimer définitivement une citation. L'affichage des citations est contrôlé par la préférence utilisateur display_quips. Les valeurs possibles sont « Activé » et « Désactivé ». 3.15. Groupes et restrictions de groupes Les groupes permettent de séparer les bogues en divisions logiques. Les groupes sont typiquement utilisés pour isoler les bogues qui ne devraient être vus que par certaines personnes. Par exemple, une société pourrait créer un groupe différent pour chacun de ses clients ou de ses partenaires. Les permissions de groupe pourraient être définies de sorte que chaque partenaire ou client ne puisse accéder qu'à ses propres bogues. Ou encore, les groupes pourraient être utilisés pour créer des contrôles d'accès variables pour différents départements à l'intérieur d'une organisation. Un autre usage courant des groupes est d'associer des groupes à des produits, créant ainsi une isolation et un contrôle d'accès par produit. Les groupes et les comportements de groupe sont contrôlés dans plusieurs endroits : 1. La page de configuration des groupes. Pour voir ou modifier des groupes existants, ou pour en créer de nouveaux, cliquez sur le lien « Groupes » dans la page « Administration ». Cette section du manuel traite principalement des aspects des restrictions de groupes accédés sur cette page. 2. Paramètres de configuration globaux. Bugzilla a plusieurs paramètres qui contrôlent le comportement des groupes par défaut et les niveaux de restrictions globaux. Pour plus d'informations sur les paramètres qui contrôlent le comportement global des groupes, consultez Section 3.1.9, « Restrictions de groupe ». 3. Association de produits avec des groupes. La plupart des fonctionnalités des groupes et de leur sécurité est contrôlée au niveau du produit. Certains aspects des restrictions de groupe pour les produits sont traités dans cette section, mais pour plus de détails, consultez Section 3.4.4, « Affecter des restrictions de groupes à des produits ». 4. Contrôles d'accès aux groupes pour les utilisateurs. Consultez Section 3.15.3, « Affecter des utilisateurs aux groupes » pour des détails sur la façon d'affecter des restrictions de groupe pour les utilisateurs. Les restrictions de groupe sont tels que, que seuls les membres d'un groupe peuvent voir le bogue. Si un bogue est dans plus d'un groupe, seuls les membres de tous les groupes auxquels appartient le bogue, peuvent voir le bogue. Pour des informations pour autoriser un accès en lecture seule à certains utilisateurs et un accès en modification complet à d'autres, consultez Section 3.4.4, « Affecter des restrictions de groupes à des produits ». Par défaut, les bogues peuvent être également vus par le responsable, le rapporteur et par toutes les personnes dans la liste « Copie à », sans tenir compte des droits qu'ils auraient normalement pour l'affichage des bogues. La visibilité pour le rapporteur et les personnes de la liste « Copie à » peut être be outrepassé (bogue par bogue) en modifiant le bogue, en y cherchant la section commençant par « Les utilisateurs des rôles sélectionnés ci-dessous… » et en retirant la coche de la case située à côté de « Rapporteur » ou de « Copie à » (ou les deux). 3.15.1. Créer des groupes Pour créer un nouveau groupe, réalisez les étapes suivantes : 1. Cliquez sur le lien « Administration » dans le pied de page, puis sur le lien « Groupes » dans la page d'administration. 2. Un tableau de tous les groupes existants est affiché. Sous le tableau se trouve une description de tous les champs. Pour créer un nouveau groupe, cliquez sur le lien « Ajouter un groupe » sous le tableau des groupes existants. 3. Il y a cinq champs à remplir. Ces champs sont documentés sous le formulaire. Choisissez un nom et une description pour le groupe. Décidez ensuite si ce groupe doit être utilisé pour les bogues (selon toute vraisemblance, ceci doit être sélectionné). Vous pouvez optionnellement choisir une expression régulière qui ajoutera automatiquement les utilisateurs qui correspondent au groupe et choisir une icône qui aidera à identifier les commentaires d'utilisateurs pour le groupe. L'expression régulière peut être utile, par exemple pour ajouter automatiquement tous les utilisateurs d'une même société dans un groupe (si le groupe est destiné à un client ou un partenaire spécifique). Si le champ « Nouvelle expression régulière d'utilisateur » est rempli, tous les utilisateurs dont l'adresse électronique correspond à l'expression régulière seront automatiquement membre du groupe tant que leurs adresses correspond à l'expression régulière. Si leurs adresses changent et ne correspondent plus à l'expression régulière, ils seront retirés du groupe. Les versions 2.16 et précédentes ne retiraient pas automatiquement les utilisateurs dont l'adresse électronique ne correspondait plus à l'expressioon régulière. Si vous spécifiez un domaine dans l'expression régulière, assurez-vous de terminer l'expression régulière par « $ ». Sans quoi, en autorisant l'accès à « @masociete\.com », vous autoriserez aussi l'accès à « pirate@masociete.com.cracker.net ». Vous devrez plutôt utiliser « @masociete\.com$ » comme expression régulière. 4. Après la création du groupe, vous pouvez le modifier pour définir des options supplémentaires. La page « Modification du groupe » permet de spécifier d'autres groupes qui pourraient être inclus dans celui-ci et les groupes autorisés à ajouter ou retirer des utilisateurs de ce groupe. Pour plus de détails, consultez Section 3.15.2, « Modification de groupes et affectation de restrictions ». 3.15.2. Modification de groupes et affectation de restrictions Pour accéder à la page « Modification du groupe », cliquez sur le lien « Administration » dans le pied de page puis cliquez sur le lien « Groupes » dans la page d'administration. Un tableau de tous les groupes existants est affiché. Cliquez sur le nom du groupe que vous voulez modifier. La page « Modification du groupe » contient les mêmes cinq champs présents lors de la création d'un nouveau groupe. Elle contient deux sections supplémentaires « Permissions de groupe » et « Suppression de masse ». L'option « Suppression de masse » supprime simplement tous les utilisateurs qui correspondent à l'expression régulière saisie du groupe. La section « Permissions de groupe » nécessite plus d'explications. La section « Permissions de groupe » dans la page « Modification du groupe » contient quatre ensembles de permissions qui contrôlent les relations de ce groupe aux autres groupes. Si le paramètre « usevisibilitygroups » est utilisé (voir Section 3.1, « Configuration de Bugzilla ») deux ensembles de permissions supplémentaires sont affichés. Chacun consiste en deux boîtes de sélection. Sur la gauche, une boîte de sélection avec une liste des groupes existants. Sur la droite, une boîte de sélection listant tous les groupes actuellement sélectionnés pour cette permission (cette boîte sera vide pour les nouveaux groupes). La façon dont ces permissions permettent aux groupes d'être en relation avec d'autres est appelée héritage. Chacune des six permissions est décrite ci-dessous. Groupes qui sont membres de ce groupe Les membres de tous les groupes sélectionnés ici seront automatiquement membres de ce groupe. En d'autres termes, les membres de tout groupe sélectionné hériteront de l'appartenance à ce groupe. Groupes dont ce groupe est membre Les membres de ce groupe hériteront de l'appartenance à tout groupe sélectionné ici. Par exemple, supposons que le groupe modifié est Admin. S'il y a deux produits (Produit1 et Produit2) et que chaque produit a son propre groupe (Groupe1 et Groupe2), et que le groupe Admin doit avoir accès aux deux produits, sélectionnez simplement Groupe1 et Groupe2 ici. Groupes pouvant donner l'appartenance à ce groupe Les membres de tout groupe sélectionné ici pourront ajouter des utilisateurs à ce groupe, même s'ils ne sont pas membres eux-mêmes de ce groupe. Groupes pour lesquels ce groupe peut donner l'appartenance Les membres de ce groupe peuvent ajouter des utilisateurs à tout groupe sélectionné ici, même s'ils ne sont pas membres eux-mêmes des groupes sélectionnés. Groupes pouvant voir ce groupe Les membres de tout groupe sélectionné peuvent voir les utilisateurs dans ce groupe. Ce paramètre n'est visible que si le paramètre « usevisibilitygroups » est activé dans la page de configuration de Bugzilla. Consultez Section 3.1, « Configuration de Bugzilla » pour des informations sur la configuration de Bugzilla. Groupes que ce groupe peut voir Les membres de ce groupe peuvent voir les membres de tous les groupes sélectionnés. Ce paramètre n'est visible que si le paramètre « usevisibilitygroups » est activé dans la page de configuration de Bugzilla. Consultez Section 3.1, « Configuration de Bugzilla » pour des informations sur la configuration de Bugzilla. 3.15.3. Affecter des utilisateurs aux groupes Les utilisateurs peuvent devenir membres d'un groupe de plusieurs manières : 1. L'utilisateur peut être explicitement placé dans le groupe par la modification de son profil. Ceci peut être effectué en accédant à la page « Utilisateurs » dans la page « Administration ». Utilisez le formulaire de recherche pour trouver l'utilisateur dont vous voulez modifier l'appartenance à un groupe, et cliquez sur son adresse électronique dans les résultats de recherche pour modifier son profil. La page du profil liste tous les groupes et indique si l'utilisateur est membre du groupe directement ou indirectement. Vous trouverez plus d'informations sur l'appartenance indirecte à un groupe cidessous. Pour plus de détails sur l'administration des utilisateur, consultez Section 3.2, « Administrer les utilisateurs ». 2. Le groupe peut inclure un autre groupe dont l'utilisateur est membre. Ceci est indiqué par des crochets autour de la case à cocher à côté du nom du groupe dans le profil de l'utilisateur. Consultez Section 3.15.2, « Modification de groupes et affectation de restrictions » pour plus de détails sur l'héritage de groupe. 3. L'adresse électronique de l'utilisateur peut correspondre à une expression régulière spécifiée dans le groupe et qui autorise automatiquement l'appartenance au groupe. Ceci est indiqué par des « * » encadrant la case à cocher à côté du nom du groupe dans le profil de l'utilisateur. Consultez Section 3.15.1, « Créer des groupes » pour des détails sur l'option d'expression régulière lors de la création de groupe. 3.15.4. Affecter des restrictions de groupes à des produits La fonctionnalité principale des groupes est dérivée des relations des groupes aux produits. Les concepts sur la ségrégation de l'accès aux bogues en utilisant les restrictions de groupes sur les produits peuvent être déroutants. Pour des détails et des exemples sur ce sujet, consultez Section 3.4.4, « Affecter des restrictions de groupes à des produits ». 3.16. Vérifier et maintenir l'intégrité de la base de données Avec le temps, il est possible que la base de données de Bugzilla se corrompe ou présente des anomalies. Cela pourrait se produire avec une utilisation normale de Bugzilla, une administration manuelle de la base de données en dehors de l'interface utilisateur de Bugzilla ou à cause d'autres événements inattendus. Bugzilla contient un script de « Vérification d'intégrité » qui peut réaliser des vérifications de bases de données basiques et réparer certains problèmes ou inconsistances. Pour exécuter le script de « Vérification d'intégrité », il faut se connecter en tant qu'administrateur et cliquer sur le lien « Check-up » dans la page d'administration. Tout problème identifié sera alors affiché en lettres rouges. Si le script est capable de corriger un problème, il affichera un lien pour lancer la correction. Si le script ne peut pas corriger le problème, il demandera une administration manuelle de la base de données ou une restauration. Le script de « Vérification d'intégrité » peut également être exécuté en ligne de commande par le script Perl sanitycheck.pl. Le script peut aussi être exécuté comme tâche planifiée. Les résultats seront alors envoyés par courriel. Une bonne pratique est d'exécuter régulièrement le script de « Vérification d'intégrité ». Le script de « Vérification d'intégrité » ne remplace pas un administrateur de base de données compétent. Il est seulement conçu pour vérifier et réparer les problèmes de bases de données basiques. Chapitre 4. La sécurité dans Bugzilla Table des matières 4.1. Système d'exploitation 4.1.1. Ports TCP/IP 4.1.2. Comptes utilisateur système 4.1.3. La prison chroot 4.2. Serveur Web 4.2.1. Désactiver l'accès à distance aux fichiers de configuration de Configuration 4.3. Bugzilla 4.3.1. Prevent users injecting malicious Javascript Bien que certains des éléments dans ce chapitre soient relatifs au système d'exploitation sur lequel est exécuté Bugzilla ou sur certains logiciels de support requis pour faire fonctionner Bugzilla, tout est lié à la protection de vos données. Ceci n'est pas destiné à être un guide exhaustif de sécurisation de Linux, Apache, MySQL ou toute autre partie logicielle mentionnée. Il n'y a pas de substitut à une administration et une surveillance actives d'une machine. La clé pour une bonne sécurité tient en fait en ces trois mots : c'est vous. Bien que les programmeurs s'efforcent en général à écrire du code sûr, les accidents dpeuvent arriver et arrivent. La meilleure approche de sécurité consiste toujours à supposer que le programme sur lequel vous travaillez n'est pas sûr à 100 % et qu'il faut faut limiter son accès aux autres éléments de la machine autant que possible. 4.1. Système d'exploitation 4.1.1. Ports TCP/IP Le standard TCP/IP définit plus de 65000 ports pour l'envoi et la réception du trafic. Parmi ceux-ci, Bugzilla n'a besoin que d'un seul pour fonctionner (différentes configurations et options peuvent en nécessiter jusqu'à trois). Vous devez faire un audit sur votre serveur et vous assurez que vous n'êtes pas en train d'écouter des ports dont vous n'avez pas besoin. Il est aussi fortement recommandé que le serveur sur lequel se trouve Bugzilla, de même que toute autre machine que vous administrez, soient placés derrière un pare-feu. 4.1.2. Comptes utilisateur système Beaucoup de démons, tels que httpd d'Apache ou mysqld de MySQL fonctionnent en tant que « root » ou « nobody ». C'est encore pire sur les machines Windows où la majorité des services focntionne en tant que « SYSTEM ». L'exécution en « root » ou « SYSTEM » introduit des inquiétudes évidentes quant à la sécurité, les problèmes introduits par l'exécution de tout en tant que « nobody » peuvent ne pas être si évidents. Grossièrement, si vous exécutez tous les démons en tant que « nobody » et que l'un d'entre eux est compromis, il peut compromettre tout autre démon exécuté en tant que « nobody » sur votre machine. Pour cette raison, il est recommandé de créer un compte utilisateur par démon. Vous aurez besoin de définir l'option webservergroup dans le fichier localconfig pour le groupe avec lequel votre serveur Web s'exécute. Cela permettra au script ./checksetup.pl de définir les permissions de fichiers sur les systèmes Unix de sorte que rien ne soit accessible en écriture pour tout le monde. 4.1.3. La prison chroot Si votre système le gère, vous devriez considérer de faire fonctionner Bugzilla dans une prison chroot. Cette option fournit une sécurité sans précédent en empêchant tout ce qui s'exécute à l'intérieur de la prison d'accéder à toute information en dehors de celle-ci. Si vous souhaitez utiliser cette option, veuillez consulter la documentation livrée avec votre système. 4.2. Serveur Web 4.2.1. Désactiver l'accès à distance aux fichiers de configuration de Configuration Il y a beaucoup de fichiers placés dans le répertoire Bugzilla qui ne doivent pas être accessibles depuis le Web. À cause de la façon dont est actuellement structuré Bugzilla, la liste de ce qui doit ou ne doit pas être accessible est plutôt compliquée. Un moyen rapide est d'exécuter le script testserver.pl pour vérifier que votre serveur Web sert les pages de Bugzilla comme il le doit. Si ce n'est pas le cas, veuillez suivre les quelques étapes ci-dessous. Bugzilla sait créer des fichiers .htaccess qui appliquent ces règles. Les instructions pour activer ces directives dans Apache peuvent être consultées sur Section 2.2.4.1, « Bugzilla utilisant Apache » Dans le répertoire principal de Bugzilla, vous devez : Bloquer : *.pl, *localconfig* Dans le répertoire data : Bloquer tout Dans le répertoire data/webdot : Si vous utilisez un serveur « webdot » distant : Bloquer tout Mais autoriser : *.dot seulement pour le serveur « webdot » distant Sinon, si vous utilisez un « GraphViz » local : Bloquer tout Mais autoriser : *.png, *.gif, *.jpg, *.map Et si vous n'utilisez aucun serveur « webdot » : Bloquer tout In Bugzilla : Bloquer tout Le répertoire template: Bloquer tout Assurez-vous que les données qui ne doivent pas être accédées à distance soient correctement bloquées. Accordez un intérêt particulier au fichier localconfig qui contient le mot de passe de votre base de données. Gardez à l'esprit que certains éditeurs créent des fichiers temporaires ou de sauvegarde dans le répertoire de travail et que ceux-ci ne doivent pas être accessibles non plus. Pour plus d'informations, consultez le bogue 186383 ou Bugtraq ID 6501. Pour tester, exécutez le script testserver.pl. Assurez-vous de consulter Section 2.2.4, « Le serveur Web » pour les intructions spécifiques au serveur Web que vous utilisez. 4.3. Bugzilla 4.3.1. Prevent users injecting malicious Javascript Si vous avez installé Bugzilla version 2.22 ou une version ultérieure pour la première fois (pas une mise à jour à partir d'une ancienne installation), alors le paramètre utf8 est activé par défaut. Ceci permet à Bugzilla de définir explicitement l'encodage de caractères, suivant ainsi la a recommandation du CERT conseillant exactement cela. Ce qui suit par conséquent ne s'adresse pas à vous ; conservez seulement le paramètre utf8 activé. Si vous avez fait une mise à jour à partir d'une ancienne version, il peut alors être possible pour un utilisateur de Bugzilla de tirer avantage del'ambiguïté de l'encodage de caractères pour injecter du code HTML dans les commentaires de Bugzilla. Ceci pourrait inclure du code malveillant. À cause des problèmes d'internationalisation, nous ne pouvons pas activer le paramètre utf8 sur des mises à jour d'installations. Activer ce paramètre manuellement empêchera ce problème de survenir. Chapitre 5. Utilisation de Bugzilla Table des matières 5.1. 5.2. 5.3. 5.4. 5.5. Introduction Création d'un compte Bugzilla Anatomie d'un bogue Cycle de vie d'un bogue Recherche de bogues 5.5.1. Tableaux booléens 5.5.2. Recherche d'un bogue spécifique 5.5.3. Sensibilité à la casse dans les recherches 5.5.4. Listes des bogues 5.5.5. Ajout/suppression de marqueurs 5.6. Rapporter des bogues 5.6.1. Rapporter un nouveau bogue 5.6.2. Clônage d'un bogue existant 5.7. Fichiers joints 5.7.1. Visionneuse de fichiers 5.8. Trucs et astuces 5.8.1. Hyperlien automatique 5.8.2. Commentaires 5.8.3. Formatage des commentaires du côté du serveur 5.8.4. Arbre de dépendance 5.9. Informations d'horodatage 5.10. Préférences utilisateur 5.10.1. Préférences générales 5.10.2. Préférences de messagerie 5.10.3. Recherches enregistrées 5.10.4. Préférences du compte 5.10.5. Permissions 5.11. Rapports et graphiques 5.11.1. Rapports 5.11.2. Graphiques 5.12. Étiquettes 5.13. Notifications 5.13.1. Évènement 5.13.2. Programmation des notifications 5.13.3. Requêtes de notifications 5.13.4. Enregistrement des modifications 5.1. Introduction Cette section contient des informations pour les utilisateurs finaux de Bugzilla. Il y a une installation de test, appelée Landfill, avec laquellle vous êtes invité à jouer (si elle est en fonction). Cependant, toutes les installations de Bugzilla n'auront pas forcément toutes les fonctionnalités activées et des installations différentes peuvent utiliser des versions différentes, aussi, toutes les indications données dans ce document ne fonctionneront pas comme décrites. La foire aux questions (FAQ) est disponible sur wiki.mozilla.org. Elle peut couvrir des questions pour lesquelles vous n'avez pas de réponse. 5.2. Création d'un compte Bugzilla Si vous voulez utiliser Bugzilla, vous devez commencer par créer un compte. Consultez l'administrateur responsable de votre installation Bugzilla pour connaître l'URL à laquelle vous connecter pour y accéder. Si vous désirez tester, utilisez cette URL : http://landfill.bugzilla.org/bugzilla-4.4-branch/. 1. Sur la page d'accueil index.cgi, cliquez sur le lien « Nouveau compte » situé en haut ou en bas de la page. Saisissez maintenant votre adresse électronique puis cliquez sur le bouton « Envoyer ». Si aucun de ces liens n'est disponible, cela signifie que l'administrateur de cette installation a désactivé la création automatique de compte. Lui seul peut créer des comptes utilisateurs. Une raison possible est que cette installation est privée. Si la création de compte est restreinte à certains utilisateurs seulement, vous pouvez voir les liens mais votre inscription pourra échouer si votre adresse électronique ne figure pas dans la liste des personnes autorisées à s'inscrire. C'est un autre moyen de restreindre l'accès et l'édition de bogue sur cette installation. 2. Dans quelques instants, et si votre enregistrement est accepté, vous devriez recevoir un courriel sur l'adresse électronique que vous avez fournie, qui contient votre nom de connexion (généralement identique à l'adresse électronique), et deux URL avec un jeton (une chaîne aléatoire générée par l'installation) pour confirmer ou annuler votre enregistrement. C'est un moyen pour empêcher les utilisateurs d'abuser avec la création de comptes, par exemple en saisissant des adresses électroniques inexistantes ou qui ne sont pas les leurs. 3. Par défaut, vous avez 3 jours pour confirmer votre inscription. Passé ce délai, le jeton est invalidé et l'inscription automatiquement annulée. Vous pouvez également annuler votre inscription en cliquant sur le lien approprié dans le courrier de confirmation que vous avez reçu. 4. Si vous confirmez votre inscription, Bugzilla vous demandera votre vrai nom (optionnel, mais recommandé) et votre mot de passe, qui devra comporter entre 3 et 16 caractères. 5. Maintenant, il vous suffit de cliquer sur le lien « Connexion » au bas de la page dans votre navigateur, de saisir l'adresse électronique et le mot de passe que vous avez choisis dans le formulaire de connexion et de cliquer sur le bouton « Se connecter ». Vous êtes maintenant connecté. Bugzilla utilise des cookies pour se souvenir que vous vous êtes connecté, donc, à moins d'avoir désactivé les cookies ou d'avoir changé d'adresse IP, vous ne devriez pas avoir à vous identifier à nouveau pendant votre session. 5.3. Anatomie d'un bogue Le cœur de Bugzilla se situe dans l'écran affiché pour un bogue en particulier. C'est un bon endroit pour expliquer quelques concepts de Bugzilla. Le Bogue 1 sur Landfill est un bon exemple. Vous remarquerez que les libellés pour la plupart des champs sont des hyperliens ; en cliquant dessus, vous ferez apparaître une aide contextuelle sur ce champ en particulier. Les champs marqués avec « * » peuvent ne pas être présents sur toutes les installations Bugzilla. 1. Produit et composant : Les bogues sont divisés par produits et composants, un produit ayant un ou plusieurs composants. Par exemple, le produit « Bugzilla » sur bugzilla.mozilla.org est composé de plusieurs composants : Administration : Administration d'une installation de Bugzilla. Bugzilla-Général : Tout ce qui ne correspond pas aux autres composants ou qui en concerne plusieurs à la fois. Création/modification de bogues : Création, modification et affichage des bogues. Documentation : La documentation de Bugzilla, y compris le guide de Bugzilla. Courriel : Tout ce qui concerne les courriels envoyés par Bugzilla. Installation : Le processus d'installation de Bugzilla. Requêtes/Liste des bogues : Tout ce qui concerne la recherche de bogues et l'affichage des listes de bogues. Rapport/Graphiques : Obtenir des rapports dans Bugzilla. Comptes utilisateurs : Tout ce qui concerne la gestion d'un compte utilisateur du point de vue de l'utilisateur. Recherches enregistrées, création de comptes, changement de mot de passe, connexion, etc. Interface Utilisateur (UI) : Problèmes généraux concernant l'interface utilisateur (pas les fonctionnalités) y compris les problèmes cosmétiques, les modèles HTML, etc. 2. État et résolution : Ceci définit l'état exact dans lequel se trouve le bogue - de l'état non confirmé comme bogue à l'état corrigé et confirmé par l'assurance qualité. Les différentes valeurs possibles pour l'état et la résolution sont documentées dans l'aide contextuelle pour ces éléments. 3. Assigné à : La personne responsable de la correction du bogue. 4. *Contact QA : La personne responsable de l'assurance qualité du bogue. 5. *URL : Une URL associée au bogue, le cas échéant. 6. Résumé : Une phrase résumant le problème. 7. *Tableau blanc : Un champ de saisie de texte libre pour ajouter de courtes notes ou des marqueurs à un bogue. 8. *Mots-clés : L'administrateur peut définir des mots-clés que vous pouvez utiliser pour marquer et catégoriser les bogues - par ex. : Le Projet Mozilla a des mots-clés comme « plantage » et et « régression ». 9. Matériel et OS : Ceci indique l'environnement dans lequel le bogue a été trouvé. 10.Version : Le champ « Version » est habituellement utilisé pour les versions d'un produit qui a été publié et est défini pour indiquer quelles versions d'un composant a le problème particulier exposé dans le bogue. 11.Priorité : Le responsable du bogue utilise ce champ pour mettre des priorités sur ses bogues. Il est de bon ton de na pas changer ceci sur les bogues d'autres personnes. 12.Gravité : Ceci indique la gravité du problème - de « blocker » (l'application est inutilisable) à « trivial » (problème cosmétique mineur). Vous pouvez aussi utiliser ce champ pour indiquer si le bogue est une demande d'amélioration. 13.*Jalon cible : Une version future pour laquelle le bogue devra être corrigé. Par exemple, les jalons du projet Bugzilla pour les futures versions de Bugzilla sont 2.18, 2.20, 3.0, etc. Les jalons ne sont pas limités à des nombres cependant : vous pouvez utiliser toute chaîne de texte, comme des dates par exemple. 14.Rapporteur La personne qui a rapporté le bogue. 15.Copie à : Une liste de gens qui reçoivent des courriels quand des changements surviennent sur le bogue. 16.*Horodatage : Ce formulaire peut être utilisé pour l'horodatage. Pour utiliser cette fonctionnalité, vosu devez avoir l'appartenance de groupe spécifié par le paramètre « timetrackinggroup ». Est. intiale Ce champ affiche l'estimation initiale du temps escompté. Est. actuelle Ce champ affiche le temps estimé actuel. Ce nombre est calculé à partir des chiffres de « Heures travaillées » et « Heures restantes ». Heures travaillées Ce champ affiche le nombre d'heures travaillées. Heures restantes Ce champ affiche le résultat de la soustraction « Est. actuelle » « Heures travaillées ». Cette valeur + « Heures travaillées » deviendra la nouvelle « Est. actuelle ». % d'achèvement Ce champ affiche le pourcentage d'accomplissement de la tâche. Gain Ce champ affiche le nombre d'heures d'avance par rapport à l'estimation d'origine. Échéance Ce champ affiche la date d'échéance pour le bogue. 17.Fichiers joints : Vous pouvez joindre des fichiers (par exemple des jeux de test ou des correctifs) aux bogues. S'il y a des fichiers joints, ils sont listés dans cette section. Les fichiers joints sont normalement stockés dans la base de données Bugzilla, à moins qu'ils ne soient marqués « Gros fichiers » et sont alors stockés directement sur le disque. 18.*Dépend de : Si ce bogue ne peut pas être corrigé à moins que d'autres bogues ne le soient avant (« Dépend de »), ou ce bogue empêche d'autres bogues d'être corrigés (« Bloque »), leur numéro est noté ici. 19.*Votes : Indique si ce bogue a reçu des voix. 20.Commentaires supplémentaires Vous pouvez ajouter votre grain de sel à la discussion sur le bogue ici, si vous avez quelque chose à ajouter qui vaut la peine d'être mentionné. 5.4. Cycle de vie d'un bogue Le cycle de vie d'un bogue est personnalisable pour s'adapter aux besoins de votre organisation, consulter Section 3.12, « Worflow des états de bogue ». Figure 5.1, « Cycle de vie d'un bogue Bugzilla » contient une représentation graphique de ce cycle de vie, utilisant les états de bogue par défaut. Si vous voulez personnaliser cette image pour votre site, le fichier du diagramme est disponible dans le format XML natif de Dia. Figure 5.1. Cycle de vie d'un bogue Bugzilla 5.5. Recherche de bogues La page de recherche de bogues de Bugzilla est l'interface où vous pouvez trouver tout rapport de bogue, commentaire ou correctif actuellement dans le système Bugzilla. Vous pouvez jouer avec ici : http://landfill.bugzilla.org/bugzilla-4.4branch/query.cgi. La page de recherche a des contrôles pour sélectionner différentes valeurs pour tous les champs disponibles d'un bogue, comme décrit plus haut. Pour certains champs, plusieurs valeurs peuvent être sélectionnées. Dans ce cas, Bugzilla affiche les bogues dont le contenu du champ correspond à au moins une des valeurs sélectionnées. Si aucune n'est sélectionnée, alors le champ peut prendre n'importe quelle valeur. Après avoir lancé une recherche, vous pouvez l'enregistrer en tant que Reherche enregistrée, qui apparaîtra alors dans le pied de page. Si vous êtes dans le groupe défini par le paramètre « querysharegroup », vous pouvez partager vos recherches avec d'autres utilisateurs, consulter Recherches enregistrées pour plus de détails. 5.5.1. Tableaux booléens Les recherches avancées sont faites à l'aide de tableaux booléens. Les tableaux booléens affinent encore plus l'ensemble de résultats renvoyés par une requête. Il est possible de rechercher des bogues vaec des combinaisons élaborées de critères. La plus simple des recherches booléennes n'a qu'un seul terme. Ces recherches permettent au champ sélectionné à gauche d'être comparé en utilisant un opérateur ayant une valeur spécifique. En utilisant les boutons « Et », « Ou » et « Ajouter un autre tableau booléen », des termes supplémentaires peuvent être ajoutés à la requête, affinant ainsi encore la liste des bogues renvoyés par la requête. Il y a trois champs pour chaque ligne d'une recherche booléenne. Champ : les éléments recherchés Opérateur : l'opérateur de comparaison Valeur : la valeur à laquelle le champ est comparé 5.5.1.1. Substitution de pronom Quelquefois, une requête a besoin de comparer un champ relatif à l'utilisateur (tel que « ReportedBy ») avec un rôle utilisateur spécifique (comme l'utilisateur exécutant la requête ou l'utilisateur à qui chaque bogue est assigné). Quand l'opérateur est « est égal à » ou « n'est pas égal à », la valeur peut être « %reporter % », « %assignee% », « %qacontact% » ou « %user% ». Le pronom d'utilisateur se réfère à l'utilisateur qui exécute la requête, ou, dans le cas des rapports de notifications, l'utilisateur qui sera destinataire du rapport. Les pronoms « reporter », « assignee » et « qacontact » se réfèrent aux champs correspondants dans le bogue. Les tableaux booléens vous permettent aussi de saisir un nom de groupe dans tout champ relatif à un utilisateur si l'opérateur est « est égal à », « n'est pas égal à » ou « contient une des chaînes ». Ceci vous permettra de faire des requêtes sur tout membre appartenant (ou pas) au groupe spécifié. Le nom du groupe doit être saisi en suivant la syntaxe « %group.toto% », où « toto » est le nom du groupe. Donc, si vous recherchez des bogues rapportés par tout utilisateur appartenant au groupe « editbugs », vous pouvez alors saisir « %group.editbugs% ». 5.5.1.2. Négation À première vue, la négation semble redondante. Plutôt que rechercher PAS (« Résumé » « contient la chaîne » « toto »), on peut rechercher (« Résumé » « ne contient pas la chaîne » « toto »). Cependant, la recherche (« Copie à » « ne contient pas la chaîne » « @mozilla.org ») trouverait tout bogue pour lequel quiconque dans la liste « Copie à » ne contient pas « @mozilla.org » alors que PAS (« Copie à » « contient la chaîne » « @mozilla.org ») trouverait tout bogue pour lequel il n'y a personne dans la liste « Copie à » qui contient la chaîne. De même, l'utilisation de la négation permet aussi la construction d'expressions complexes utilisant des termes séparés par « Ou » puis négativés. La négation permet des requêtes telles que PAS ((« Produit » « est égal à » « mise à jour ») OU (« Composant » « est égal à » « Documentation »)) pour trouver des bogues qui ne sont ni dans le produit « mise à jour », ni dans le composant « Documentation » ou PAS ((« Commentateur » « est égal à » « %assignee% ») OU (« Composant » « est égal à » « Documentation »)) pour trouver des bogues qui ne sont pas liés à la documentation et pour lesquels le responsable n'a jamais fait de commentaires. 5.5.1.3. Tableaux multiples Les termes contenus dans une seule ligne d'un tableau booléen sont tous liés à une seule information. Si vous recherchez un bogue ayant deux personnes différentes dans la liste « Copie à », vous devez alors utiliser deux tableaux booléens. Une recherche pour (« Copie à » « contient la chaîne » « toto@ ») ET (« Copie à » « contient la chaîne » « @mozilla.org ») ne renverra que les bogues avec « foo@mozilla.org » dans la liste « Copie à ». Si vous voulez les bogues pour lesquels il y a quelqu'un dans la liste « Copie à » contenant « foo@ » et un autre contenant « @mozilla.org », vous aurez alors besoin de deux tableaux booléens. Premier tableau : (« Copie à » « contient la chaîne » « toto@ ») Deuxième tableau : (« Copie à » « contient la chaîne » « @mozilla.org ») Les bogues listés seront seulement ceux pour lesquels TOUS les tableaux sont vrais. 5.5.2. Recherche d'un bogue spécifique La recherche rapide est un outil de recherche sous la forme d'une simple boîte de texte pouvant utiliser les méta-caractères pour indiquer ce que l'on cherche. Par exemple, en saisissant « toto|titi » dans la boîte de texte, cele effectuera une recherche de « toto » ou « titi » dans les champs « Résumé » et « Tableau blanc » d'un bogue ; en ajoutant « :ProduitX », la recherche s'effectuera seulement dans ce produit. Vous pouvez l'utiliser pour trouver un bogue par son numéro ou son alias aussi. La boîte de recherche rapide se trouve dans le pied des pages de Bugzilla. Sur la page d'accueil de Bugzilla, se trouve un lien Aide qui détaille son utilisation. 5.5.3. Sensibilité à la casse dans les recherches Les recherches dans Bugzilla sont insensibles à la casse et aux accents, avec l'utilisation de systèmes de gestion de bases de données MySQL ou Oracle. Cependant, lorsque Bugzilla est utilisé avec PostgreSQL, certaines recherches sont sensibles à la casse. Ceci est dû à la façon dont PostgreSQL traite la sensibilité à la casse et aux accents. 5.5.4. Listes des bogues Si vous lancez une recherche, une liste des bogues correspondant sera renvoyée. Le format de cette liste est configurable. Par exemple, elle peut être triée en cliquant sur les en-têtes de colonnes. D'autres fonctionnalités utiles peuvent être accédées en utilisant les liens au bas de la liste : Format long : Ceci donne une grande page avec les champs « Résumé » non modifiables de chaque bogue. XML : Produit la liste de bogues au format XML. CSV : Produit la liste de bogues comme des valeurs séparées par des virgules, pour l'importer par exemple dans un tableur. Flux : Produit la liste de bogues sous forme de flux Atom. Copiez ce lien dans votre lecteur de flux préféré. Si vous utilisez Firefox, vous pouvez aussi enregistrer la liste sous forme de marque-page dynamique en cliquant sur l'icône de marquepage dynamique dans la barre d'adresse. Pour limiter le nombre de bogues dans le flux, ajouter un paramètre « limit=n » à l'URL. iCalendar : Produit la liste sous forme de fichier iCalendar. Chaque bogue est représenté sous forme de tâche dans l'agenda importé. Changer les colonnes : Modifie les attributs des bogues apparaissant dans la liste. Changer plusieurs bogues à la fois : Si votre compte a suffisamment de droits et qu'il apparaît plus d'un bogue dans la liste, ce lien est affiché et vous permet d'apporter le même changement sur tous les bogues de la liste. Par exemple, changer leur responsable. Envoyer un courriel aux responsables des bogues : Si plus d'un bogue apparaît dans la liste et qu'il y a au moins deux responsables distincts, ce lien est affiché pour permettre d'envoyer facilement un courriel à tous les responsables de ola liste de bogues. Modifier la recherche : Si vous n'obtenez pas exactement les résultats que vous escomptiez, vous pouvez revenir à la page de requête par ce lien et faire des ajustements sur la requête pour obtenir de meilleurs résultats. Enregistrer sous : Vous pouvez donner un nom à la requête et l'enregistrer ; un lien apparaîtra dans votre pied de page et vous permettra d'y accéder et de l'exécuter rapidement plus tard. 5.5.5. Ajout/suppression de marqueurs Vous pouvez ajouter ou supprimer des marqueurs dans chaque bogue, qui vous permettent de les trouver et de les gérer plus facilement. Les marqueurs sont propres à un utilisateur et ne peuvent être affichés ou modifiés que par l'utilisateur qui les a créés. Vous pouvez alors lancer des requêtes en utilisant des marqueurs comme critère, en utilisant soit le formulaire de recherche avancée, soit en saisissant « tag:mon_nom_de_marqueur » dans la bo^te de recherche rapide en haut (ou en bas) de la page. Pour activer cette fonctionnalité, vous devez activer la préférence utilisateur « Activer l'utilisation des marqueurs pour les bogues », voir Section 5.10, « Préférences utilisateur ». Cette fonctionnalité est désactivée par défaut. Cette fonctionnalité est utile pour suivre plusieurs bogues mais pour des raisons différentes. Plutôt que de vous ajouter à la liste « Copie à » de tous ces bogues et de mélanger toutes ces raisons, vous pouvez maintenant les stocker dans des listes séparées, par exemple « Ne pas oublier », « Bogues intéressants » ou « Triage ». Un des gros avantages de ce moyen de gérer les bogues est que vous pouvez facilement ajouter ou enlever les marqueurs des bogues un par un. 5.6. Rapporter des bogues 5.6.1. Rapporter un nouveau bogue Des années d'expérience dans l'écriture de bogues ont été distillées pour votre satisfaction dans les recommandations d'écriture de bogue. Bien que certains des conseils soient spécifiques à Mozilla, les principes de base (reproductibilité, spécificité, isolation du produit utilisé, version du produit, le composant incriminé, la plateforme matérielle, et le système d'exploitation utilisé au moment du bogue) assurent des correctifs appropriés pour le bogue que vous avez rencontré. La procédure pour ouvrir un bogue est la suivante : 1. Cliquez sur le lien « Rapporter » disponible dans le pied des pages ou sur le lien « Rapporter un nouveau bogue » affiché sur la page d'accueil de l'installation de Bugzilla. Si vous voulez rapporter un bogue pour tester le fonctionnement de Bugzilla, vous pouvez le faire sur nos installations de test sur Landfill. 2. Vous devez d'abord sélectionner le produit dans lequel vous avez trouvé un bogue. 3. Vous voyez maintenant un formulaire où vous pouvez indiquer le composant (la partie du produit affectée par le bogue que vous avez découvert ; si vous n'en avez aucune idée, sélectionnez « Général » si un tel composant existe), la version du programme que vous utilisez, le système d'exploitation et la plateforme sur laquelle vous exécutez le programme, et la gravité du bogue (si le bogue que vous avez trouvé plante le programme, c'est probablement un bogue « major » ou « critical » ; s'il s'agit d'une coquille quelque part, c'est un bogue « minor » ; s'il s'agit de quelque chose que vous voudriez voir mis en œuvre, choisissez « enhancement »). 4. Vous devez maintenant fournir un résumé court mais descriptif du bogue que vous avez trouvé. « Mon programme plante tout le temps » est un résumé très pauvre et n'aide pas du tout les développeurs. Essayez quelque chose de plus significatif ou votre bogue sera probablement ignoré à cause du manque de précision. L'étape suivante est de donner une liste très détaillée des étapes pour reproduire le problème que vous avez rencontré. Essayez de limiter ces étapes au minimum nécessaire pour reproduire le problème. Cela facilitera la vie aux développeurs et la probabilité qu'ils traitent votre bogue dans un délai raisonnable sera beaucoup plus grande. Assurez-vous que tout ce qui se trouve dans le résumé figure aussi dans le premier commentaire. Les résumés sont souvent mis à jour et cela assurera que les informations d'origine soient facilement accessibles. 5. Lorsque vous rapportez le bogue, vous pouvez également joindre un document (un jeu de test, un correctif, ou une copie d'écran du problème). 6. Suivant l'installation de Bugzilla que vous utilisez et le produit pour lequel vous rapportez le bogue, vous pouvez aussi demander aux développeurs de considérer votre bogue de différentes manières (comme demander la revue du correctif que vous venez de joindre, demander que votre bogue bloque la prochaine version du produit et beaucoup d'autres requêtes spécifiques au produit). 7. C'est maintenant le bon moment pour relire votre rapport de bogue. Retirer toutes les fautes d'orthographe, sans quoi votre bogue pourrait ne pas être trouvé par les développeurs qui exécutent des requêtes sur des mots spécifiques, et par conséquent, votre bogue ne serait pas porté à leur attention. Assurez-vous aussi de n'avoir pas oublié d'informations importantes que les développeurs devraient savoir pour reproduire le problème et que la description du problème est suffisamment claire et explicite. Si vous pensez que votre rapport de bogue est prêt, la dernière étape est de cliquer sur le bouton « Soumettre » pour ajouter votre rapport à la base de données. vous n'avez pas besoin d'ajouter « toutes » ou des mots similaires dans le champ « URL ». S'il n'y a pas d'URL spécifique associée au bogue, laissez ce champ vide. Si vous pensez qu'un bogue que vous avez rapporté a été incorrectement marqué comme DOUBLON d'un autre, veuillez poser votre question dans votre bogue et non dans celui à cause duquel votre boque a été marqué comme doublon. Vous pouvez ajouter à la liste « Copie à » la personne qui a marqué votre bogue comme doublon, si elle n'y figure pas déjà. 5.6.2. Clônage d'un bogue existant À compter de la version 2.20, Bugzilla a une fonctionnalité qui vous permet de cloner un bogue existant. Le bogue nouvellement créé héritera de la plupart des paramètres de l'ancien bogue. Ceci vous permet de reporter plus facilement dans un nouveau bogue des problèmes similaires. Pour utiliser cette fonctionnalité, rendez-vous dans le bogue que vous voulez cloner, puis cliquer sur le lien « Cloner ce bogue » sur la page du bogue. Ceci vous amènera à la page « Rapporter un bogue » qui sera pré-remplie avec les valeurs de l'ancien bogue. Vous pouvez changer ces valeurs et/ou en ajouter d'autres si nécessaire. 5.7. Fichiers joints Vous devez utiliser des fichiers à joindre plutôt que des commentaires pour les gros volumes de texte ASCII, comme les traces, les fichiers de débogage ou les fichiers journaux. Ainsi, cela ne remplit pas inutilement le bogue pour celui qui voudrait le lire et cela évite la réception de gros courriels inutiles pour les personnes qui suivent le bogue. Vous devez ajuster les copies d'écrans. Il n'est pas nécessaire d'afficher tout l'écran pour signaler un problème sur un pixel. Bugzilla stocke et utilise un type de contenu (content-type) pour chaque fichier joint (par ex. : text/html). Pour télécharger un fichier joint avec un type de contenu différent (par ex. : application/xhtml+xml), vous pouvez outrepasser ceci en ajoutant un paramètre « content_type » à l'URL, par ex. : &content_type=text/plain. Si vous avez un fichier très gros à joindre qui ne nécessite pas d'être enregistré pour toujours (comme la plupart des fichiers joints), ou quelque chose qui est trop gros pour votre base de données, vous pouvez marquer votre fichier comme « Gros fichier », en supposant que l'administrateur de l'installation a activé cette fonctionnalité. Les « gros fichiers » sont stockés directement sur le disque plutôt que dans la base de données. La taille maximum d'un « Gros fichier » est normalement plus grande que la taille maximum d'un fichier joint normal. Quel que soit le système de stockage utilisé, un administrateur peut supprimer à tout moment ces fichiers. Néanmoins, si ces fichiers sont stockés dans la base de données, le paramètre « allow_attachment_deletion » (qui est désactivé par défaut) doit être activé pour pouvoir les supprimer. Également, vous pouvez saisir l'URL qui pointe vers le fichier plutôt que de le télécharger vers le serveur. Par exemple, ceci est utile si vous voulez pointer vers une application externe, un site Web ou un très gros fichier. Notez qu'il n'y a pas de garantie que le fichier source soit toujours disponible ni que son contenu reste inchangé. Un autre moyen de joindre des données est de coller du texte directement dans le champ texte, et Bugzilla le convertira en fichier joint. C'est très pratique quand vous faites du copier-coller et que vous ne voulez pas mettre le texte dans un fichier temporaire d'abord. 5.7.1. Visionneuse de fichiers L'affichage et la revue des correctifs dans Bugzilla sont souvent difficiles à cause du manque de contexte, d'un format incorrect et des problèmes de lisibilités inhérents que les correctifs en texte brut présentent. La visionneuse de fichiers est une amélioration de Bugzilla conçue pour corriger cela en offrant un contexte amélioré, des liens vers les sections et l'intégration à Bonsai, LXR et CVS. La visionneuse de fichiers vous permet : De voir les correctifs en couleurs, avec une vue côte-à-côte plutôt que d'essayer d'interpréter le contenu du correctif. De voir les différences entre deux correctifs. D'obtenir un contexte plus étendu dans un correctif. De réduire et de développer des sections dans un correctif pour une lecture facile. De faire un lien vers une section particulière d'un correctif pour une discussion ou une revue. D'aller dans Bonsai ou LXR pour voir plus de contexte, le responsable d'une ligne de code et les références croisées pour la partie du correctif que vous regardez. De créer un diff au format unifié à partir de n'importe quel correctif, quel que soit son format d'origine. 5.7.1.1. Affichage des correctifs dans la visionneuse de fichiers Le principal moyen d'afficher un correctif dans la visionneuse est de cliquer sur le lien « Diff » à côté du correctif dans la liste des fichiers joints d'un bogue. Vous pouvez aussi faire cela dans la fenêtre « Détails du fichier joint » en cliquant sur le bouton « Afficher le fichier joint comme un fichier diff ». 5.7.1.2. Afficher les différences entre deux correctifs Pour afficher les différences entre deux correctifs, vous devez d'abord afficher le correctif le plus récent dans la visionneuse. Puis sélectionner le correctif plus ancien dans la liste déroulante en haut de la page (« Différences entre [liste déroulante] et ce correctif ») et cliquez sur le bouotn « Diff ». Ceci affichera ce qui est nouveau ou modifié dans le nouveau correctif. 5.7.1.3. Obtenir plus de contexte dans un correctif Pour obtenir plus de contexte dans un correctif, saisissez un nombre dans la boîte de texte en haut de la visionneuse de fichiers (« Correctif / Fichier / [boîte de texte] ») et appuyez sur la touche « Entrée ». Cela vous donnera le nombre de ligne de contexte que vous avez saisi dans la boîte de texte avant et après chaque changement. Vous pouvez aussi cliquer sur le lien « Fichier » et il affichera chaque changement dans le contexte complet du fichier. Cette fonctionnalité ne fonctionne qu'avec les fichiers qui ont été générés avec la commande cvs diff. 5.7.1.4. Réduire et développer les sections d'un correctif Pour ne voir que certains fichiers dans un correctif (par exemple, si un correctif est vraiment très gros et que vous ne voulez faire la revue que d'une seule partie à la fois) vous pouvez cliquer sur les liens « (+) » et « (-) » à côté de chaque fichier (pour les développer ou les réduire). Si vous voulez réduire ou développer tous les fichiers, vous pouvez cliquer sur les liens « Tout réduire » et « Tout développer »en haut de la page. 5.7.1.5. Faire un lien vers une section d'un correctif Pour faire un lien vers une section d'un correctif (par exemple, si vous voulez être en mesure de donner à quelqu'un une URL qui montre la partie dont vous parlez), cliquez simplement sur le lien « Lier ici » dans l'en-tête de section. L'URL résultante peut alors être copiée et utilisée dans une discussion. 5.7.1.6. Se rendre dans Bonsai et LXR Pour vous rendre dans Bonsai pour savoir qui est l'auteur des lignes de code (blame) qui vous intéressent, vous pouvez cliquer sur le lien « Lignes XX-YY » dans l'en-tête de section qui vous intéresse. Ceci fonctionne même si le correctif concerne une ancienne version du fichier car Bonsai stocke toutes les versions du fichier. Pour vous rendre dans LXR, cliquez sur le nom du fichier dans l'en-tête de fichier (malheureusement, puisque LXR n'utilise que la version la plus récente, les numéros de lignes ne correspondront probablement pas). 5.7.1.7. Création d'un diff unifié Si le correctif n'est pas dans le format que vous désirez, vous pouvez le transformer en format diff unifié en cliquant sur le lien « Brut unifié » en haut de la page. 5.8. Trucs et astuces Cette section fournit des astuces et les bonnes pratiques pour Bugzilla qui ont été développées. 5.8.1. Hyperlien automatique Les commentaires dans Bugzilla sont en texte brut : saisir <U> produira <, U, > plutôt que du texte souligné. Cependant, Bugzilla fera automatiquement des hyperliens pour certaines parties du texte des commentaires. Par exemple, le texte « http://www.bugzilla.org » sera transformé en hyperlien : http://www.bugzilla.org. D'autres chaînes peuvent être transformées en lien : bogue 12345 commentaire 7 bogue 23456, commentaire 53 attachment 4321 mailto:georges@exemple.com georges@exemple.com ftp://ftp.mozilla.org La plupart des autres types d'URL Le corollaire ici, c'est que si vous saisissez un numéro de bogue dans un commentaire, vous devez mettre le mot « bogue » devant pour qu'il soit transformé en hyperlien pour la commodité des autres. 5.8.2. Commentaires Si vous changez les champs d'un bogue, ne faites de commentaire que si vous avez quelque chose de pertinent à dire ou que Bugzilla impose que vous le fassiez. Dans le cas contraire, vous spammeriez les gens inutilement avec des courriels de bogues. Pour prendre un exemple : un utilisateur peut définir ses préférences pour filtrer les messages pour ne pas recevoir de courriel quand quelqu'un s'ajoute dans la liste « Copie à » d'un bogue (ce qui arrive souvent). Si vous vous ajouter à la liste « Copie à » et que vous ajouter un un commentaire disant « Je m'ajoute dans la liste Copie à », alors cette personne recevra un courriel sans intérêt qu'elle n'aurait pas reçu autrement. N'utilisez pas de signature dans les commentaires. Signer avec votre prénom (« Jean ») est acceptable, si vous le faites par la force de l'habitude, mais des signatures complètes de style courriel ou liste de diffusion avec quatre lignes d'« ASCII art » ne le sont pas. 5.8.3. Formatage des commentaires du côté du serveur Bugzilla stocke les commentaires sous forme non formatée et les formate lors de leur affichage. Ceci permet d'assurer un formatage correct dans tous les navigateurs. Les lignes commençant par le caractère « > » sont traitées comme des citations et ne sont pas formatées. 5.8.4. Arbre de dépendance sur la page « Arbre dedépendance » liée à partir de chaque page de bogue, vous pouvez voir les relations de dépendances du bogue sous forme de structure arborescente. Vous pouvez modifier la profondeur à afficher et vous pouvez masquer les bogues résolus dans cette page. Vous pouvez aussi réduire ou développer les dépendances pour chaque bogue dans la vue arborescente, en utilisant les boutons [-] ou [+] qui apparaissent avant son résumé. Cette option n'est pas disponible pour les bogues terminaux de l'arbre (qui n'ont pas d'autres dépendances). 5.9. Informations d'horodatage Les utilisateurs qui appartiennent au groupe spécifié par le paramèter « timetrackinggroup » ont accès aux champs relatifs au temps. Les développeurs peuvent voir les dates limites et les estimation de temps pour corriger les bogues, et peuvent fournir le temps passé sur ces bogues. À tout moment, un résumé du temps passé par les développeurs sur les bogues est accessible à partir des listes de bogues en cliquant sur le bouton « Résumé du temps passé » ou dans chaque bogue individuellement en cliquat sur le lien « Résumé du temps passé » dans le tableau d'horodatage. La page summarize_time.cgi vous permet de voir ces informations soit par développeur, soit par bogue, et peut être divisé par mois pour avoir plus de détails sur le temps passé par les développeurs. Dès qu'un bogue est marqué RÉSOLU, le temps restant estimé pour corriger le bogue est défini à zéro. Ceci permet aux personnes de l'assurance qualité de le définir à nouveau pour leur propre usage, et il sera de nouveau défini à zéro quand le bogue sera marqué FERMÉ. 5.10. Préférences utilisateur Une fois connecté, vous pouvez personnaliser différents aspects de Bugzilla en cliquant sur le lien « Préférences » dans le pied de page. Les préférences sont divisées en cinq volets : 5.10.1. Préférences générales Cet onglet vous permet de modifier plusieurs paramètres par défaut de Bugzilla. Apparence générale de Bugzilla - Sélectionne le thème à utiliser. Bugzilla gère l'ajout de thèmes personnalisés. Citer le commentaire associé lors du clic sur son lien de réponse - Définit le comportement du lien « répondre » dans les commentaires. Les options permettent de citer le commentaire complet, d'indiquer seulement le numéro du commentaire ou de désactiver le lien. Langue utilisée dans les courriels - Sélectionne la langue dans laquelle les courriels envoyés seront écrits, dans la liste des langues disponibles. Après avoir changé un bogue - Permet de contrôler quelle page est affichée après la soumission de changements sur un bogue. Les options permettent : d'afficher le bogue juste modifié, d'afficher le bogue suivant de votre liste, ou de ne rien faire du tout. Agrandir les champs de texte lorsqu'on écrit dedans (requiert JavaScript) Active ou désactive l'extension automatique des zones de texte quand on y saisit du texte. Séparateur de champ dans les fichiers CSV - Permet de choisir entre une virgule ou un point-virgule pour l'export des listes de bogues en format CSV. M'ajouter automatiquement à la liste « Copie à » des bogues que je modifie Définit le comportement par défaut de la liste « Copie à ». Les options sont : « Toujours », « Jamais » et « Seulement si ne ne joue pas déjà un rôle ». En visionnant un bogue, afficher les commentaires dans cet ordre - Contrôle l'ordre d'affichage des commentaires. Les options sont « Du plus ancien au plus récent », « Du plus récent au plus ancien » et « Du plus récent au plus ancien, mais après la description ». Afficher une citation en haut de chaque liste de bogues - Définit si une citation sera affichée dans la liste de bogues. 5.10.2. Préférences de messagerie Cet onglet permet d'activer ou de désactiver la notification par courriel en fonction d'événements spécifiques. En général, les utilisateurs ont pratiquement tout contrôle sur la quantité de courriels que Bugzilla leur envoie. si vous voulez recevoir le maximum de courriels possible, cliquez sur le bouton « Activer tous les courriels ». Si vous ne voulez pas recevoir de courriels du tout de la part de Bugzilla, cliquez sur le bouton « Désactiver tous les courriels ». Un administrateur de Bugzilla peut empêcher un utilisateur de recevoir des courriels de bogues en cliquant sur la case « Envoi des courriels de bogues désactivé » lors de l'édition d'un compte utilisateur. C'est une décision drastique qui ne devrait être prise que pour les comptes désactivés, car cela outrepasse les préférences de messagerie individuelles de l'utilisateur. Il y a deux options globales : « Envoyer un courriel quand quelqu'un me demande de définir une étiquette » et « Envoyer un courriel quand quelqu'un a défini une étiquette que j'avais demandée ». Celles-ci définissent la réception de courriels en fonction des étiquettes. Leur utilisation est simple ; sélectionnez les cases à cocher si vous voulez que Bugzilla vous envoie des courriels pour l'une ou l'autre des conditions. Si vous voulez paramétrer votre courriel de bogues pour quelque chose entre « Tous les courriels » et « Aucun courriel », le tableau « Options spécifiques du champ/destinataire » vous permet de faire cela. Les lignes du tableau définissent les événements qui peuvent arriver à un bogue -- des choses comme : un fichier a été joint, de nouveaux commentaires ont été faits, la priorité à changé, etc. Les colonnes du tableau définissent votre relation avec le bogue : Rapporteur -Où vous êtes la personne qui a initialement rapporté le bogue. Votre nom/compte apparaît dans le champ « Rapporteur : ». Responsable - Où vous êtes la personne qui a été désignée comme responsable du bogue. Votre nom/compte apparaît dans le champ « Assigné à : » du bogue. Contact QA - Vous êtes le contact QA désigné pour le bogue. Votre compte apparaît dans le champ « Contact QA : » du bogue. En copie- Vous êtes dans la liste « Copie à » du bogue. votre compte apparaît dans la boîte de texte « Copie à : » du bogue. Votant - Vous avez placé un ou plusieurs votes sur le bogue. Votre compte apparaît seulement si quelqu'un clique sur le lien « Afficher les votes pour ce bogue » dans le bogue. Certaines colonnes peuvent ne pas être visibles sur votre installation en fonction de la configuration de votre site. Pour affiner la gestion de la quantité de courriels de bogues, décidez des événements pour lesquels vous voulez recevoir des courriels de bogues ; décidez ensuite si vous voulez les recevoir tout le temps (cochez alors la case dans chaque colonne), ou seulement lorsque vous avez une certaine relation avec un bogue (cochez la case pour ces colonnes seulement). Par exemple : si vous ne voulez pas recevoir de courriel quand quelqu'un s'ajoute à la liste « Copie à », vous pouvez décocher toutes les cases dans la ligne « Le champ “Copie à :” est modifié ». Comme autre exemple, si vous ne voulez jamais recevoir de courriel sur les bogues que vous avez rapportés à moins qu'ils ne soient résolus, vous devez décocher toutes les acses de la colonne « Rapporteur » sauf celle sur la ligne « Le bogue est résolu ou rouvert ». Bugzilla ajoute l'en-tête « X-Bugzilla-Reason » à tous les courriels qu'il envoit, décrivant la relation du destinataire (Assigné à, Rapporteur, Contact QA, Copie à ou Votant) au bogue. Cet en-tête peut être utilisé pour affiner le filtrage du côté client. Bugzilla a une fonctionnalité appelée « Surveillance d'utilisateurs ». Quand vous saisissez un ou plusieurs comptes utilisateurs séparés par des virgules (généralement des adresses électroniques) dans la boîte de texte, vous recevez une copie de tous les courriels de bogues envoyés à ces utilisateurs (en fonction des paramètres de sécurité). Cette fonctionnalité puissante permet des transitions en douceur lorsque les développeurs changent de projet ou lorsque les utilisateurs partent en vacances. La possibilité de surveiller d'autres utilisateurs peut ne pas être disponible dans toutes les installations de Bugzilla. Si vous ne voyez pas cette focntionnalité et que vous en avez besoin, parlez-en à votre administrateur. Tous les utilisateurs indiqués dans le champ « Utilisateurs vous surveillant » vous ont ajoutés dans leur liste « Surveillance d'utilisateur » et peuvent obtenir des courriels de bogues en fonction de votre relation avec le bogue et leurs paramètres « Options spécifiques du champ/destinataire ». 5.10.3. Recherches enregistrées Dans ce volet, vous pouvez voir et exécuter toutes recherches enregistrées que vous avez créées, et aussi toutes autres recherches enregistrées partagées par d'autres membres du groupe défini par le paramètre « querysharegroup ». Les recherches enregistrées peuvent être ajoutées au pied de page à partir de cet écran. Si quelqu'un partage une recherche avec un groupe, il sera autorisé à y assigner des utilisateurs. La personne qui partage la recherche peut choisir de faire afficher la recherche dans le pied de page des membres directs du groupe par défaut. 5.10.4. Préférences du compte Sur cet onglet, vous pouvez changer les informations de base de votre compte, y compris votre mot de passe, votre adresse électronique et votre vrai nom. Pour des raisons de sécurité, pour modifier quelque chose sur cette page, vous devez saisir votre mot de passe actuel dans le champ « Mot de passe » au sommet de la page. Si vous tentez de modifier votre adresse électronique, un courriel de confirmation est envoyé sur l'ancienne et la nouvelle adresses, contenant un lien pour confirmer le changement. Ceci aide à empêcher le piratage de compte. 5.10.5. Permissions C'est une page purement informative qui souligne vos permissions actuelles sur cette installation de Bugzilla. Vous trouverez une liste complète des permissions ci-dessous. Seuls les utilisateurs ayant des privilèges editusers peuvent modifier les permissions d'autres utilisateurs. admin Indique que l'utilisateur est un administrateur. bz_canusewhineatothers Indique que l'utilisateur peut configurer les rapports de notifications pour d'autres utilisateurs. bz_canusewhines Indique que l'utilisateur peut configurer les rapports de notifications pour lui- même. bz_quip_moderators Indique que l'utilisateur peut modérer les citations. bz_sudoers Indique que l'utilisateur peut accomplir des actions à la place d'autres utilisateurs. bz_sudo_protect Indique d'autres utilisateurs ne peuvent pas se faire passer pour cet utilisateur. canconfirm Indique que l'utilisateur peut confirmer un bogue ou le marquer comme doublon. creategroups Indique que l'utilisateur peut créer ou détruire des groupes. editbugs Indique que l'utilisateur peut modifier tous les champs d'un bogue. editclassifications Indique que l'utilisateur peut créer, détruire et modifier des classements. editcomponents Indique que l'utilisateur peut créer, détruire et modifier des composants. editkeywords Indique que l'utilisateur peut créer, détruire et modifier des mots-clés. editusers Indique que l'utilisateur peut modifier ou désactiver des utilisateurs. tweakparams Indique que l'utilisateur peut modifier les Paramètres. Pour plus d'informations sur le fonctionnement des permissions dans Bugzilla (cà-d. qui peut modifier quoi), consulter Section 6.4, « Personnaliser qui peut changer quoi ». 5.11. Rapports et graphiques En plus de la liste de bogues standard, Bugzilla dispose deux autres moyens pour afficher un ensemble de bogues. Ce sont les rapports (qui donnent différentes vue de l'état actuel de la base de données) et les graphiques (qui tracent les changements dans des ensembles de bogues particuliers en fonction du temps). 5.11.1. Rapports Un rapport est une vue de l'état actuel de la base de données. Vous pouvez obtenir des rapports sous forme de tableaux HTML ou sous forme graphique avec des diagrammes linéaires, circulaires ou des histogrammes. Ils ont chacun une page distincte pour leur paramètrage, mais ce sont de proches cousins. Une fois que vous avez défini et affiché un rapport, vous pouvez basculer entre les différentes vues à volonté. Les deux types de rapport sont basés sur l'idée d'une définition d'un ensemble de bogues en utilisant l'interface de recherche standard et en choisissant certains aspects de cet ensemble à tracer sur les axes horizontal et/ou vertical. Vous pouvez aussi obtenir une forme de rapport en trois dimensions en choisissant d'avoir de multiples images ou tableaux. Vous pouvez par exemple utiliser le formulaire de recherche pour choisir « Tous les bogues du produit ContrôleDuMonde » et tracer leur gravité en fonction de leur composant pour voir quel composant a eu a eu le plus grand nombre de bogues critiques rapportés. Quand vous avez défini vos paramètres et que vous cliquez sur « Générer le rapport », vous pouvez basculer entre les formats HTML, CSV, histogramme, linéaire et circulaire. (Note : les diagrammes circulaires ne sont disponibles que si vous n'avez pas défini d'axe vertical car les diagrammes circulaires n'en ont pas). Les autres contrôles s'expliquent d'eux-mêmes ; vous pouvez changer la taille de l'image si vous trouvez que les textes se superposent ou si les barres d'histogrammes sont trop fines. 5.11.2. Graphiques Un graphique est une vue de l'état de la base de données en fonction du temps. Bugzilla dispose actuellement de deux systèmes de graphiques. Les « Anciens graphiques » et les « Nouveaux graphiques ». Les anciens graphiques font partie de Bugzilla depuis longtemps ; ils tracent chaque état et résolution pour chaque produit et c'est tout. Ils sont obsolètes et vont bientôt disparaître. Nous n'en dirons pas plus à leur sujet. Les nouveaux graphiques sont le futur. Ils vous permettent de tracer tout ce que vous pouvez définir comme recherche. Les deux types de rapports nécessitent que l'administrateur définisse le script de rassemblement de données. Si vous ne pouvez pas voir les graphiques, demandez-lui s'il a exécuté le script. Une ligne individuelle sur un rapport est appelé collection. Toutes les collections sont organisées en catégories et sous-catégories. Les collections que définit automatiquement Bugzilla utilisent le nom de produit comme catégorie et les noms de composants comme sous-catégories, mais il n'est pas obligatoire pour vous de suivre cette norme de nommage avec vos rapports si vous ne le voulez pas. Les collections peuvent être publiques ou privées. Tout le monde peut voir les collections publiques dans la liste, mais les collections privées ne peuvent être vues que par leurs créateurs. Seuls les administrateurs peuvent rendre les collections publiques. Il ne peut y avoir deux collections, même privées, ayant le même ensemble de catégorie, sous-catégorie et nom. Donc, si vous créez des collections privées, une idée est d'avoir la catégorie qui s'intitule comme votre nom d'utilisateur. 5.11.2.1. Création de graphiques Vous créez un graphique en sélectionnant un nombre de collections dans la liste et en cliquant sur le bouton « Ajouter à la liste » pour chacune. Dans la liste des collections à tracer, vous pouvez définir le libellé que portera la collection dans la légende du graphique, et demander aussi à Bugzilla d'additionner un certain nombre de collections (par exemple, vous pouvez additionner les collections représentant les bogues RÉSOLUS, VÉRIFIÉS et FERMÉS dans un produit en particulier pour obtenir une collection représentant tous les bogues résolus dans un produit). Si vous avez ajouté par erreur une collection à la liste, sélectionnez-la en cochant la case et cliquez sur « Supprimer ». Quand vous avez ajouté plus d'une collection, une ligne « Grand total » apparaît automatiquement an bas de la liste. Si vous ne la voulez pas, supprimez-la comme vous supprimeriez toute autre ligne. Vous pouvez aussi choisir de créer un graphique sur une certaine période et de cumuler les résultats, c'est-à-dire de tracer chacun en utilisant le précédent comme base, de sorte que la première ligne donne la somme de toutes les collections. Il est plus facile d'essayer que de l'expliquer :-) Quand une collection est dans la liste, on peut réaliser certaines actions dessus. Par exemple, éditer les paramètres de la collection (nom, fréquence, etc.) si vous l'avez créée ou si vous êtes administrateur. Quand vous êtes satisfait, cliquez sur « Générez ce rapport » pour voir le graphique. 5.11.2.2. Création de nouvelles collections Vous pouvez aussi créer vos propres collections. Pour faire cela, cliquez sur le lien « Créer un nouveau jeux de données » sur la page de création de graphiques. Ceci vous amène sur une interface de recherche où vous pouvez définir la recherche que Bugzilla tracera. Au bas de la page, choisissez la catégorie, la sous-catégorie et le nom de votre nouvelle collection. Si vous avez les droits suffisants, vous pouvez rendre cette collection publique et augmenter la fréquence de collecte des données à moins de sept jours, qui est la valeur par défaut. 5.12. Étiquettes Une étiquette est une sorte d'état qui peut être défini sur les bogues ou les fichiers joints pour indiquer qu'ils sont dans un certain état. Chaque installation peut définir son propre ensemble d'étiquettes. Si sur votre installation est définie une étiquette, vous pouvez définir ou enlever une étiquette, et si votre administrateur a activé les requêtes d'étiquettes, vous pouvez soumettre une demande à un autre utilisateur pour qu'il définisse l'étiquette. Pour définir une étiquette, sélectionnez soit « + », soit « - » dans le menu déroulant à côté du nom de l'étiquette dans la liste « Étiquettes ». La signification de ces valeurs sont spécifiques à l'étiquette et ne peuvent par conséquent être décrites dans cette documentation. À titre d'exemple, définir une étiquette intitulée « revue » à « + » peut indiquer que le bogue ou le fichier joint a été approuvé, alors que « - » peut indiquer que le bogue ou le fichier joint a été refusé. Pour enlever une étiquette, cliquez sur le menu déroulant et sélectionnez la valeur vide. Notez que marquer un fichier joint comme obsolète annule automatiquement toutes les requêtes en attente pour le fichier joint. Si votre administrateur a activé les requêtes d'étiquettes, demandez une étiquette en sélectionnant « ? » dans le menu déroulant et saisissez le nom de l'utilisateur à qui vous demandez l'étiquette dans le champ de texte à côté du menu. Une étiquette apparaît dans les rapports de bogues et sur les pages de détails des fichiers joints avec le nom de l'utilisateur qui a défini l'étiquette abrégé. Par exemple, si Jack définit l'étiquette « revue » à « + », il apparaîtra comme « Jack: revue [ + ] » A requested flag appears with the user who requested the flag prepended to the flag name and the user who has been requested to set the flag appended to the flag name within parentheses. For example, if Jack asks Jill for review, it appears as Jack: review [ ? ] (Jill). Vous pouvez naviguer dans les requêtes en attente qui vous sont demandées ou que vous avez demandées en sélectionnant « Mes requêtes » dans le pied de page. Vous pouvez aussi y voir celles demandées par d'autres ou à d'autres, par produit, composant et nom d'étiquette dans cette page. Notez que vous pouvez utiliser « - » pour spécifier des étiquettes n'ayant pas de nom d'utilisateur dans le champ « Demandé à ». 5.13. Notifications Les notifications sont une fonctionnalité de Bugzilla qui peut venir ennuyer régulièrement les utilisateurs à des moments spécifiés. En utilisant cette fonctionnalité, les utilisateurs peuvent exécuter des recherches enregistrées à des moments spécifiques (c-à-d. le 15 du mois à minuit) ou à intervalles réguliers (c-à-d. toutes les 15 minutes le dimanche). Les résultats de la recherche sont envoyés à l'utilisateur, soit dans un seul courriel, soit un courriel par bogue, accompagné d'un texte descriptif. Dans cette section, il sera supposé que tous les utilisateurs sont membres du groupe « bz_canusewhines », appartenance de groupe nécessaire pour pouvoir utiliser le système de notifications. Vous pouvez facilement rendre tous les utilisateurs membres du groupe « bz_canusewhines » en définissant l'expression régulière d'utilisateur à « .* » (sans les guillemets). Il est important aussi de mentionner le groupe « bz_canusewhineatothers ». Les membres de ce groupe peuvent créer des notifications pour tout utilisateur ou groupe dans Bugzilla en utilisant un formulaire étendu dans l'interface des notifications. Les fonctionnalités seulement disponibles pour les membres du groupe « bz_canusewhineatothers » seront notées aux endroits appropriés. Pour que les notifications fonctionnent, un script Perl spécial doit être exécuté à intervalles réguliers. Plus de détails sont disponibles dans Section 2.3.3, « Notifications ». Cette section ne couvre pas le script whineatnews.pl. Consultez Section 2.3.2, « Les notifications programmées » pour plus d'informations sur la programmation des notifications. 5.13.1. Évènement Le système de notifications définit un « événement » comme une ou plusieurs requêtes exécutées à intervalles réguliers, dont les résultats (s'il y en a) sont envoyées par courriel à l'utilisateur. Les événements sont créés en cliquant sur le bouton « Ajouter un événement ». Quand le nouvel événement est créé, la première chose à faire est de définir la « Ligne de sujet du courriel ». Le contenu de ce champ sera utilisé dans le sujet de tous les courriels générés par cet événement. En plus du paramétrage de la ligne du sujet, un emplacement est prévu pour saisir un description qui sera incluse au début de chaque message (pour indiquer pourquoi vous recevez ce courriel). L'étape suivante consiste à indiquer quand l'événement doit être exécuté (« Programmation ») et quelles recherches doivent être faites (« Requêtes »). 5.13.2. Programmation des notifications Chaque événement de notification est associé à zéro ou plus programmations. Une programmation est utilisée pour indiquer quand la requête (spécifiée dessous) doit être exécutée. Un nouvel événement est créé sans programmation (ce qui signifie qu'il ne sera jamais exécuté, car il n'est pas programmé). Pour ajouter une programmation, cliquez sur le bouton « Ajouter une nouvelle programmation ». Chaque programmation utilise un intervalle que vous utilisez pour dire à Bugzilla quand l'événement doit être exécuté. Un événement peut être exécuté certains jours de la semaine, certains jours du mois, pendant les jours ouvrables (du lundi au vendredi) ou chaque jour. Faites attention si vous définissez votre événement pour qu'il soit exécuté le 29, le 30 ou le 31 du mois, car il pourrait ne pas s'exécuter exactement comme prévu. Si vous voulez que votre événement s'exécute le dernier jour du mois, sélectionnez l'intervalle « Le dernier jour du mois ». Quand vous avez spécifié le ou les jours pendant lesquels l'événement doit être exécuté, vous devez alors indiquer l'heure de l'exécution de l'événement. Vous pouvez exécuter l'événement à une certaine heure du ou des jours spécifiés, ou chaque heure, demie-heure ou quart d'heure du ou des jours spécifiés. Si une programmation ne s'exécute pas aussi souvent que vous le voudriez, vous pouvez créer une autre programmation pour le même événement. Par exemple, si vous voulez exécuter un événement les jours dont les dates sont divisible par sept, vous devrez ajouter quatre programmations à l'événement, déclenchées les 7, 14, 21 et 28 du mois (un jour par programmation) à l'heure ou à chaque intervalle de temps choisi. Si vous êtes membre du groupe « bz_canusewhineatothers », vous aurez alors une option supplémentaire : « Envoyer à ». En utilisant ceci, vous pouvez contrôler qui recevra les courriels générés par cet événement. Vous pouvez choisir d'envoyer les courriels à un seul utilisateur (identifié par l'adresse électronique) ou à un groupe (identifié par le nom du groupe). Pour envoyer les courriels à plusieurs utilisateurs ou groupes, créez une nouvelle programmation pour chaque utilisateur ou groupe supplémentaire. 5.13.3. Requêtes de notifications Chaque notification est associée à zéro ou plus requêtes. Une requête est toute recherche enregistrée à exécuter dans la programmation spécifiée (voir plus haut). Un nouvel événement est créé sans requête associée (ce qui signifie que l'événement ne sera jamais exécuté car il n'y aura jamais de résultats à renvoyer). Pour ajouter une requête, cliquez sur le bouton « Ajouter une nouvelle requête ». Le premier champ à examiner dans votre nouvelle requête ajoutée est le champ « Ordre ». Les requêtes sont exécutées et les résultats inclus dans l'ordre indiqué par le champ « Ordre ». Les requêtes ayant des valeurs faibles pour le champ « Ordre » seront exécutées avant celles ayant des valeurs élevées pour ce champ. Le champ suivant à examiner est le champ « Requête ». C'est l'endroit où vous choisissez la requête à exécuter. Plutôt que de définir les paramètre de recherche ici, il vous est demandé de choisir dans la liste des recherches enregistrées (la même liste apparaît dans le pied de chaque page de Bugzilla). Vous n'êtes autorisé à choisir que les recherches que vous avez enregistré vous-même (le recherche enregistrée par défaut, « Mes bogues » n'est pas un choix valide). Si vous n'avez pas de recherches enregistrées, profitez de cette opportunité pour en créer une (voir Section 5.5.4, « Listes des bogues »). Lors de l'exécution des requêtes, le système de notifications agit comme si vous étiez l'utilisateur exécutant la requête. Ce qui signifie que le système de notifications ignorera les bogues correspondant à votre requête pour lesquels vous n'avez pas d'accès. Quand vous avez choisi la recherche enregistrée à exécuter, donnez à la requête un titre descriptif. Ce titre apparaîtra dans le courriel, au-dessus des résultats de la requête. Si vous choisissez « Un message par bogue », le titre de la requête apparaîtra en haut de chaque courriel qui contient un bogue correspondant à votre requête. Enfin, décidez si les résultats de votre requête doivent être envoyés dans un seul courriel ou si chaque bogue doit apparaître dans son propre courriel. Réfléchissez soigneusement avant de cocher la case « Un message par bogue ». Si vous créez une requête qui correspond à des milliers de bogues, vous recevrez des milliers de courriels ! 5.13.4. Enregistrement des modifications Quand vous avez terminé de définir une programmation et de créer au moins une recherche enregistrée, cliquez sur le bouton « Mettre à jour/Appliquer ». Ceci enregistrera votre événement et le rendra disponible pour une exécution immédiate. Si vous voulez supprimer un événement, vous pouvez le faire en utilisant le bouton « Supprimer l'événement » dans le coin supérieur droit de chaque événement. Vous pouvez aussi modifier un événement existant en cliquant sur le bouton « Mettre à jour/Appliquer » après avoir terminé vos modifications. Chapitre 6. Personnaliser Bugzilla Table des matières 6.1. Extensions Bugzilla 6.2. Thèmes personnalisés 6.3. Personnaliser des modèles 6.3.1. Struvture de répertoires des modèlesTemplate 6.3.2. Choisir une méthode de personnalisation 6.3.3. Comment modifier les modèles 6.3.4. Types et formats de modèles 6.3.5. Modèles particuliers 6.3.6. Configurer Bugzilla pour détecter la langue de l'utilisateur 6.4. Personnaliser qui peut changer quoi 6.5. Intégration de Bugzilla avec des outils tiers 6.1. Extensions Bugzilla Un des meilleurs moyens de personnaliser Bugzilla est d'écrire une extension Bugzilla. Les extensions Bugzilla vous permettent de modifier le code et l'interface utilisateur de façon à ce qu'elles puissent être distribuées à d'autres utilisateurs de Bugzilla et adaptées à de futures versions de Bugzilla avec un minimum d'effort. Consulter la documentation des extensions de Bugzilla pour des informations sur la manière d'écrire une extension. 6.2. Thèmes personnalisés Bugzilla permet d'avoir plusieurs thèmes. Ce sont des CSS et des images personnalisés pour Bugzilla. Pour créer un nouveau thème, vous avez deux possibilités : Faire un seul fichier CSS et le mettre dans le répertoire skins/contrib. Créer un répertoire qui contient les mêmes noms de fichiers de CSS que dans le répertoire skins/standard/, et mettez votre répertoire dans le répertoire skins/contrib/. Après avoir mis le fichier ou le répertoire ici, assurez-vous d'exécuter pour qu'il puisse définir les permissions de fichiers correctement. checksetup.pl Après avoir installé le nouveau thème, il apparaîtra comme une option dans les préférences générales de l'utilisateur. Si vous voulez imposer un thème particulier à tous les utilisateurs, sélectionnez-le dans les préférences par défaut et décoché « Activé » sur la préférence. 6.3. Personnaliser des modèles Les administrateurs peuvent configurer l'apparence de Bugzilla sans avoir à modifier les fichiers Perl ou faire face à des conflits massifs lors d'une future mise à jour. Les modèles permettent aussi de faire des versions localisées de Bugzilla, pour la première fois. Il est possible d'avoir la langue de l'interface de Bugzilla déterminée par le navigateur de l'utilisateur. D'autres informations sont disponibles sur Section 6.3.6, « Configurer Bugzilla pour détecter la langue de l'utilisateur ». 6.3.1. Struvture de répertoires des modèlesTemplate La structure des répertoires des modèles démarre au répertoire racine nommé template, qui contient un répertoire pour chaque langue installée. Le niveau suivant définit la langue utilisée dans les modèles. Bugzilla est livré avec les modèles en anglais, donc le répertoire s'appelle en, et nous discuterons du répertoire template/en tout au long de la documentation. Dans le répertoire template/en se trouve le répertoire default qui contient tous les modèles standards livrés avec Bugzilla. Un répertoire data/templates existe aussi ; c'est l'endroit où « Template Toolkit » met les versions compilées des modèles du répertoire par défaut ou des répertoires personnalisés. Ne modifiez pas ces fichiers de ce répertoire directement, ou tous vos changements seront perdus la prochaine fois que « Template Toolkit » recompilera les modèles. 6.3.2. Choisir une méthode de personnalisation Si vous voulez modifier les modèles de Bugzilla, La première décision que vous devrez prendre est la façon dont vous voulez procéder. Il y a deux choix qui dépendent pricipalement de la portée de vos modifications et de la méthode que vous prévoyez d'utiliser pour mettre à jour Bugzilla. La première méthode de personnalisation est de modifier directement les modèles situés dans template/en/default. Ceci est probablement la meilleure méthode si vous projetez de mettre à jour Bugzilla par Bzr, car si vous exécutez une commande bzr update, tous les changements que vous avez faits seront automatiquement fusionnés avec les versions mises à jour. Si vous utilisez cette méthode et que des conflits Bzr surviennent pendant la mise à jour, les modèles en conflit (et peut-être d'autres parties de votre installation) ne fonctionneront pas jusqu'à ce que les conflits soient résolus. La seconde méthode est de copier les modèles à modifier dans structure de répertoire miroir dans template/en/custom. Les modèles dans cette structure de répertoires écrasent automatiquement ceux dont le nom et l'emplacement sont identiques dans le répertoire default. Le répertoire custom n'existe pas, vous devez le créer si vous voulez l'utiliser. La deuxième méthode doit être utilisée si vous utilisez la méthode de mise à jour qui remplace les fichiers, sinon vos changements seront perdus. Cette méthode peut être meilleure si vous utilisez la mise à jour par Bzr et que vous allez faire des changements majeurs, car il est garanti que le contenu de ce répertoire ne sera pas modifié pendant une mise à jour et vous pouvez décider alors si vous continuez à utiliser vos propres modèles ou si vous faites l'effort de fussionner vos changements dans les nouvelles versions manuellement. En utilisant cette méthode, votre installation peut ne plus fonctionner si des changements incompatibles sont faits à l'interface des modèles. De tels changements devraient être documentés dans les notes de version, pourvu que vous utilisiez une version stable de Bugzilla. Si vous utilisez une version instable, vous devrez vous débrouillez avec celle-ci vous-même, bien que, si possible, les changements seront mentionnés avant qu'ils n'arrivent dans les notes de version de la version stable précédente. Quelle que soit la méthode utilisée, il est recommandé d'exécuter le script ./checksetup.pl après la modification de modèles dans le répertoire template/en/default, et après avoir créé ou modifié des modèles dans le répertoire custom. Il est nécessaire d'exécuter ./checksetup.pl après la création d'un nouveau modèle dans le répertoire custom. Ne pas le faire produira un message d'erreur incompréhensible. 6.3.3. Comment modifier les modèles Si vous réalisez des changements de modèle que vous comptez renvoyer pour les inclure dans le Bugzilla standard, vous devriez lire les sections appropriées dans le guide des développeurs. La syntaxe du langage « Template Toolkit » n'est pas couverte par ce guide. Il est relativement facile de comprendre en regardant les modèles actuels ; ou vous pouvez lire le manuel, disponible sur la page d'accueil de Template Toolkit. Une chose à laquelle vous devez prêter une attention particulière est le besoin de de filtrer correctement les données HTML qui sont passées par un modèle. Ceci signifie que si les données peuvent contenir des caractère spéciaux HTML comme « < », et que les données ne sont pas destinéees à être de l'HTML, elles doivent alors être converties sous forme d'entités, par ex. « < ». Vous utilisez le filtre « html » dans Template Toolkit pour faire cela (ou le filtre 'uri' pour encoder les caractères spéciaux dans les URLs). Si vous oubliez, vous pourriez ouvrir votre installation à des attaques de scripts de sites croisés. Modifier les modèles est un bon moyen pour personnaliser les champs sans trop d'efforts. Par exemple, si vous n'utilisez pas le « Tableau blanc », mais que vous voulez avoir un champ de saisie de texte libre pour « Identifiant de compilation », alors vous pouvez simplement modifier les modèles pour changer les libellés du champ. Il sera toujours appelé « status_whiteboard » en interne, mais vos utilisateurs n'ont pas besoin de le savoir. 6.3.4. Types et formats de modèles Certains scripts CGI ont la capacité d'utiliser plus d'un modèle. Par exemple, buglist.cgi peut faire des sorties sous forme RDF ou sous deux formats HTML (complexe et simple). Le mécanisme qui produit cette fonctionnalité est extensible. Bugzilla peut gérer différents types de sortie, qui peuvent encore avoir de multiples formats. Pour demander un certain type, vous pouvez ajouter « &ctype=<contenttype> » (comme rdf ou html) à l'URL <cginame>.cgi. Si vous voulez récupérer un certain format, vous pouvez utiliser « &format=<format> » (comme simple ou complexe) dans l'URL. Pour voir si un script CGI gère de multiples types et formats de sortie, faites un grep du fichier CGI pour rechercher « get_format ». S'il n'est pas présent, ajouter la gestion de multiples formats ou types n'est pas trop dur - regardez comment c'est mis en œuvre dans d'autres scripts CGI, comme par exemple config.cgi. Pour faire un nouveau modèle de format pour un script CGI qui le gère, ouvrez un modèle actuellement utilisé pour ce script CGI et regardez le commentaire « INTERFACE » (s'il existe). Ce commentaire définit quelles variables sont passées dans ce modèle. S'il n'y en a pas, il vous faudra alors lire le modèle et le code pour découvrir les informations que vous obtenez. Écrivez votre modèle avec le langage de balises ou le style de texte approprié. Vous devez maintenant décider le type de contenu que vous voulez que votre modèle serve. Les types de contenu sont définis dans le fichier Bugzilla/Constants.pm dans la constante contenttypes. Si votre type de contenu n'y est pas, ajoutez-le. Souvenez-vous du marqueur de trois ou quatre lettres affecté à votre type de contenu. Ce marqueur fera partie du nom de fichier de votre modèle. Après avoir ajouter ou modifier le type de contenu, il faut modifier le fichier Bugzilla/Constants.pm afin de refléter les changements. Et aussi, le fichier doit être maintenu à jour après une mise à jour de Bugzilla si les types de contenus ont été personnalisés auparavant. Enregistrez le modèle sous le nom <stubname>-<formatname>.<contenttypetag>.tmpl. Essayez le modèles en invoquant le script ainsi : <cginame>.cgi? format=<formatname>&ctype=<type> . 6.3.5. Modèles particuliers Il existe quelques modèles qui pourraient particulièrement vous intéresser pour personnaliser votre installation. index.html.tmpl : C'est la page d'accueil de Bugzilla global/header.html.tmpl : Ceci définit l'en-tête qui sera sur toutes les pages de Bugzilla. L'en-tête inclut la bannière, qui s'affiche pour tous les utilisateurs et que vous voudrez certainement modifier. Cependant, l'en-tête contient aussi la section « HTML HEAD », et vous pourriez par exemple y ajouter une feuille de style ou une balise « META » en modifiant l'en-tête. global/banner.html.tmpl : Ceci contient la « bannière », la partie de l'en-tête qui apparaît en haut de toutes les pages de Bugzilla. La bannière par défaut est relativement austère et vous voudrez certainement la personnaliser pour donner à votre installation distincte. il est recommandé de conserver le numéro de version de Bugzilla que vous utilisez de sorte que les utilisateurs sachent quelle documentation consulter. global/footer.html.tmpl : Ceci définit lepied de page de toutes les pages de Bugzilla. Modifier ceci est un autre moyen pour obtenir rapidement une apparence distincte pour votre installation de Bugzilla. global/variables.none.tmpl : Ceci définit la liste des termes qui peuvent être modifiés afin de mettre « à vos couleurs » l'instance Bugzilla. De cette façon, des termes comme « bogues » peuvent être remplacés par « défaut » dans toute l'installation de Bugzilla. Le nom « Bugzilla » et d'autres mots peuvent être personnalisés de la même manière. list/table.html.tmpl : Ce modèle contrôle l'apparence des listes de bogues créées par Bugzilla. Modifier ce modèle permet un contrôle par colonne de la largeur et du titre de la colonne, la longueur maximum d'affichage de chaque entrée et le comportement d'affichage des longues entrées. Pour les longues liste de bogues, Bugzilla insère une « coupure » tous les 100 bogues par défautt ; ce comportement est aussi contrôlé par ce modèle et cette valeur peut être modifiée ici. bug/create/user-message.html.tmpl : C'est le message qui apparaît près du haut de la page de rapport de bogue. En modifiant ceci, vous pouvez dire aux utilisateurs comment rapporter les bogues. bug/process/midair.html.tmpl : C'est la page utilisée i deux utilisateurs soumettent simultanément des changements pour le même bogue. La seconde personne à soumettre les changements obtiendra cette page pour lui indiquer les changements que la première personne a fait, et lui demander si elle souhaite écraser ces changements ou revenir sur la page du bogue. Le titre par défaut et l'en-tête de cette page indiquent « Collision détectée ! ». Si vous travaillez dans l'industrie aéronautique ou d'autres environnements ou ceci pourrait être perçu comme choquant (oui, nous avons des histoires vraies à ce sujet) vous voudrez changer ceci pour quelque chose de plus approprié pour votre environnement. bug/create/create.html.tmpl et bug/create/comment.txt.tmpl : Vous ne souhaitez peut-être pas faire l'effort de créer des champs personnalisés dans Bugzilla, cependant, vous voulez être sûr que chaque rapport de bogue contienne un certain nombre d'éléments d'information importants pour lesquels il n'y a pas un champ spécial. Le système de saisie de bogue a été conçu de façon extensible pour vous permettre d'ajouter des widgets HTML, tels que des listes déroulantes ou des boîtes de texte, sur la page de saisie de bogue, et leurs valeurs apparaissent formatées dans le commentaire initial. Un champ caché indiquant le format peut être ajouté dans le formulaire afin de rendre le modèle fonctionnel. Sa valeur doit être le suffixe du nom de fichier du modèle. Par exemple, si le fichier s'appelle create-cust.html.tmpl, alors <input type="hidden" name="format" value="cust"> doit être utilisé dans le formulaire. Un exemple de ceci est le formulaire de soumission de bogue assisté. Le code pour ceci est livré dans la distribution de Bugzilla comme exemple à copier. On peut le trouver dans les fichiers create-guided.html.tmpl et comment-guided.html.tmpl. Pour utiliser cette focntionnalité, créez un modèle personnalisé pour enter_bug.cgi. Le modèle par défaut sur lequel vous pouvez vous baser est custom/bug/create/create.html.tmpl. Nommez-le create-<formatname>.html.tmpl, et dedans, ajouter les widgets pour chaque élément d'information que vous aimeriez collecter comme l'identifiant de compilation ou un ensemble d'étapes à reproduire. Puis, créez un modèle comme custom/bug/create/comment.txt.tmpl, et appelez-le comment<formatname>.txt.tmpl. Ce modèle doit référencer les champs de formulaire que vous avez créés en utilisant la syntaxe [% form.<fieldname> %]. Quand un rapport de bogue sera soumis, le commentaire initial du rapport de bogue sera formaté selon ce qui est indiqué dans ce modèle. Par exemple, si votre modèle personnalisé « enter_bug » avait un champ <input type="text" name="buildid" size="30"> et que votre fichier « comment.txt.tmpl » avait BuildID : [% form.buildid %] , alors quelque chose comme BuildID : 20020303 devrait apparaître dans le commentaire initial. 6.3.6. Configurer Bugzilla pour détecter la langue de l'utilisateur Bugzilla respecte l'en-tête utilisateur « Accept: HTTP ». Vous pouvez installer des modèles dans d'autres langues et Bugzilla choisira la plus appropriée selon un ordre de priorité que vous avez établi. Beaucoup de modèle de langues peuvent être obtenus sur http://www.bugzilla.org/download.html#localizations. Les instructions pour soumettre de nouvelles langues sont également disponibles à cet emplacement. 6.4. Personnaliser qui peut changer quoi Cette fonctionnalité doit être considérée comme expérimentale ; le code Bugzilla que vous changerez n'est pas stable et pourrait être modifié ou déplacé entre les versions. Soyez conscients que les modifications que vous pourront être à refaire ou à porter si des modifications du code interne de Bugzilla sont faites entre les versions et que vous faites une mises à jour de Bugzilla. Les sociétés ont souvent des règles pour déterminer quels employés ou classes d'employés sont autorisés à modifier certaines choses dans le système de suivi de bogues. Par exemple, seul le contact QA désigné peut être autorisé à marquer le bogue VÉRIFIÉ. Bugzilla a été conçu pour vous faciliter la tâche d'écrire vos propres règles pour définir qui est autorisé à faire certains types de modifications. Par défaut, les responsables, les responsables QA et les utilisateurs ayant des privilèges editbugs peuvent modifier tous les champs des bogues, sauf les restrictions de groupes (à moins qu'ils ne soient membres des groupes qu'ils essaient de modifier). Les rapporteurs de bogue ont la possibilité de modifier quelques champs, mais de manière beaucoup plus restrictive. Les autres utilisateurs sans privilèges editbugs, ne peuvent pas modifier les bogues, sauf pour ajouter un commentaire ou s'ajouter à la liste « Copie à ». Pour une flexibilité maximale, personnaliser cela signifie de modifier le code Perl de Bugzilla. Ceci donne à l'administrateur le contrôle total sur ce que chacun peut faire. La méthode pour réaliser cela s'appelle check_can_change_field(), et se trouve dans le fichier Bug.pm de votre répertoire Bugzilla/. Si vous ouvrez ce fichier pour y rechercher « sub check_can_change_field », vous la trouverez. Cette méthode a été soigneusement commentée pour vous permettre de voir exactement comment elle fonctionne et vous donner une idée sur la façon de la modifier. Certaines sections identifiées ne doivent pas être modifiées - c'est le « squelette » qui permet au reste de la fonction de fonctionner. Entre ces sections, vous trouverez des morceaux de code comme : # Allow the assignee to change anything. if ($ownerid eq $whoid) { return 1; } Il est évident de savoir ce que cette partie de code fait. Alors, comment modifier cette fonction ? Certains changements simples peuvent être accomplis en supprimant quelques parties - par exemple, si vous voulez empêcher un utilisateur d'ajouter un commentaire à un bogue, supprimez les lignes marquées « Allow anyone to change comments. » Si vous ne voulez pas que le rapporteur ait des droits spéciaux sur les bogues qu'il a rapporté, supprimez toute la section concernant le rapporteur. Des personnalisations plus complexes ne sont pas beaucoup plus difficiles. En gros, vous ajoutez un point de vérification au bon endroit dans la fonction, c-à-d. après que toutes les variables que vous utilisez ont été définies. Aussi, ne cherchez pas « $ownerid » avant que cette variable n'ait été obtenue de la base de données. Vous pouvez ajouter soit un point de vérification positif, qui renvoie « 1 » (autoriser) si certaines conditions sont vérifiées, soit un point de vérification négatif, qui renvoie « 0 » (refuser). Par ex. : if ($field eq "qacontact") { if (Bugzilla->user->in_group("quality_assurance")) { return 1; } else { return 0; } } Ceci signifie que seuls les utilisateurs du groupe « quality_assurance » peuvent changer le champ « Contact QA » d'un bogue. Plus bizarre : if (($field eq "priority") && (Bugzilla->user->email =~ /.*\@exemple\.com$/)) { if ($oldvalue eq "P1") { return 1; } else { return 0; } } Ceci signifie que si l'utilisateur essaie de changer le champ « Priorité », et que son adresse électronique est « …@exemple.com », il ne peut le faire que si l'ancienne valeur du champ était « P1 ». Pas très utile, mais illustratif. Si vous modifiez le fichier process_bug.cgi, ne changez pas les blocs de code marqués « DO_NOT_CHANGE ». Si vous le faites, cela compromettra la sécurité de votre installation ou provoquera empêchera votre de fonctionner. Pour une liste des noms de champs possibles, consultez la table « bugs » dans la base de données. Si vous avez besoin d'aide pour écrire des règles personnalisées pour votre organisation, demandez de l'aide sur le forum. 6.5. Intégration de Bugzilla avec des outils tiers Beaucoup d'utilitaires et d'applications peuvent s'intégrer dans Bugzilla, que ce soit du côté client ou du côté serveur. Aucun d'eux n'est maintenu par la communauté Bugzilla et ils n'ont pas été testés lors de nos tests d'assurance qualité. Par conséquent, utilisez-les à vos risques et périls. Ils sont listés sur https://wiki.mozilla.org/Bugzilla:Addons. Annexe A. Dépannage Table des matières A.1. Notice générale A.2. Le serveur Apache n'affiche pas les pages de Bugzilla A.3. J'ai installé un module Perl mais checksetup.pl dit qu'il n'est pas installé ! A.4. DBD::Sponge::db prepare failed A.5. cannot chdir(/var/spool/mqueue) A.6. Tout le monde est obligé de se reconnecter constamment A.7. index.cgi n'apparaît pas à moins de le spécifier dans l'URL A.8. « checksetup.pl » signale « Client does not support authentication protocol requested by server… » Cette section donne les solutions aux problèmes d'installation courants de Bugzilla. Si aucun des titres ne semble correspondre à votre problème, veuillez lire la notice générale. A.1. Notice générale Si vous n'arrivez pas à exécuter checksetup.pl jusqu'à son terme, il explique généralement ce qui ne va pas et comment le corriger. Si vous ne vous en sortez pas ou si l'explication de correction n'est pas indiquée, veuillez poster les erreurs dans le forum mozilla.support.bugzilla. Si vous avez effectué ce qui est indiqué dans Section 2.1, « Installation » (Installation) et Section 2.2, « Configuration » (Configuration) mais que l'accès à l'URL de Bugzilla ne fonctionne pas, la première chose à faire est de vérifier le journal des erreurs de votre serveur Web. Pour Apache, il se trouve souvent sur /etc/logs/httpd/error_log. Les messages d'erreur que vous voyez peuvent être suffisamment explicites pour vous permettre de diagnostiquer et corriger le problème. Si ce n'est pas le cas, veuillez consulter ci-dessous les erreurs communément rencontrées. Si cela ne vous aide pas, veuillez poster les erreurs dans le forum. Bugzilla peut également journaliser les erreurs utilisateur (et beaucoup d'erreurs de code) qui surviennent sans polluer le journal des erreurs du serveur Web. Pour activer la journalisation des erreurs de Bugzilla, créez un fichier dans lequel Bugzilla peut écrire nommé errorlog, dans le répertoire data de Bugzilla. Les erreurs seront consignées au fur et à mesure en indiquant le type d'erreur, l'adresse IP et le nom d'utilisateur (si disponible) de l'utilisateur qui a déclenché l'erreur et les valeurs de toutes les variables d'environnement ; si un formulaire a été soumis, les données de celui-ci seront aussi incluses. Pour désactiver la journalisation d'erreur, supprimez ou renommez le fichier errorlog. A.2. Le serveur Apache n'affiche pas les pages de Bugzilla après avoir exécuté deux fois le script checksetup.pl, exécuter la commande testserver.pl http://votresite.votredomaine/votrerurl pour confirmer que votre serveur Web est configuré correctement pour Bugzilla. bash$ ./testserver.pl http://landfill.bugzilla.org/bugzilla-tip TEST-OK Webserver is running under group id in $webservergroup. TEST-OK Got ant picture. TEST-OK Webserver is executing CGIs. TEST-OK Webserver is preventing fetch of http://landfill.bugzilla.org/bugzillatip/localconfig. A.3. J'ai installé un module Perl mais checksetup.pl dit qu'il n'est pas installé ! Cela peut être dû à l'une des deux causes suivantes : 1. Vous avez deux versions de Perl sur votre machine. Vous installez les modules dans l'une et Bugzilla utilise l'autre. Ré-exécutez les commandes CPAN (ou la compilation manuelle) en utilisant le chemin d'accès complet à Perl en haut du script checksetup.pl. Ceci assurera que vous installez les modules au bon endroit. 2. Les permissions de vos répertoires de bibliothèques sont définies de manière incorrecte. Elles doivent être au moins en lecture pour l'utilisateur ou le groupe du serveur Web. Il est recommandé qu'elles soient en lecture pour tout le monde. A.4. DBD::Sponge::db prepare failed Le message d'erreur suivant peut apparaître à cause d'un bogue de DBD::mysql (sur lequel l'équipe de Bugzilla n'a pas de contrôle) : DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248. SV = NULL(0x0) at 0x20fc444 REFCNT = 1 FLAGS = (PADBUSY,PADMY) Pour corriger cela, rendez-vous dans installation de Perl et remplacez <chemin-vers-perl>/lib/DBD/sponge.pm dans votre my $numFields; if ($attribs->{'NUM_OF_FIELDS'}) { $numFields = $attribs->{'NUM_OF_FIELDS'}; } elsif ($attribs->{'NAME'}) { $numFields = @{$attribs->{NAME}}; par my $numFields; if ($attribs->{'NUM_OF_FIELDS'}) { $numFields = $attribs->{'NUM_OF_FIELDS'}; } elsif ($attribs->{'NAMES'}) { $numFields = @{$attribs->{NAMES}}; (veuillez noter le S ajouté à NAME.) A.5. cannot chdir(/var/spool/mqueue) Si vous avez installé Bugzilla sur une distribution SuSE Linux ou toute autre distribution avec les options de sécurité en mode « paranoïaque », il est possible que le script checksetup.pl échoue avec l'erreur : cannot chdir(/var/spool/mqueue): Permission denied Ceci est provoqué par votre répertoire /var/spool/mqueue qui a les permissions drwx------. Saisissez la commande chmod 755 /var/spool/mqueue en tant que « root » pour corriger ce problème. Ceci permettra à tout processus s'exécutant sur votre machine de lire le répertoire /var/spool/mqueue. A.6. Tout le monde est obligé de se reconnecter constamment La cause la plus probable est que le paramètre « cookiepath » n'est pas défini correctement dans la configuration de Bugzilla. Vous pouvez changer ceci (si vous êtes un administrateur de Bugzilla) à partir de la page « editparams.cgi » dans votre navigateur Web. La valeur du paramètre « cookiepath » doit être le répertoire actuel contenant votre installation de Bugzilla, comme le voit le navigateur Web du simple utilisateur. Les barres de fraction « / » ouvrante et fermante sont obligatoires. Vous pouvez définir « cookiepath » pour n'importe quel répertoire parent de Bugzilla (comme « / », le répertoire racine). Mais vous ne pouvez pas indiquer un répertoire qui n'a pas au moins une correspondance partielle sans quoi cela ne fonctionnera pas. Vous êtes en fait en train d'empêcher le navigateur de l'utilisateur de renvoyer les cookies seulement vers ce répertoire. Comment savoir si vous voulez votre répertoire Bugzilla spécifique ou tout le site ? Si vous n'avez qu'une seule installation de Bugzilla sur le serveur et si ça vous est égal d'avoir d'autres applications sur le même serveur capables de voir les cookies (vous pourriez faire ceci volontairement si vous avez d'autres choses sur votre site qui partagent l'authentification avec Bugzilla), alors vous voudrez que « cookiepath » soit défini à « / », ou un répertoire suffisamment haut pour que toutes les applications concernées puissent voir les cookies. Exemple A.1. Exemples de paires « urlbase »/« cookiepath » partageant les cookies de connexion « urlbase » est http://bugzilla.mozilla.org/ « cookiepath » est / « urlbase » est http://outils.monsite.tld/bugzilla/ mais vous avez http://outils.monsite.tld/uneautreappli/ qui partag e l'authentification avec Bugzilla « cookiepath » est / D'un autre côté, si vous avez plus d'une installation Bugzilla sur votre serveur (certains le font - nous le faisons pour landfill) vous devrea avoir le paramètre « cookiepath » suffisamment restreint pour que les différentes installations de Bugzilla ne confondent pas leurs cookies l'une et l'autre. Exemple A.2. Exemples de paires « urlbase »/« cookiepath » pour limiter les cookies de connexion « urlbase » est http://landfill.bugzilla.org/bugzilla-tip/ « cookiepath » est /bugzilla-tip/ « urlbase » est http://landfill.bugzilla.org/bugzilla-4.0-branch/ « cookiepath » est /bugzilla-4.0-branch/ Si vous aviez « cookiepath » défini à « / » auparavant et que vous voulez le définir pour quelque chose de plus restrictif (par ex. « /bugzilla/ »), vous pouvez faire cela en toute sécurité sans demander à vos utilisateurs de supprimer leurs cookies relatifs à Bugzilla dans leur navigateur (ceci est vrai dès Bugzilla 2.18 et Bugzilla 2.16.5). A.7. index.cgi n'apparaît pas à moins de le spécifier dans l'URL Vous devrez vraisemblablement paramétrer votre serveur Web de sorte qu'il serve la page comme une page d'index. Si vous utilisez Apache, vous pouvez faire cela en ajoutant index.cgi à la fin de la ligne DirectoryIndex comme c'est indiqué dans Section 2.2.4.1, « Bugzilla utilisant Apache ». A.8. « checksetup.pl » signale « Client does not support authentication protocol requested by server… » Cette erreur survient car vous utilisez le nouveau chiffrement de mot de passe fourni avec MySQL 4.1 alors que votre module DBD::mysql a été compilé pour une version antérieure de MySQL. Si vous recompilez DBD::mysql avec les bibliothèques actuelles de MySQL (ou si vous obtenez un nouvelle version de ce module) alors l'erreur peut disparaître. Si cela ne corrige pas votre problème ou si vous ne pouvez pas recompiler le module existant (par ex. si vous utilisez Windows) et/ou que vous ne voulez pas le remplacer (par ex. vous voulez conserver une version empaquetée), alors, un moyen de contournement est disponible sur la documentation de MySQL : http://dev.mysql.com/doc/mysql/en/Old_client.html Annexe B. Contrib Table des matières B.1. Interface de recherche en ligne de commande B.2. Outil en ligne de commande « Envoyer les courriels de bogues en attente » Il existe de nombreux modules non-officiels complémentaires à Bugzilla dans le répertoire $BUGZILLA_ROOT/contrib/. Cette section les documente. B.1. Interface de recherche en ligne de commande C'est une suite d'utilitaires Unix pour faire des recherches dans Bugzilla en ligne de commande. Ils résident dans le répertoire query.conf, buglist et bugs. contrib/cmdline. Il y a trois trois fichiers - Ces fichiers sont antérieurs au travail d'intégration dans les modèles commencé dans la version 2.16 et n'ont pas été mis à jour. contient la correspondance entre les options et les noms de champs et les types de comparaison. Les noms d'options entre guillemets sont « greppés » (recherchés avec la commande grep), il devrait donc être facile de modifier ce fichier. Les commentaires (#) sont sans effet ; vous devez donc vous assurer que ces lignes ne contiennent pas « option » entre guillemets. query.conf est un script qui soumet une requête Bugzilla et écrit la page HTML résultante sur la sortie standard. Il accepte les options courtes , (comme « -Atoto » ou « -Rtiti ») et les options longues (comme « --assignedto=toto » ou « -reporter=titi »). Si le premier caractère d'une option n'est pas « - », elle est traitée comme si elle préfixée avec « --default= ». buglist La colonne de liste est récupérée de la variable d'environnement COLUMNLIST. Ceci est équivalent à l'option « Modifier les colonnes » disponible quand vous listez les bogues dans buglist.cgi. Si vous avez déjà utilisé Bugzilla, faites un grep de COLUMNLIST dans vos fichiers de cookies pour voir le paramètrage actuel pour COLUMNLIST. est un simple script qui appelle buglist et extrait les numéros de bogues de la sortie de ce script. Ajouter le préfixe « http://bugzilla.mozilla.org/buglist.cgi? bug_id= » transforme la liste de bogues en hyperliens si des bogues sont trouvés. Compter les bogues est facile : faites un « pipe » (« | ») des résultats avec sed -e 's/,/ /g' | wc | awk '{printf $2 "\n"}' bugs Akkana Peck dit qu'elle a de bons résultats en faisant un « pipe » sur la sortie du script buglist avec w3m -T text/html -dump B.2. Outil en ligne de commande « Envoyer les courriels de bogues en attente » Dans le répertoire contrib se trouve un utilitaire du nom descriptif (à défaut d'être court) de sendunsentbugmail.pl. Le propos de ce script est simplement d'envoyer tout courriel relatif aux bogues qui aurait dû être envoyé, mais qui, pour une raison ou une autre, ne l'a pas été. Pour accomplir cette tâche, sendunsentbugmail.pl utilise le même mécanisme que le script sanitycheck.cgi ; il analyse toute la base de données en recherchant les bogues qui ont été modifiés plus de 30 minutes auparavant, mais pour lesquels il n'y a pas d'enregistrement pour les personnes associées à ce bogue pour lesquelles un courriel a été envoyé. Après avoir compilé une liste, il utilise alors les règles standard pour déterminer qui doit recevoir un courriel et l'envoie. Lors de son exécution, le script indique le bogue traité pour lequel il est en train d'envoyer un courriel ; quand il a terminé, il donne le nombre de courriels qui ont été envoyés et le nombre de personnes ayant été exclues des envois. (Les noms d'utilisateurs ne sont ni enregistrés, ni affichés). Si le script ne produit pas de sortie, cela signifie qu'aucun courriel en attente n'a été détecté. Utilisation : déplacez le script sendunsentbugmail.pl dans le répertoire racine, assurezvous qu'il a les droits d'exécution, et exécutez-le en ligne de commande (ou avec une tâche programmée) sans paramètre. Annexe C. Manuel d'installation des modules Perl Table des matières C.1. Instructions C.2. Liens de téléchargement C.3. Modules optionnels C.1. Instructions Si vous devez installer des modules Perl manuellement, voici comment faire. Téléchargez le module en utilisant le lien donné dans la section suivante et invoquez cette incantation magique en tant qu'utilisateur « root » : bash# bash# bash# bash# bash# bash# tar -xzvf <module>.tar.gz cd <module> perl Makefile.PL make make test make install Pour compiler le code source sous Windows, vous devrez obtenir un utilitaire « make ». L'utilitaire nmake fourni avec Microsoft Visual C++ peut être utilisé. vous pouvez aussi utiliser l'utilitaire appelé dmake disponible dans CPAN qui est écrit entièrement en Perl. Comme cela est décrit dans Section C.2, « Liens de téléchargement », cependant, la plupart des paquetages existent déjà et sont disponibles à partir de ActiveState ou de theory58S. Nous vous recommandons fortement de les installer en utilisant l'interface graphique ppm disponible avec ActiveState et d'ajouter le référentiel theory58S à votre liste de référentiels. C.2. Liens de téléchargement Pour exécuter Bugzilla sous Windows, vous devez utiliser ActiveState Perl 5.8.1 ou supérieur. Si certains modules ne sont pas présents, envisagez de mettre à jour ActiveState Perl en version 5.12 minimum, qui contient tous les modules nécessaires. CGI : Page de téléchargement de CPAN : http://search.cpan.org/dist/CGI.pm/ Documentation : http://perldoc.perl.org/CGI.html Data-Dumper : Page de téléchargement de CPAN : http://search.cpan.org/dist/Data-Dumper/ Documentation : http://search.cpan.org/dist/Data-Dumper/Dumper.pm Date::Format (fait partie de TimeDate) : Page de téléchargement de CPAN : http://search.cpan.org/dist/TimeDate/ Documentation : http://search.cpan.org/dist/TimeDate/lib/Date/Format.pm DBI : Page de téléchargement de CPAN : http://search.cpan.org/dist/DBI/ Documentation : http://dbi.perl.org/docs/ DBD::mysql : Page de téléchargement de CPAN : http://search.cpan.org/dist/DBD-mysql/ Documentation : http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm DBD::Pg : Page de téléchargement de CPAN : http://search.cpan.org/dist/DBD-Pg/ Documentation : http://search.cpan.org/dist/DBD-Pg/Pg.pm Template-Toolkit : Page de téléchargement de CPAN : http://search.cpan.org/dist/TemplateToolkit/ Documentation : http://www.template-toolkit.org/docs.html GD : Page de téléchargement de CPAN : http://search.cpan.org/dist/GD/ Documentation : http://search.cpan.org/dist/GD/GD.pm Template::Plugin::GD : Page de téléchargement de CPAN : http://search.cpan.org/dist/Template-GD/ Documentation : http://www.template-toolkit.org/docs/aqua/Modules/index.html MIME::Parser (fait partie de MIME-tools) : Page de téléchargement de CPAN : http://search.cpan.org/dist/MIME-tools/ Documentation : http://search.cpan.org/dist/MIME-tools/lib/MIME/Parser.pm C.3. Modules optionnels Chart::Lines : Page de téléchargement de CPAN : http://search.cpan.org/dist/Chart/ Documentation : http://search.cpan.org/dist/Chart/Chart.pod GD::Graph : Page de téléchargement de CPAN : http://search.cpan.org/dist/GDGraph/ Documentation : http://search.cpan.org/dist/GDGraph/Graph.pm GD::Text::Align (fait partie de GD::Text::Util) : Page de téléchargement de CPAN : http://search.cpan.org/dist/GDTextUtil/ Documentation : http://search.cpan.org/dist/GDTextUtil/Text/Align.pm XML::Twig : Page de téléchargement de CPAN : http://search.cpan.org/dist/XML-Twig/ Documentation : http://standards.ieee.org/resources/spasystem/twig/twig_stabl e.html PatchReader : Page de téléchargement de CPAN : http://search.cpan.org/author/JKEISER/Patch Reader/ Documentation : http://www.johnkeiser.com/mozilla/Patch_Viewer.html Annexe D. GNU Free Documentation License Table des matières D.0. D.1. D.2. D.3. Preamble Applicability and Definition Verbatim Copying Copying in Quantity D.4. Modifications D.5. Combining Documents D.6. Collections of Documents D.7. Aggregation with Independent Works D.8. Translation D.9. Termination D.10. Future Revisions of this License D.. How to use this License for your documents Version 1.1, March 2000 Copyright (C) 2000 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. D.0. Preamble The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. D.1. Applicability and Definition This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machinegenerated HTML produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. D.2. Verbatim Copying You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. D.3. Copying in Quantity If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computernetwork location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. D.4. Modifications You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D.Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G.Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M.Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. D.5. Combining Documents You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." D.6. Collections of Documents You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. D.7. Aggregation with Independent Works A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. D.8. Translation Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail. D.9. Termination You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. D.10. Future Revisions of this License The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. D.. How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no FrontCover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. Glossaire 0-9, high ascii .htaccess Le serveur Web Apache, et d'autres serveurs Web compatibles NCSA, respecte la convention d'utiliser des fichiers nommés .htaccessdans les répertoires pour limiter les accès à certains fichiers. Pour Bugzilla, ils sont utilisés pour garder secret des fichiers qui dans le cas contraire pourraient compromettre votre installation - par ex. le fichier localconfig qui contient le mot de passe de votre base de données. A Apache Dans ce contexte, Apache est le serveur Web le plus utilisé pour servir les pages de Bugzilla. Contrairement à une croyance répandue, le serveur Web Apache n'a rien à voir avec l'ancienne et noble tribu native d'Amérique du Nord, mais son nom est plutôt dérivé du fait que c'était « a patchy » version of the original NCSA world-wide-web server. (NdT : cela signifie, « une version corrigée » du serveur originel NCSA. « a patchy » se prononce « eupatchy » tout comme « apache » en anglais. Directives utiles lors de la configuration de Bugzilla AddHandler Comment indiquer à Apache qu'il peut exécuter des scripts CGI. AllowOverride, Options Ces directives sont utilisées pour indiquer à Apache beaucoup de choses sur le répertoire auquel elles s'appliquent. Pour Bugzilla, nous en avons besoin pour autoriser l'exécution de scripts et l'écrasement des fichiers .htaccess. DirectoryIndex Utilisé pour indiquer à Apache les fichiers qui sont des index. Si vous ne pouvez pas ajouter index.cgi à la liste des fichiers valides, vous aurez besoin de définir $index_html à 1 dans le fichier localconfig so ./checksetup.pl créera un fichier index.html qui fera une redirection sur index.cgi. ScriptInterpreterSource Utilisé lorsque Apache est exécuté sous Windows pour ne pas changer la ligne dans chaque script de Bugzilla. Pour plus d'informations sur la manière de configurer Apache pour Bugzilla, consultez Section 2.2.4.1, « Bugzilla utilisant Apache ». B Bogue Un « bogue » dans Bugzilla se réfère à un problème saisi dans la base de données qui a un numéro, des affectations, des commentaires associés, etc. Certains parlent de « tickets » ou de « problèmes » ; dans le contexte de Bugzilla, ils sont synonymes. Numéro de bogue À chaque bogue de Bugzilla est affecté un numéro unique qui identifie ce bogue. Le bogue associé à un numéro de bogue retrouvé par l'intermédiaire d'une requête ou facilement sur la page principale en saisissant le numéro dans la boîte « Rechercher ». Bugzilla Bugzilla est le leader mondial des logiciels libres de suivi de bogues. C Common Gateway Interface CGI est l'acronyme de Common Gateway Interface (interface de passerelle commune). c'est un standard pour l'interfaçage d'application externe avec un serveur Web. Bugzilla est un exemple d'application CGI. Composant Un composant est une sous-section d'un produit. Cela peut être une catégorie restreinte, taillée pour votre organisation. Tous les produits doivent contenir au moins un composant (et par conséquent, créer un produit sans composant provoquera une erreur dans Bugzilla). Comprehensive Perl Archive Network CPAN est l'acronyme de « Comprehensive Perl Archive Network ». CPAN maintient un grand nombre de modules Perl extrêmement utiles. Ce sont des morceaux de code encapsulés pour accomplir une tâche particulière. contrib Dans le répertoire contrib sont placés les scripts de contributeurs à Bugzilla mais qui ne font pas partie de la distribution officielle. Ces scripts sont écrits par des tiers et peuvent être écrits en d'autres langages que Perl. Pour ceux écrits en Perl, il peut y avoir des modules additionnels ou d'autres prérequis que ceux de la distribution officielle. Les scripts du répertoire contrib ne sont pas officiellement supportés par l'équipe Bugzilla et peuvent ne plus fonctionner en passant d'une version à l'autre. D démon Un démon est un programme informatique qui tourne en arrière-plan. En général, la plupart des démons sont démarrés au démarrage de l'ordinateur via les scripts d'initialisation de System V ou via des scripts RC sur les systèmes basés sur BSD. mysqld, le serveur MySQL et apache, un serveur Web, sont généralement exécutés comme des démons. Attaque DOS Un DOS, ou attaque par déni de service, se produit quand un utilisateur essaie d'empêcher l'accès à un serveur Web en accédant sans cesse à une page ou en envoyant des requêtes mal formées à un serveur Web. Un D-DOS, ou attaque par déni de service distribuée, se produit quand ces requêtes proviennent de plusieurs sources en même temps. Malheureusement, il est beaucoup plus difficile de se prémunir de ces attaques. G Groupes Le mot « groupes » a une signification très spéciale dans Bugzilla. Le mécanisme principal de sécurité de Bugzilla repose sur le placement d'utilisateurs dans des groupes et l'affectation à ces groupes de certains privilèges pour voir les bogues de produits particulier dans la base de données de Bugzilla. J JavaScript JavaScript est cool, nous devrions en parler. M Message Transport Agent Un agent de transport de message est utilisé pour contrôler le flux des courriels sur un système. Le module Perl Email::Send qu'utilise Bugzilla pour envoyer des courriels, peut être configuré pour utiliser beaucoup de mises en œuvre sous-jacentes différentes pour envoyer les courriels en utilisant le paramètre mail_delivery_method. MySQL MySQL est un des RDBMS requis pour Bugzilla. MySQL peut être téléchargé sur http://www.mysql.com. Bien que vous deviez vous familiariser avec toute la documentation, quelques points importants sont : Sauvegarde Méthodes de sauvegarde de votre base de données Bugzilla. Fichiers d'option Des informations sur la façon de configurer MySQL en utilisant le fichier my.cnf. Système de privilèges Informations sur la manière de protéger votre serveur MySQL. P Perl Package Manager http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/ Produit Un produit est une grande catégorie de types de bogues, représentant normalement une partie d'un logiciel ou d'une entité. En général, il y a plusieurs composants dans un produit. Un produit peut définir un groupe (utilisé pour la sécurité) pour tous les bogues saisis dans ses composants. Perl First written by Larry Wall, Perl is a remarkable program language. It has the benefits of the flexibility of an interpreted scripting language (such as shell script), combined with the speed and power of a compiled language, such as C. Bugzilla is maintained in Perl. Q QA « QA », « Q/A » et « Q.A. » sont des raccourcis pour « assurance qualité ». Dans la plupart des grandes organisations de développement de logiciels, il y a une équipe dédiée pour assurer que le produit respecte un minimum de standards avant la publication. Cette équipe voudra aussi généralement suivre la progression des bogues tout au long de leur cycle de vie, d'où le besoin du champ « Contact QA » dans un bogue. R Relational DataBase Management System Un système de gestion de base de données relationnelle est un système de base de données qui stocke les informations dans des tables qui sont reliées les unes aux autres. Expression régulière Une expression régulière est une expression utilisée pour rechercher une correspondance de motif. Documentation S Service Dans un environnement Windows NT, une application fonctionnant en arrièreplan et lancée au démarrage est appelée service. Ils sont généralement géré à l'aide du panneau de configuration après s'être connecté avec un compte ayant des privilèges « Administrateur ». Pour plus d'informations, consultez votre manuel Windows,For more ou la MSKB (Microsoft Knowledge Base : base de connaissances Microsoft). SGML SGML est l'acronyme de « Standard Generalized Markup Language » (langage normalisé de balisage généralisé). Créé dans les années 1980 pour fournir un moyen extensible pour maintenir de la documentation basé sur le contenu plutôt que la présentation, SGML a résisté à l'épreuve du temps comme un langage robuste et puissant. XML est le « petit frère » de SGML ; tout dovument XML valide est, par définition, un document SGML valide. Le document que vous êtes en train de lire est écrit et maintenu en SGML, et il est également valide XML si vous modifiez la Document Type Definition (définition du type de document). T Jalon cible Les jalons cibles sont des objectifs de produit. Ils sont configurables par produit. La plupart des sociétés de développement ont un concept de « jalons » où les personnes finançant un projet attendent certaines fonctionnalités à certaines dates. Bugzilla facilite l'accession à ces jalons en donnant la possibilité de déclarer pour quel jalon un bogue sera corrigé ou une amélioration mise en œuvre. Tool Command Language TCL est un langage de script open source disponible sur Windows, Macintosh et les systèmes basés sur Unix. Bugzilla 1.0 était écrit en TCL mais jamais publié. La première version était Bugzilla was 2.0, quand il a été porté en Perl. Z Aucun bogue trouvé (NdT :en anglais le texte est « Zarro Boogs found » au lieu de « Zero bugs found »). C'est juste une manière un peu dingue de dire qu'il n'y a pas de bogues correspondant à votre requête. Quand on lui a demandé d'expliquer ce message, Terry a déclaré : On m'a demandé d'expliquer ceci … il y a longtemps, quand Netscape publiait la version 4.0 de son navigateur, nous avions fait une fête pour la sortie de la version. Naturellement, il y avait eu une grosse pression pour essayer de corriger chaque bogue connu avant la sortie de la version. Naturellement, ça n'est en fait pas arrivé. (Ce n'est pas propre à Netscape ou la version 4.0 ; la même chose est arrivée dans tous les projets que je connais). Bref, lors de cette fête il y avait des T-shirts qui disait quelque chose comme « Netscape 4.0: Zarro Boogs ». Tout comme le logiciel, le T-shirt n'avait pas de bogue connu. Uh-huh. Donc, quand vous faites une requête pour obtenir une liste de bogues, et qu'il n'y a pas de résultat, vous pouvez penser à ceci comme un rappel amical. Bien *sûr* il y a des bogues qui correspondent à votre requêtes, ils ne sont juste pas encore dans le système… --Terry Weissman
© Copyright 2024 Paperzz