Journal Développer avec Subversion, Trac et Buildbot

Posté par  (site web personnel) .
Étiquettes : aucune
0
15
mai
2006

Alors que de nombreux développeurs utilisent toujours cp -r comme méthode de gestion de versions, il est bon de rappeler qu'il existe des logiciels libres permettant d'améliorer la qualité et la rapidité d'un développement logiciel.




  • Subversion (1) pour le contrôle de version;

  • Trac (2) pour la gestion de projet : Wiki, système de gestions de ticket et suivi de l'évolution des sources (couplé à Subversion);

  • et Buildbot (3) pour l'automatisation du packaging, de compilations et de tests.



Je vous propose ici un document écrit en collaboration avec Pascal Obry qui explique l'installation et la mise en place de ces différents logiciels.



Un ensemble de scripts (hooks subversion notamment) est aussi disponible. La documentation est disponible en anglais et en français.



http://olivier.ramonat.free.fr/svn_trac_buildbot/index_en.ht(...)






Olivier Ramonat

  • # Bug subversion

    Posté par  (site web personnel) . Évalué à 1.

    J'en profite pour signaler un bug subversion. Lorsqu'un commit renvoie trop de messages d'erreurs, le serveur subversion plante et il faut alors aller tuer le processus à la main sur le serveur.

    Si vous utiliser l'outil Style_Checker (outil permettant de vérifier des règles de styles simple), il faut par exemple limiter le nombre maximal d'erreurs affichées à une dizaine.

    Style_Checker est disponible ici http://perso.wanadoo.fr/pascal.obry/contrib.html
    • [^] # Re: Bug subversion

      Posté par  (site web personnel) . Évalué à 3.

      J'en profite pour signaler un bug subversion. Lorsqu'un commit renvoie trop de messages d'erreurs, le serveur subversion plante et il faut alors aller tuer le processus à la main sur le serveur.
      Toujours utile :
      http://subversion.tigris.org/project_issues.html
    • [^] # Re: Bug subversion

      Posté par  . Évalué à 8.

      Comme il te l'a déjà été signalé, si tu as trouvé un bug, je t'invite à faire un rapport de bug. Par contre, la procédure pour Subversion est d'envoyer un rapport du bug, avec idéalement une recette pour le reproduire ("mettre en place un script pre-commit qui echo N lignes et exit 1, tenter un commit par svn://, ca devrait planter"), à dev (AT) subversion.tigris.org. Pas besoin d'être inscrit pour envoyer le mail, et on répond en te mettant en Cc, donc tu ne rateras rien de la conversation.

      Si le bug est avéré et non-corrigé (tu n'as pas précisé la version du serveur utilisée d'ailleurs, ni le serveur utilisé (mod_dav_svn, svnserve, svn+ssh ?)), alors il sera soit corrigé à la volée, soit entré dans le bug-tracker s'il est non-trivial.

      Dépêche toi, si tu fais un rapport maintenant il est possible de le corriger avant la sortie de Subversion 1.4.0, qui se fera d'ici la fin Juin. Si tu rates la 1.4, il faudra encore attendre 6 mois, ce serait dommage!

      Si ca t'embête d'écrire en anglais, envois moi le rapport avec recette de reproduction en français sur mon email DLFP, je le traduirai et ferai suivre (ou je corrigerai le bug moi-même :-)

      Voila voila.

      Sinon, pour commenter le journal originel, je trouve ca super! J'avais justement besoin d'un tuto du genre pour buildbot, pour mettre en place une archi d'hébergement pour l'école! C'est une excellente initiative que d'écrire ce type de documentation. Je plussoie fortement :-)
      • [^] # Re: Bug subversion

        Posté par  (site web personnel) . Évalué à 1.

        Je viens de tester avec subversion 1.3.0 le problème a été corrigé.

        Avec subversion 1.2.0, un script post-commit

        #!/bin/sh
        for i in `seq 1 5000`;do echo One line of error to print $i 1>&2;done
        exit 1

        fait planter subversion.

        En mode file:/// lorsque le client est tué, le processus s'arrête de lui même.

        En mode svn+ssh:/// le processus ne s'arrête pas et il faut le tuer sur le serveur.
        • [^] # Re: Bug subversion

          Posté par  . Évalué à 3.

          Je crois voir quel était le bug en question (mauvaise gestion du stdout/err du script de pre-commit), et il est effectivement corrigé.

          Attention aussi si tu utilises 1.3.0 et pas 1.3.1, la .0 avait un autre bug au niveau du post-commit: lancer des programmes en background ne marchait pas, le client reste bloqué jusqu'a la fin de tous les programmes lancés par le script post-commit. C'est corrigé dans la 1.3.1, sortie il y a bien un mois maintenant.

          Voila voila :-)
  • # Merci !!!

    Posté par  (site web personnel) . Évalué à 2.

    Ayant ce type de choses à faire d'ici quelques semaines/mois, je pense que ce sera une source précieuse d'informations ;-)
    Merci beaucoup !
  • # Un article très intéressant

    Posté par  . Évalué à 2.

    J'aurais toutefois une petite question:

    sous Windows, il semble qu'il soit nécessaire d'intaller cygwin uniquement pour pouvoir démarrer Trac et Builbot en tant que service.

    Ces 2 logiciels étant basé sur python, il serait peut être pas très couteux de developper un truc de ce genre
    http://trac.turbogears.org/turbogears/wiki/DeployAsWindowsSe(...)
    qui permette d'eviter l'installation de Cygwin pour si peu.
    • [^] # Re: Un article très intéressant

      Posté par  (site web personnel) . Évalué à 1.

      Il est possible de se passer de Cygwin. Cependant, cela nous a semblé être le moyen le plus simple pour installer SSH, trac, Buildbot, Subversion, et pour installer les compilateurs nécessaires au projet que l'on veut tester.

      Comme écrit dans l'introduction du document :

      Il est possible de réaliser l'installation de plusieurs manières. Ce document propose un modèle d'installation et d'administration qui se veut cohérent, simple et sécurisé.

Suivre le flux des commentaires

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