1. Présentation

Codendi est une plateforme collaborative de développement et de suivi des activités (usine logicielle) qui permet de suivre tout le cycle de vie des applications logicielles (ALM). A partir d'une même interface Web, Codendi rassemble tous les outils dont les équipes de développement logiciel ont besoin : tableaux de bord, graphique de Gantt, trackers, SVN, GIT, gestion des documents, Wiki, messagerie instantanée... Codendi est un outil 100% open-source, sous licence GNU General Public License.

L'intérêt d'un tel produit est de permettre à tous les membres d'un projet (chefs de projet, développeurs, clients…) de travailler avec un même outil qui organise le processus du projet logiciel, améliore la qualité des logiciels livrés et facilite la collaboration.

Voici les différents outils intégrés dans Codendi qui vont intervenir au cours du cycle de vie d'un projet logiciel.

Image non disponible

2. Éditions

Codendi est disponible en deux éditions :

  • une version communautaire Codendi Community Edition, librement téléchargeable ;
  • une version professionnelle, Codendi ProEdition, testée et sécurisée. C'est la version commerciale sur laquelle sont assurés les services Codendi (conseil, migration, support…).

Voir la comparaison entre les deux versions.

3. Fonctionnalités de Codendi 4.2

Voici les fonctionnalités que fournit la dernière version, Codendi 4.2.

3-A. Suivi de projet

Tracker universel (outil de suivi): tâches, risques, exigences, bugs, demandes de support, tests ...
  • Trackers et champs très finement personnalisables
  • Trackers illimités pour chaque projet
  • Trackers préconfigurés
  • Dépendances entre champs
  • Workflow entièrement paramétrable
  • Puissants outil de recherche et de tri
  • Notifications personnalisables
  • Import/export de données
  • Edition de masse
  • Permissions très fine sur les trackers, artefacts et même les champs
  • Traçabilité des accès
Menu d'administration et personnalisation des trackers
Menu d'administration et personnalisation des trackers
Image non disponible
Exemple d'un rapport de tracker de bugs
Image non disponible
Exemple de tracker Scrum
Rapports et graphiques
  • Créer vos rapports et graphique d'état d'avancement de votre projet : graphique de Gantt, camemberts, tableaux
  • Ajouter les à vos tableaux de bords projet et personnel
Image non disponible
Exemple de tableau de bord d'un projet
Modèles de projets
  • Normalisez vos projets et implémentez les méthodologies en créant des modèles de projets qui reprennent la configuration de vos outils

3-B. Développement

Gestionnaires de code source : SVN, CVS, GIT
  • Dépôts Subversion, CVS ou GIT centralisés pour chaque projet
  • Recherche dans les dépôts : par mot-clé, par utilisateur, etc.
  • Navigation dans les dépôts
  • Visualisation graphique des différences de fichiers
Image non disponible
Recherche dans un dépôt Subversion
Intégration continue avec Hudson
  • Contrôlez et visualisez l'état d'avancement de vos projets. Plusieurs indicateurs liés à l'intégration continue sont proposés : statut des différents builds, tendance des projets, résultats des tests, accès direct à toutes les informations de l'outil Hudson depuis Codendi.
Image non disponible
Interface avec Hudson
Gestionnaire de fichiers (packages)
  • Organisez vos livrables en paquets : fichiers d'installation du logiciel, binaires, sources, documentation utilisateur, etc.

3-C. Gestion documentaire

Gestionnaire de documents
  • Workflow et versioning
  • Plusieurs vues possibles : vues en icônes, vue arborescente …
  • Gestion fine des permissions et des accès sur les répertoires et les documents.
  • Notification des évènements.
  • Intégration des documents et du Wiki.
  • Wiki par projet (édition collaborative).
Image non disponible
Gestionnaire de documents

3-D. Collaboration et communication

  • Recherche de projet
  • Librairie de composants
  • Listes de distribution
  • Messagerie instantanée
  • Forums
  • Sondages
  • Annonces
  • Flux RSS

4. Architecture

La plateforme est basée sur une architecture de type LAMP (Linux, Apache, MySQL, PHP). Codendi s'installe sur les distributions GNU/Linux RHEL et CentOS 5.x.

Codendi utilise le principe de plugins qui permet l'extension des fonctionnalités de l'outil à l'infini.

Codendi offre une API Web Service basée sur SOAP qui permet la communication entre applications et la possibilité d'exporter les données d'un projet au format CSV.

Image non disponible

5. Installation de Codendi 4.2 RC

