[trac] Doc d'éxploitation

[size=150]1. - DESCRIPTION GENERALE[/size]

1.1 - Qu’est ce que TRAC

Trac est un wiki amélioré de système de suivi des problèmes pour les projets de développement logiciel. Trac utilise une approche minimaliste de la gestion logiciels de projet basé sur le Web.
Il fournit une interface pour Subversion (ou d’autres systèmes de contrôle de version).
Il intègre un Wiki et des rapports pratiques.

Le Wiki de Trac permet de créer des marqueurs dans les descriptions des messages posté, des tâches prévues, des modifications apportés, et de créer des liens et des références en prenant compte les bugs rencontrés au fil du projet.

Un calendrier affiche tous les événements de projets actuels et passés dans un ordre précis. Afficher une vue d’ensemble et voir les suivis des progrès du projet est vraiment facile la feuille de route montre la voie à suivre, la liste des étapes à venir.

Pour simplifier :

Trac est une application web Open Source de gestion complète de projet par Internet, développé en Python.

Trac inclut :

  • Un Wiki,
  • Gestion de feuilles de route,
  • Historique,
  • Rapport de bugs,
  • Explorateur subversion.

Il est développé par la société Edgewall Software, inspiré de CVStrac.
L’affichage Web de Trac fonctionne grâce au moteur de template ClearSilver.
Jusqu’à la version 0.9, Trac était sous licence GNU GPL. Maintenant, il est distribué sous Licence BSD.

Un des plus grands utilisateurs de Trac est probablement le Jet Propulsion Laboratory de la NASA .

1.2 - Les apport de la Version 0.12.1

  • Support i18n et interface de localisation
  • Support Référentiel Multiple (0.12-multirepos)
  • Amélioration du système de recherche de billets
  • Amélioration le Formatage du Wiki
  • Diverses améliorations de l’interface pour la chronologie, la modification du wiki et des tickets, et l’explorateur du révérenciel

Voir le ReleaseNotes 0.12 de Trac pour une liste plus détaillée.
Notez également que les pages TracGuide sont maintenant mis à jour pour la version 0.12.

[size=150]2. – TRAC 0.12.1[/size]

2.1 - Source de TRAC 0.12.1

Vous pouvez récupérer les sources de TRAC en version 0.12.1 à l’adresse suivante :
trac.edgewall.org/milestone/0.12

Contenu du répertoire source de TRAC 0.12.1

  • AUTHORS
  • cgi-bin
  • ChangeLog
  • contrib
  • COPYING
  • doc
  • INSTALL
  • Makefile
  • Makefile.cfg.sample
  • messages-js.cfg
  • PKG-INFO
  • README
  • RELEASE
  • sample-plugins
  • setup.cfg
  • setup.py
  • setup_wininst.bmp
  • TESTING-README
  • THANKS
  • trac
  • Trac.egg-info
  • tracopt
  • UPGRADE
  • wiki-macros

2.2 - Dépendance d’installation

Trac est écrit en Python et a besoin d’une base de données,
SQLite_, Postgres_, ou mysql_. Pour le rendu HTML, Trac utilise un système de Template nommé Genshi.

(Le choix de la base de données vous appartient, mais pour la doc, nous allons utiliser sqlite. Plus d’info dans le fichier /doc/install/index.rst des sources de TRAC.)

D’autre Dépendance devrons être installé suivant le type de configuration que vous utiliserez.

2.3 - Installation de TRAC 0.12.1

Dans le répertoire source de TRAC, tapez :

2.4 - Création d’un Environnement de projet

L’environnement de projet, est un répertoire ou Trac stocke des informations comme les pages wiki, billets, rapports, paramètres.

Pour créer Environnement de projet tapez :

trac-admin vous demandera les informations nécessaires pour créer l’environnement, telles que le nom du projet et la chaîne de connexion de base de données. Si vous n’êtes pas sûr de ce qu’il faut préciser, pour l’une de ces options, appuyez simplement sur Entrée pour utiliser la valeur par défaut.

