2008-10-10 7 views
16

J'ai un projet Trac installé en plus d'une implémentation Subversion (facile à faire grâce au panneau de contrôle de Webfaction), mais maintenant j'ai du travail de configuration à faire. Dans cet esprit, y at-il facile façons de faire ce qui suit dans Trac:Comment puis-je tirer le meilleur parti de Trac?

1) Assurez-vous que les clients ne peuvent voir qu'un indicateur de progression de haut niveau.
2) Donner des rapports de synthèse quotidiens sur les tickets, les tests et les tâches.

Aussi, je suis intéressé à savoir s'il y a fortement plugins recommandés que je serais désolé j'ai oublié d'installer.

Répondre

8

1) indicateur de progression de haut niveau:

L'onglet feuille de route vous donne genre d'un indicateur de progression de haut niveau. Il énumère toutes les étapes et pour chaque étape il vous montre:

  • étape titre
  • courte description
  • Date
  • sur laquelle l'étape est due
  • combien de temps est laissé jusque-là (ou combien de temps vous êtes derrière votre emploi du temps)
  • combien de tickets sont assignés à ce jalon et combien d'entre eux ont été fermés, visualisés comme une belle barre de progression verte. Cette barre est établie en supposant que chaque ticket a le même poids, ce qui peut induire en erreur

Vous pouvez restreindre vos autorisations de manière à ce que votre client puisse accéder à cette vue uniquement. En fonction de la relation entre vous et votre client, vous pouvez lui donner la possibilité de créer de nouveaux tickets (autorisation TICKET_CREATE), ce qui devrait être possible sans lui donner un accès en lecture aux autres tickets (TICKET_VIEW et TICKET_MODIFY). Désolé, mais je ne peux pas actuellement tester si cela fonctionne vraiment, peut-être que quelqu'un peut commenter.

2) rapports résumé quotidien

vous propose des flux trac RSS pour tout ce que vous pouvez penser. Il devrait être possible de générer des rapports quotidiens à partir de cela, ou vous demandez simplement à votre client RSS de vérifier le flux une fois par jour. Trac a également le droit d'informer un détenteur de billet par courrier si ce billet a changé, mais cela se produira instantanément, et non pas sous forme de résumé quotidien. Vous pouvez commenter les billets, et parfois nous les utilisons comme un forum de discussion ou une liste de diffusion, et dans ce cas, il est bon d'être informé instantanément.

Autre configuration

Dans chaque projet, je fais avec trac, je crée une requête personnalisée à la liste tous les billets que personne ne possède:

 
SELECT p.value AS __color__, 
    owner AS __group__, 
status, 
    id AS ticket, summary, component, milestone, t.type AS type, time AS created, 
    changetime AS _changetime, description AS _description, 
    reporter AS _reporter 
    FROM ticket t 
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' 
    WHERE status = 'new' AND (owner = '' OR owner = 'somebody' OR owner = 'None') 
    ORDER BY owner, p.value, t.type, time 

Chaque billet peut avoir un propriétaire et plusieurs personnes le champ cc, mais le rapport pour mes billets ne liste que ceux dont vous êtes le propriétaire.Pour remédier à cela, j'ajoute une requête comme ceci:

 
    SELECT p.value AS __color__, 
    (CASE owner WHEN '$USER' THEN 
    (CASE status 
     WHEN 'assigned' 
     THEN 'Tickets that you accepted' 
     ELSE 'Tickets that were assigned to you, please accept or reassign' 
     END) 
    ELSE 'Tickets, that have your name in the cc' END) 
    AS __group__, 
    id AS ticket, summary, component, version, milestone, 
    t.type AS type, priority, time AS created, 
    changetime AS _changetime, description AS _description, 
    reporter AS _reporter 
    FROM ticket t 
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' 
    WHERE t.status 'closed' AND (owner = '$USER' OR cc like '%$USER%') 
    ORDER BY owner, (status = 'assigned') DESC, p.value, milestone, t.type, time 

(ce code fonctionne en 0.11b trac)

