Retour d’expérience sur la personnalisation de Trac

 

wikipedia:Trac icon, modified for the Open Ico...

Image via Wikipedia

 

Il y a quelques jours que j’ai commencé à personnaliser Trac pour les besoins de mon employeur. L’objectif était de fournir aux utilisateurs qui sont en grande majorité non informaticiens, un outils de saisie de demande. Le choix de Trac comme base peut paraitre incongru puisque Trac est avant tout destiné à gérer les projets de développement logiciel. Certes, mais Trac n’en demeure pas moins un outils de traitement de bug, de ticket et pourquoi pas de demandes?

D’autres arguments m’ont poussé à choisir Trac. Il est gratuit, open-source et libre. De plus il dispose d’une large base d’extension permettant d’ajouter sans codage (codage en python) de nouvelles fonctionnalités voire d’en modifier des existantes. Ce billet montre comment nous sommes parvenus avec un minimum de code à obtenir une application répondant aux besoins et couvre la version 0.12 de Trac.

En premier lieu on s’aperçoit rapidement qu’il y a plusieurs niveaux d’intervention. En effet Trac est conçu comme un conteneur de projet. L’outil finale sera donc constitué de Trac plus un projet. Dans ce cas on voit clairement les niveaux d’interventions suivants:

  1. Par ajout de plugin
  2. Par paramétrage dans le projet dédié
  3. Par développement dans le projet dédié
  4. Par développement dans Trac lui-même
  5. Par développement dans les plugin

Ajout de plugin

Les liens suivants contiennent une très longue liste de plugin: le site de trac et le site des plugin.

Les plugins sont soit des fichiers py (module python) soit des fichiers egg (livrable ou librairie python). Si le plugin est disponible uniquement sous forme de source alors il faudra le compiler pour générer un egg avec la commande:

python setup.py bdist_egg

Pour installer un plugin il est préférable de le mettre dans le répertoire du projet. Cela permet de faire cohabiter sur le même système plusieurs versions d’une librairie (chacune dans un processus python distinct). Par exemple si le projet s’appelle gesdem il faut placer les plugin dans

gesdem/plugins

Toutefois si Trac est en cours d’éxécution, on peut passer par l’interface d’administration d’un projet donné pour ajouter le plugin.

Paramétrage dans le projet dédié

Le paramétrage dans le projet dédié consiste à modifier les paramétres dans le fichier trac.ini du prjet. Soit dans le cas du projet qui s’appelle gesdem:

gesdem/conf/trac.ini

Le paramétrage du projet se fait également par la page d’administration. Ce paramétrage va mettre à jour le fichier trac.ini mais également la base de données pour certains plugins.

Développement dans le projet dédié

Nous entendons par développement tout simplement la modification des templates. Trac possède une notion d’héritage de configuration ainsi on peut mettre des templates dans le projet dédié qui vont écraser ceux par défaut.

Développement dans Trac lui-même

Si les sources de Trac sont dans un répertoire nommé trac-0.12 alors il faut se rendre dans le répertoire suivant pour trouver les modules python et les templates à modifier:

trac-0.12\trac

Développement dans les plugin

Les plugins peuvent nécessiter des ajustements. Dans ce cas il faut télécharger les sources et prendre soin de au moins créer/modifier le fichier setup.cfg pour ajouter un suffixe remarquable puisque nous allons faire un fork. Voici un setup.cfg minimal:

[egg_info]

tag_build = monTagAMoi
tag_svn_revision = true

Remplacer monTagAMoi par le nom de votre organisation par exemple !

Cet article, publié dans Application, Paramétrage, est tagué , , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s