Notez également que les valeurs que vous spécifiez ici peuvent être modifiées ultérieurement en éditant directement le fichier de configuration trac.ini.

Enfin, assurez-vous que le compte utilisateur sous lequel s’exécute le serveur WEB a le droit d’écrire dans le répertoire et tous les fichiers de l’environnement de projet.

[size=150]3. – TRAC 0.12.1 CONFIGURATION[/size]

3.1 - Configuration Web Accès TRAC 0.12.1

La configuration de TRAC pour l’accès par le web, se fait dans le fichier vhost d’apache.
Il existe plusieurs types de configuration pour trac :

  • TRACD,
  • Mod-python d’apache,
  • Les CGI,
  • Et le FastCGI,

3.2 - TRACD Serveur Web léger

Tracd est un serveur web autonome et léger pour Trac. Il peut être utilisé dans une variété de situations, à partir d’un serveur de test ou de développement d’une installation multiprocessus derrière un autre serveur web utilisé comme un équilibreur de charge.

Avantage :

Moins de dépendances : Vous n’avez pas besoin d’installer Apache ou tout autres web-serveur.

Rapidité : presque aussi rapide que la version mod_python (et beaucoup plus rapide que le mode CGI), d’autant plus que la version 0.12 où la version du protocole HTTP/1.1 est activée par défaut

Rechargement automatique : Pour le développement, tracd peut être utilisé en mode auto_reload, qui redémarre automatiquement le serveur lorsque vous faites une modification du code (sur Trac lui-même ou dans un plugin).

Inconvénient :
Moins de fonctionnalités: tracd met en œuvre un serveur web très simpliste et n’est pas aussi configurable ou évolutive que Apache.

Aucune prise en charge native HTTPS : SSLWRAP peut être utilisé à la place, ou stunnel

Exemples d’utilisation :
Projet unique sur le port 8080. (localhost:8080/)

Chemin vers l’environnement de projet accessible pour tout le réseau.
Pour limiter l’utilisation seulement sur localhost utiliser l’option hostname.

Avec plus d’un projet :

localhost:8080/project2/

Vous ne pouvez pas avoir la dernière partie du trajet identique entre les projets, Trac utilise ce nom pour conserver les URL des différents projets uniques. Donc, si vous utilisez :

/chemin1/projet et /chemin2/projet vous ne verrez que le deuxième projet.

Une autre manière de servir de multiples projets est de spécifier un répertoire parent dans lequel chaque sous-répertoire est un environnement de projet Trac, en utilisant l’option -e.

L’exemple ci-dessus peut être réécrit :

Pour quitter le serveur sur Windows, veillez à utiliser CTRL-BREAK - l’utilisation de CTRL-C laissera un processus de Python en cours d’exécution en arrière-plan.

Je passe la configuration sous Windows, par manque de motivation…

3.3 - Trac Mod_Python

Créer un environnement de projet TRAC, puis rajouté dans le vhost Apache :

    <Location /trac>
      SetHandler mod_python
      PythonHandler trac.web.modpython_frontend
      PythonInterpreter main
      PythonOption TracEnv /path/to/env
      PythonOption TracUriRoot /trac
      SetEnv PYTHON_EGG_CACHE /tmp
    </Location>[/code]




PythonInterpreter doit être réglé sur la même chaîne dans tous les hôtes virtuels
utilisant Trac.
PythonOption TracUriRoot doit être réglé sur le même nom que la location.

Pour une configuration de l'environnement multiples, vous pouvez utiliser 
PythonOption TracEnvParentDir 


Si Trac, ou d'autres modules, ne sont pas installés dans le chemin d'accès standard, vous pouvez utiliser la directive PythonPath qui permet d'ajouter d'autres dossiers::

[code]    PythonPath "['/nouveau/chemin'] + sys.path"[/code]

Un exemple complet d'une Vhost utilisant mod_python et mod_dav_svn (Subversion):

