Pour rappel,
InDefero[1] est à l'origine[2] un clone de GoogleCode[3]. J'ai démarré ce projet en juillet de cette année pour me libérer de GoogleCode. Le projet est clairement un clone, l'interface, quoique simplifiée a été reprise dès le début[4].
Ce journal à l'occasion de la sortie de la version 0.4.0 est l'occasion de faire le point sur le développement.
Le projet a commencé comme un simple bug tracker, le parcours d'un dépôt git arrivant très rapidement. Aujourd'hui, toutes les fonctionnalités du GoogleCode de l'époque ont été implémentées, il manque maintenant la revue de code pour être l'égal de ce dernier.
C'est un grand plaisir de développer ce logiciel, j'ai particulièrement été étonné par la qualité des remarques ici quand j'ai informé des mises à jours (oui, l'installation reste difficile) et aussi des personnes venues contribuer. Le support de Subversion et de Mercurial a été fait par des contributeurs.
La dernière version inclut donc le
support de Mercurial et un wiki pour la documentation.
InDefero 0.4.0 :
http://projects.ceondo.com/p/indefero/downloads/12/
En 4 mois de développement, voici la liste des fonctionnalités implémentées :
-
Projets multiples avec une installation.
- Une page d'accueil pour chaque projet.
- 3 modules : Tracker de bug, parcours de dépôt (git, subversion, mercurial) et wiki.
- La configuration du dépôt est indépendante pour chaque projet, vous pouvez avoir l'un utilisant subversion et l'autre git.
-
Gestion de droits d'accès sur chacun des modules et ceci par projet (utilisateurs anonymes, authentifiés, membres du projet et administrateurs du projet). Vous pouvez donner accès au code uniquement aux membres par exemple.
-
Projets privés, pratique pour votre todo list ou les projets internes de votre entreprise. Ainsi vous n'avez qu'une seule forge à gérer.
- Une ligne du temps qui déroule l'activité du projet.
- Utilisation importante des étiquettes pour classer les tickets, téléchargements ou pages de la documentation.
- Un moteur de recherches.
- Localisé en Anglais et Français.
Plus en détails, le tracker offre :
- Étiquettes pour les tickets.
- Commentaires sur les tickets avec liens entre les tickets et les commits réalisés automatiquement.
- Liste de tickets par étiquette ou status.
- Liste personnelle des tickets soumis ou assignés.
- Pourcentage des tickets fermés pour chaque étiquette permettant de réaliser une étiquette "milestone" et ainsi voir le travail restant à effectuer avant la sortie.
- Suivi de certains tickets avec une étoile pour avoir la notification de l'évolution du ticket via email.
- Notifications par email.
- Fichiers attachés aux tickets pour des patchs ou autre.
- Moteur de recherches (classement par score avec stemming pour de meilleurs résultats).
- Une API pour soumettre des tickets et lister les tickets (REST et réponse JSON).
Le parcours du code offre :
- Support de git, subversion et mercurial (peut-être bientôt bazaar).
- Changelog du code par branche.
- Diff d'un commit avec une jolie visualisation.
- Téléchargement de chaque fichier à n'importe quel révision/commit.
- Téléchargement d'une archive zip de tout le dépôt à n'importe quel commit/révision.
- Visualisation du code en ligne avec coloration syntaxique.
- Liens des messages de commit vers les tickets.
L'installation reste un peu difficile, il n'y a pas un script qui fait tout, il faut avoir accès à PHP en ligne de commande et comprendre un peu les chemins d'inclusion de PHP pour avoir le code du framework Pluf[5] (dont il faut utiliser la dernière version) dans l'include_path de PHP.
Par contre, je persiste même si cela fait rire certains, c'est du code PHP propre[6]. Cela montre qu'on peut développer une application élégante, rapide et puissante en PHP en n'ayant pas honte du code. Utilisateur intensif de Django[7], j'ai pu voir du code Django impossible à maintenir et à comprendre aussi bien que du merveilleux. On trouve de tout partout, mais c'est vrai qu'il y a beaucoup de mauvais PHP...
InDefero utilise Pluf[5], un framework PHP5 ayant l'esprit et la forme de Django[7] (et oui, j'aime bien le concept Django). C'est ce framework qui a permis le développement très rapide d'InDefero.
Donc encore merci aux contributeurs/utilisateurs pour vos contributions et remarques, continuez ! Et si vous êtes nouveaux, venez sur l'IRC, channel #indefero des serveurs freenode, je suis là presque tout le temps pour donner un coup de main, particulièrement pour l'installation.
loïc
[1]:
http://projects.ceondo.com/p/indefero/
[2]:
http://xhtml.net/php/pluf-framework-php/452-Petit-projet-ava(...)
[3]:
http://code.google.com/hosting/
[4]:
http://xhtml.net/php/pluf-framework-php/455-La-jolie-version(...) - Capture d'écran "historique"
[5]:
http://www.pluf.org
[6]:
http://projects.ceondo.com/p/indefero/source/tree/master/src(...)
[7]:
http://www.djangoproject.com/