C'est mon rapport de billet favori. Il goups billets par trois classes:

  • billets que vous possédez et accepté
  • billets qui vous ont été attribués, mais vous n'avez pas encore accepté
  • billets qui vous ont dans le cc (que la chose fantaisie vous n'obtiendrez pas sans cette requête)

Les requêtes peuvent sembler angoissantes, mais elles sont de simples modifications des requêtes qui s'y trouvent déjà. Vous n'avez pas à pirater le code source trac, l'interface web vous permet de modifier les requêtes.

Plugins

Je recommande la XML RPC plugin si vous travaillez avec Eclipse. Il permet une intégration étroite avec Mylin. (Je pense que l'intégration de base fonctionne même sans le plugin), donc vos développeurs peuvent effectuer de nombreuses tâches depuis eclipse sans passer à l'interface web trac.

(Si vous utilisez Eclipse, mais ne savez pas Mylin, vous devriez avoir un coup d'oeil. Vous pouvez tester sans aucune configuration, car il est livré avec la plupart des distributions d'éclipse et peut fonctionner en mode autonome sans trac.)

17

Je ne recommanderais pas d'utiliser le même projet Trac pour suivre les tâches de développement et montrer les progrès du client. Vous voulez être franc avec vos tickets de développement, vos commentaires, etc. Les clients peuvent se concentrer sur les mauvaises choses et mal interpréter les données que vous mettez dans les tickets. Je recommande de fournir au client un projet distinct qui contient des tâches de haut niveau et ne montre que la progression de ces tâches, et non le moindre problème.

+0

Donc, il n'y a pas moyen de restreindre l'idée que le client doit y parvenir? – torial

+0

Je ne pense pas que vous pouvez restreindre un utilisateur à ne voir que certains billets et pas d'autres, ou des commentaires de billets. –

+0

Semble violer DRY (ne vous répétez pas). Maintenir les données à deux endroits est une recette pour l'incohérence et les objets perdus. –

3

@Dave Dunkin a raison. Utilisez Trac pour votre usage interne et utilisez un système tel que Basecamp pour donner à vos clients un aperçu de haut niveau de ce qui se passe dans le projet.

+0

des alternatives libres à Basecamp? – torial

+0

Basecamp est gratuit pour les petits projets. Il y a un site anti-37signals qui a une liste d'alternatives Basecamp - http://www.whybasecampsux.org/#alternatives (site amusant, heh) – ceejayoz

+0

Vous pouvez également avoir deux instances de Trac, l'une en public, l'autre en face interne. J'ai bien travaillé ici. – agnul

5

En ce qui concerne les plugins supplémentaires sont concernés, nous installons TocMacro, XmlRpcPlugin, WysiwygPlugin et TracRedirect. En particulier, le plugin WYSIWYG est vraiment bon pour encourager le personnel moins technique à maintenir leurs propres documents dans le wiki - vous pouvez même utiliser MS Word tout en conservant le formatage, ce qui aide.

Jetez un oeil à l'étoffe de flux de travail de billets personnalisé Trac vous donne, si votre flux de travail ne sont pas bien représentés par les valeurs par défaut de Trac. Cela nous a permis d'ajouter des étapes de révision de code et de test d'intégration au flux de travail.

Je vous recommande d'authentifier votre serveur Trac par rapport à une structure d'authentification centrale. Nous exécutons une arborescence LDAP avec des informations d'authentification, et ceci est utilisé par tous nos systèmes internes - y compris trac, svn, samba, openvpn, etc

3

S'il s'agit d'une installation en stock, la base de données est juste un SQLite3, donc vous peut facilement écrire des scripts pour récupérer des informations "sûres", comme le nombre de tickets, ou pourquoi pas un des rapports. De cette façon, vous pouvez discuter librement tant que le nom du ticket est correct. Les révisions, les jalons, les wikipages, les tags (si vous utilisez ce plugin) sont également disponibles.

3

Vous pouvez probablement retirer toutes les autorisations sauf ROADMAP_VIEW de l'utilisateur anonyme, mais ce sera probablement un peu trop de haut niveau, non? Le contrôle d'accès au niveau du ticket ou du commentaire individuel n'est actuellement pas pris en charge AFAIK. Voir http://trac.edgewall.org/wiki/TracPermissions pour plus de détails sur les autorisations de trac.

3

Comme mentionné dans l'un des commentaires, vous ne pouvez pas restreindre l'accès aux tickets ou aux commentaires en fonction de l'utilisateur. Trouver ou créer un système de rapport externe est votre meilleur choix.

Un couple de choses basées sur l'expérience avec Trac:

  1. Création d'une coutume workflow est froward assez simple. L'utilisation de GraphViz est une aide énorme pour états communicants et actions.Un plugin de workflow (comme AdvancedTicketWorkflowPlugin) qui étend davantage la fonctionnalité intégrée n'est pas trop difficile à faire si vous avez besoin d'une interaction d'état plus complexe.

  2. Pour des rapports personnalisés, vous pouvez écrire requêtes SQL qui prennent des paramètres nommés, redirigent ensuite à ces partir d'une page wiki:

Par exemple, la requête peut contenir une clause WHERE comme ceci:

WHERE datetime(t.changetime, 'unixepoch') >= datetime('now','-$DAYS days') 

et la page wiki peut avoir ceci:

Show activity for last [http://server.com/trac/report/9?DAYS=8 8] days. 
+0

Je suis novice en matière de trac, mais j'ai découvert que vous pouviez utiliser les requêtes ticket personnalisées trac.edgewall.org/wiki/TracQuery avec le contrôle wiki basé sur Authz trac-hacks.org/wiki/WikiRbacPatch pour restreindre l'affichage des tickets en fonction de l'utilisateur. Ai-je raison? –

+0

Je n'ai jamais utilisé WikiRbacPatch, mais d'après la documentation, le contrôle d'accès ajouté ne s'appliquerait qu'aux pages wiki. Je ne crois pas que ce correctif affecterait les résultats d'une requête personnalisée. –

Questions connexes