[code]<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        ServerAdmin webmaster@example.com

       # Note: Ce dossier doit exister, mais sera généralement vide
        DocumentRoot /srv/example.com/htdocs
        <Directory /srv/example.com/htdocs>
            Order allow,deny
            Allow from all
        </Directory>

        # Racine de l'instance Trac:
        <Location />
            SetHandler mod_python
            PythonHandler trac.web.modpython_frontend
            PythonInterpreter main
            PythonOption TracEnv /srv/example.com/tracs/main
            PythonOption TracUriRoot /
            SetEnv PYTHON_EGG_CACHE /tmp
        </Location>

        # Autres projets /$PROJECT
        <Location /projects>
            PythonOption TracEnv ""
            PythonOption TracEnvParentDir /srv/example.com/tracs
        </Location>

        # Connexions login et projet /$PROJECT/login
        <LocationMatch ^(/projects/[^/]+)?/login>
            AuthType Basic
            AuthName "example.com Login"
            AuthUserFile /srv/example.com/htpassd
            Require valid-user
        </LocationMatch>

        # Host subversion pour tous les projets à /svn
        <Location /svn>
            DAV svn
            SVNParentPath /srv/example.com/repos
            SVNListParentPath on

            AuthType Basic
            AuthName "example.com Login"
            AuthUserFile /srv/example.com/htpassd
           	#Limitation   
  <LimitExcept GET PROPFIND OPTIONS REPORT>
            Require valid-user
            </LimitExcept>
        </Location>
    </VirtualHost>[/code]

[b]
3.4	- Trac CGI[/b]


NOTE : La façon dont fonctionne le mode CGI, exige que l'application entière soit rechargée sur chaque demande. Cela finit par provoquer des ralentissements important 
Utiliser la configuration CGI seulement en dernier recourt.

Pour générer le fichier Trac.cgi tapez :

  [code]#trac-admin /chemin/vers/environnement deploy /chemin/vers/www/trac[/code]

Le fichier cgi.bin se trouvera dans le dossier donné :/chemin/vers/www/trac/cgi/

Ajouter un alias dans le virtualhost TRAC :

    [code]ScriptAlias /trac /chemin/vers/www/trac/cgi-bin/trac.cgi[/code]

Pour une configuration à  environnement multiples, vous pouvez utiliser:

    ScriptAlias /trac /chemin/vers/www/trac/cgi-bin/trac.cgi
    <Location /trac>
        SetEnv TRAC_ENV_PARENT_DIR /chemin/vers/racine
    </Location />
</VirtualHost>
[b]

3.5	- Trac FastCGI[/b]


Pour générer le fichier trac.fcgi tapez :

        trac-admin /chemin/vers/environnement deploy /chemin/vers/www/trac

Le fichier cgi.bin se trouvera dans le dossier donné :/chemin/vers/www/trac/cgi/

Ajouter un alias dans le virtualhost TRAC :

    [code]ScriptAlias /trac /chemin/vers/www/trac/cgi-bin/trac.fcgi[/code]

Pour une configuration à  environnement multiples, vous pouvez utiliser:

   [code] ScriptAlias /trac /chemin/vers/www/trac/cgi-bin/trac.fcgi
    <Location /trac>
        SetEnv TRAC_ENV_PARENT_DIR /chemin/vers/racine
    </Location />


3.6 - Authentification TRACD

Tracd fournit un soutien pour les authentifications basique et Digest. La valeur par défaut est d’utiliser Digest, pour utiliser l’authentification de base, remplacer “–auth” par “–base-auth” dans les exemples ci-dessous.

Le format général d’aide de l’authentification est la suivante:

Port tracd -p - auth = “base_project_dir, password_file_path, royaume” project_path

où:

base_project_dir : est le répertoire de base du projet spécifié comme suit:
Au moment de servir plusieurs projets: par rapport à la directive project_path
Au moment de servir un seul projet (-s): le nom du répertoire du projet
(Ne pas utiliser un chemin absolu ici que cela ne fonctionnera pas.)
Note: Ce paramètre est sensible à la casse, même pour les environnements sous Windows.

password_file_path: chemin vers le fichier de mot de passe