Si vous ne souhaitez pas installer la plateforme ou si vous avez des difficultés, vous pouvez la tester et créer vos propres projets en demandant ici un accès à un serveur de démo Codendi 4.2.

5-A. Prérequis

5-A-1. Distribution GNU Linux

Codendi est compatible avec Red Hat Enterprise Linux 5.x et CentOS 5.x ; il est donc nécessaire d'installer cette distribution Linux en premier lieu.

Téléchargement libre de CentOS : http://www.centos.org/

5-A-2. Image ISO Codendi

Télécharger une image ISO Codendi et la monter comme suit :

 
Sélectionnez

$> wget http://codendi.org/.../codendi-xxx.iso
$> mkdir /media/cdrom
$> mount -o loop codendi-xxx.iso /media/cdrom/

5-A-3. Propriétés d'installation

Le script d'installation Codendi nécessite plusieurs directives de configuration. Vous devez rassembler :

  • Codendi server fully qualified name : codendi.mydomain.com (server hostname) ;
  • Codendi server IP(v4) address ;
  • Passwords.

Voir les paramètres dans la section ci-dessous pour plus de détails.

5-B. Installation

Exécuter le script codendi_install.sh :

 
Sélectionnez

$> /media/cdrom/codendi_install.sh
Image non disponible

Le script demande l'installation d'une liste de paquets prérequis (une connexion Internet peut être nécessaire).

Une fois ces paquets installés, le paramétrage de l'installation peut commencer.

Paramètres
Input Example Value Notes
 Codendi Server fully qualified name   codendi.example.com   Nom du serveur 
Your Company short name  My Company   
Your Company long name  My Company Ltd   
 Codendi Server IP address   192.168.1.3   “Default” détection de la config eth0
LDAP server name     Laisser vide si vous n'utilisez pas d'annuaire LDAP
  Proxy to access the Internet   Http://proxy.exemple.com:8080   host:port ou laisser vide si aucun proxy http n'est nécessaire
Activate user shell accounts? [y|n]   y  Les utilisateurs Codendi peuvent avoir besoin d'un accès shell 
Generate a self-signed SSL certificate to enable HTTPS support? [y|n]   n  Pour un support https avec un certificat autosigné
Enable sub-domain management (DNS delegation)? [y|n]   n  Nous suggérons de ne pas installer de délégation DNS pour une installation minimale
Load default trackers templates during installation? [y|n]   y  Les modèles de trackers par défaut sont chargés à ce stade
Load your own tracker templates during installation? [y|n]   n  Vos propres modèles de tracker peuvent être chargés ici
Do you want this installer to insert iptables rules so that installed services could be accessed by clients in your LAN? [y|n]   y   Pour une installation Centos/RHEL 5 par défaut avec iptables support activé, ceci ouvre seulement les ports nécessaires
MySQL root password   xxxxx   
 Codendiadm user password   xxxxx   
 Mailman user password   xxxxx   
 Openfire DB user password   xxxxx   
 DB Authentication user password   xxxxx   Indiquer l'utilisateur MySQL qui sera utilisé pour l'authentification système des utilisateurs
Merci de ne pas réutiliser un mot de passe ici, étant donné que ce mot de passe sera enregistré en clair sur le filesystem et qu''il sera accessible à tous les utilisateurs logués
Image non disponible
Image non disponible

Une série de questions supplémentaires est posée pour la génération des certificats SSL.

5-C. Après l'installation

Image non disponible

Tout devrait fonctionner maintenant ! Vérifier que le nom de la machine codendi (codendi.mydomain.com), est connu de votre réseau, mettez à jour votre DNS ou vos fichiers hosts (hosts files).

5-D. Installation et configuration avancée

Consulter le guide d'installation détaillé (en anglais) pour l'installation et la configuration avancée de votre plateforme : comptes utilisateurs, configuration DNS, configuration d'Apache, installation de la base de données, configuration des emails, etc.

6. Communauté

Le site communautaire codendi.org permet de télécharger les fichiers Codendi, suivre les développements en cours, consulter la documentation et participer à la vie de la communauté.

Image non disponible

Si vous avez une question à propos de l'installation ou d'utilisation de Codendi, vous pouvez consulter la documentation, les forums et y poser vos questions.

Si vous rencontrer un bug, reportez-le dans le tracker dédié.

Voilà, vous avez désormais beaucoup d'informations à votre disposition pour tester et utiliser Codendi.

A bientôt sur Codendi.org.

Remerciements à Celira, Mahefasoa et Benj. pour la mise en forme et la relecture de l'article.