Journal InDefero, Wiki et support de Mercurial dans la version 0.4.0

Posté par (page perso) .
Tags :
10
23
nov.
2008
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/
  • # Essayez le

    Posté par . Évalué à 4.

    Indefero commence vraiment à venir très intéressant, simple, rapide avec des fonctionnalités complètes.
    Je vous conseille vivement de ne pas vous arrêter à l'installation un peu rebutante si vous recherchez un bon outil de forge. De plus Loïc est très réactif face aux remarques et ne demande qu'à améliorer l'outil et à intégrer de nouvelles contributions.
    • [^] # Re: Essayez le

      Posté par (page perso) . Évalué à 2.

      Ouaipe je confirme c'est pas mal du tout, réactif et tout. Je suis conquis !

      Par contre c'est plutôt le stade beta encore, mais ça bouge vite :)

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

      • [^] # Re: Essayez le

        Posté par (page perso) . Évalué à 5.

        Je dirais - comme je suis le développeur mon avis est biaisé - mais cela vient de ma connaissance du code derrière.

        Stade production : Tickets, visualisation du code.
        Stade production mais pas "user friendly" : Installation.
        Stade beta : Wiki.

        Sinon, cette nuit, j'ai trouvé comment implémenter la revue de code en pré commit et aussi en post commit. Cela va être mon petit joujou de début décembre.
  • # Quelques remarques...

    Posté par (page perso) . Évalué à 2.

    C'est peut être déjà là, et je n'ai pas vu dans la démo, mais...
    - Pour le wiki, il est où ? C'est les pages de documentation ? Peut -t-on, où pourra t-on faire les pages en multilingue (avec un switch entre les langues un peut à la façon wikipédia ?)
    - Pour les pages de documentation, un truc qui pourrait être intéressant, c'est l'extraction directe en PDF. Genre, pour ma boite, on écrit les documentations dans le wiki dans plusieurs langues (ce qui permet aussi de gérer aussi les versions facilement), et un simple clique permet de sortir le document en PDF. Ça permettrait d'éviter les éternels soucis de mise en page avec les gens qui traduisent.
    - Y'a t-il, où, y aura-t-il un mini forum dédié à chaque projet ? Parce que je vois là, que tu redirige vers le forum de GoogleCode.
    - Pour les projets « privés », peut-t-on quand même rendre le système de tickets et documentations publiques ?

    Sinon, projet intéressant, je le garde sous la main. Mais il manque encore des choses pour être vraiment utilisable :)
    • [^] # Re: Quelques remarques...

      Posté par (page perso) . Évalué à 2.

      Voici quelques réponses à tes questions :

      - Pour le wiki, il est où ? C'est les pages de documentation ? Peut -t-on, où pourra t-on faire les pages en multilingue (avec un switch entre les langues un peut à la façon wikipédia ?)

      - Le wiki est la documentation, le mot wiki est inconnu de la majorité des gens. Documentation "parle" tout de suite, "Wiki" non.
      - Les pages en plusieurs langues, on pourrait faire une étiquette associant une langue à une page, puis ensuite on liste via cette étiquette.

      - Pour les pages de documentation, un truc qui pourrait être intéressant, c'est l'extraction directe en PDF. Genre, pour ma boite, on écrit les documentations dans le wiki dans plusieurs langues (ce qui permet aussi de gérer aussi les versions facilement), et un simple clique permet de sortir le document en PDF. Ça permettrait d'éviter les éternels soucis de mise en page avec les gens qui traduisent.

      - l'export pdf doit bien être possible avec une classe genre tcpdf. Pour les soucis de mise en page, les pages sont écrites en Markdown, donc cela résout le problème directement.

      - Y'a t-il, où, y aura-t-il un mini forum dédié à chaque projet ? Parce que je vois là, que tu redirige vers le forum de GoogleCode.

      C'est prévu, mais ma priorité est la revue de code avant d'ajouter le forum.

      - Pour les projets « privés », peut-t-on quand même rendre le système de tickets et documentations publiques ?

      - oui et non, tu peux avoir un projet publique dont certaines tabs ont des droits particuliers pour donner accès au code uniquement aux membres du groupe. Un projet privé cache même le projet dans la liste des projets pour les personnes non autorisées (tu as encore des sous-droits pour les personnes autorisées).

      Sinon, projet intéressant, je le garde sous la main. Mais il manque encore des choses pour être vraiment utilisable :)

      Pour toi, pour moi il est parfaitement utilisable ;)
  • # Moi aussi j'ai des questions

    Posté par (page perso) . Évalué à 1.

    Est ce que l'on doit encore créer ses dépôts SVN/git à la main ? (Pareillement à la création du projet dans Indefero)

    Je suis en train de monter une petite machine virtuelle pour tester, effectivement, ce n'est pas super facile.

    Cette étape est encore contraignante je trouve, parce que cela veut dire que l'on ne peut pas tout faire en ligne. Et qu'a chaque nouveau projet il faut se connecter sur la machine.

    Alors qu'une règle disant qu'une certaine catégorie d'utilisateur peut créer un nouveau projet tout seul serais très très pratique dans beaucoup de cas. Non ?

    D'ailleurs, j'ai l'impression que je ne suis pas le seul.
    http://projects.ceondo.com/p/indefero/issues/3/
    http://projects.ceondo.com/p/indefero/issues/2/

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.