domaine: le nom de domaine (ce que vous voulez)

project_path: chemin du projet

  • Auth dans les moyens ci-dessus utiliser l’authentification Digest, remplacer - auth avec - de
    base-auth si vous souhaitez utiliser l’authentification basique

3.7 - Fichier de mot de passe htpasswd :

Pour créer un fichier htpasswd utiliser la commande htpasswd Apache (voir ci-dessous pour une méthode pour créer ces fichiers sans l’aide de Apache).:

Puis pour les utilisateurs supplémentaires:

Alors pour lancer le serveur TRACD nous utiliserons par exemple :

[code]Tracd -p 8080 -base-auth = "projectdirname /projet/vers/environnement/.htpasswd

Realmname" /projet/vers/environnement[/code]

Exemple:

[code]Tracd -p 8080 -base-auth = “testenv,/srv/tracenv/testenv /.htpasswd, Montest Env”

/srv/tracenv/testenv
[/code]
Note: Vous pourriez avoir besoin de passer “-m” en tant que paramètre à htpasswd sur certaines plateformes (OpenBSD).

3.8 - Fichier de mot de passe htdigest:

Vous pouvez utiliser la commande htdigest pour générer le fichier de mot de passe. “Htdigest” Vous serez invité à entrer un mot de passe à entrer pour chaque utilisateur que vous créez. Pour le nom du fichier de mot de passe, vous pouvez utiliser ce que vous voulez, mais si vous utilisez quelque chose comme users.htdigest à vous de vous rappeler ce que le fichier contient. À titre de suggestion, le mettre dans votre dossier conf/ avec le fichier trac.ini.

Notez que vous pouvez lancer Tracd sans l’argument -auth, mais si vous cliquez sur le lien Connexion, vous obtiendrez une erreur.

[size=150]4. - PLUGIN TRAC[/size]

Une fois TRAC installé et fonctionnel vous aurez sans doute l’envi incommensurable d’installer des Plugins, pour ceux qui ne savent pas les plugin servent à rajouter des options, non disponible par default.

Avant tout, je tiens à vous mettre une simple petite configuration, non pas pour un plugin, mais pour configurer et comprendre comment afficher le pannel ADMIN qui vous permettra par la suite d’installer d’autres plugins.

Commençons par lancer la commande :

Vous devriez rentrer en mode console dans trac-admin :

[code]Welcome to trac-admin 0.12.1
Interactive Trac administration console.
Copyright © 2003-2010 Edgewall Software

Type: ‘?’ or ‘help’ for help on commands.

Trac [/chemin/vers/projet]>
[/code]
Taper :

Vous devriez avoir :

User           Action
------------------------------
anonymous      BROWSER_VIEW
anonymous      CHANGESET_VIEW
anonymous      FILE_VIEW
anonymous      LOG_VIEW
anonymous      MILESTONE_VIEW
anonymous      REPORT_SQL_VIEW
anonymous      REPORT_VIEW
anonymous      ROADMAP_VIEW
anonymous      SEARCH_VIEW
anonymous      TICKET_VIEW
anonymous      TIMELINE_VIEW
anonymous      WIKI_VIEW
authenticated  TICKET_CREATE
authenticated  TICKET_MODIFY
authenticated  WIKI_CREATE
authenticated  WIKI_MODIFY


Available actions:
 BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW,
 LOG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE,
 MILESTONE_MODIFY, MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT,
 PERMISSION_REVOKE, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE,
 REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW,
 SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP, TICKET_CREATE,
 TICKET_EDIT_CC, TICKET_EDIT_COMMENT, TICKET_EDIT_DESCRIPTION,
 TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW, TRAC_ADMIN,
 VERSIONCONTROL_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE, WIKI_MODIFY,
 WIKI_RENAME, WIKI_VIEW

En haut se trouve les droits par rapport aux utilisateurs actuels, et en bas les droits possible.

Exemple :
“authenticated TICKET_CREATE” = Seul les utilisateurs authentifié ont le droit de créer un ticket

En bas se trouve les actions possibles, et donc nous allons rajouter le droit à l’utilisateur “vous” d’utiliser “TRAC_ADMIN”, toujour dans la console trac-admin taper :

“Vous”= nom d’utilisateur sans les guillemets, inscrit dans le .htpasswd ou le .htdigest

Et voila, normalement, vous devriez avoir accès à la partie ADMIN de TRAC.

Sources : trac.edgewall.org/;http://fr.wik … /TracGuide

Edit :

Quand vous installez un plugin, utiliser easy_install, je vous le conseil, parce que comme ça en cas de problème, vous pourrez enlever un plugin avec easy_install -m plugin.

Amicalement,
Fabien493

Il faudrait peut être mieux forker le fil pour trac, non ?

Bonjour,

Je ne connait pas le terme “forker”, mais je pourrais créer un nouveau topic, dans les trucs et astuces, pour TRAC, indépendamment de SVN.

Ou changer le nom du post comme Subversion + Trac.

faudrait il encore que je me rappelle de mon mot de passe, (ouais je l’ai encore perdu lol)

Amicalement,
Fabien493

Salut,

Joli Travail!
Si tu penses que maintenant c’est complet, le Wiki serait ravi d’accueillir ta doc. :006

Salut,

Traduction : En français “forker” se dirait scinder dans ce cas précis :slightly_smiling:

[quote=“ggoodluck47”]Salut,

Traduction : En français “forker” se dirait scinder dans ce cas précis :slightly_smiling: [/quote]
Littéralement c’est créer une fourchette. :laughing:

Mais forker viens du nom de l’appel système fork() qui permet de dupliquer le processus courant. Il est utiliser comme dis ggoodluck à la place de “scinder” en terminologie geek.

Re,

C’est quand même la première fois que je vois le verbe francisé. Essaies de l’employer à l’imparfait du subjonctif et tu verras cela fait tout drôle :laughing: :laughing: :laughing:

lol,

Au travail, prêt du départ, je passe voir le fil de la discutions “SVN TRAC”. A ma grande surprise, mon post TRAC à disparue :open_mouth: incroyable mais vrais, un nouveau topic TRAC s’ouvre devant mes yeux, de moi, alors que je n’y suis pour rien, apparemment un admin à du passer par la.
mais rendez vous compte compte que dans ce nouveau topic, nous parlons de fourchettes…

Je dois être fatigué, je crois que je vais rentrer…

Fabien493

[quote=“fabien493”]lol,

Au travail, prêt du départ, je passe voir le fil de la discutions “SVN TRAC”. A ma grande surprise, mon post TRAC à disparue :open_mouth: incroyable mais vrais, un nouveau topic TRAC s’ouvre devant mes yeux, de moi, alors que je n’y suis pour rien, apparemment un admin à du passer par la.
mais rendez vous compte compte que dans ce nouveau topic, nous parlons de fourchettes…

Je dois être fatigué, je crois que je vais rentrer…

Fabien493[/quote]
Te fais pas de bille c’est lol qui l’a fait à ma demande.
Pour ce qui est des fourchettes on arrête là (ou sinon ricardo va dire "on est pas dans PC ici ! :013 ").

ah ouais, t’es privilégié !, tu demande à Laurent et il te dit ouais pas de sushi…
Je vais aller me plaindre à la fédération de la fourchette scindé, (Forker Corporation) :mrgreen:

note :

Personnellement, ça ne me dérange pas les posts qui ont tendance à partir sur autre chose, surtout que là, c’est partie de la définition du mot Forker, que je ne connaissait pas, même en anglais…
ça permet de détendre l’atmosphère. Tant que ça part pas dans du n’importe quoi.

je me demande depuis longtemps si c’est laurent qui à participé au paramétrage du wiki…, nan parce que sinon ça expliquerais pourquoi il marche si mal :laughing:

Forker à l’mparfait du subjonctif :

que je forkasse
que tu forkasses
qu’il forkat
que nous forkassions
que vous forkassiez
qu’ils forkassent

Enfin j’invente hein…

Amicalement,
Fabien493