"…mais ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le logiciel libre ne libérait rien d'autre que du code…"

Outils de gestion de version (subversion,mercurial), gestion de projet (trac), intégration continue (buildbot)

Posted by patrick sur juillet 9, 2007

En lisant l’excellent blog de Tarek ziade (http://programmation-python.org/sections/blog) je tombe sur les sujets qui m’intéressent aujourd’hui:

1) la gestion de version aussi bien centralisée (avec subversion de préférence à cvs) que décentralisée (mercurial ou bazaar-ng).

2) la gestion de projet avec un outil comme trac

3) l’intégration continue(« L’intégration continue est une technique utilisée en génie logiciel. Elle consiste à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression de l’application en cours de développement. Bien que le concept existait auparavant, l »intégration continue » se réfère généralement a la pratique de l’extreme programming« ) avec buildbot (« BuildBot is a software development continuous integration tool which automates the compile/test cycle required to validate changes to the project code base. It began as an light-weight alternative to the Mozilla project’s Tinderbox« )

En ce qui concerne subversion, trac et builbot, un excellent document d’Olivier Ramonat et Pascal Obry cité par Tarek: http://olivier.ramonat.free.fr/svn_trac_buildbot/svn_trac_buildbot_fr.html (« Ce document porte sur l’installation sur un serveur d’une suite d’outils de gestion informatique:

  • Subversion (gestion de version) pour le contrôle de version;
  • Trac (gestion de projet) pour la gestion de projet : Wiki, système de gestion de tickets et suivi de l’évolution des sources (quand il est couplé à Subversion);
  • et Buildbot (intégration continue) pour l’automatisation du packaging, des compilations et des tests.

Ces trois outils peuvent interagir et permettent ensemble d’améliorer la qualité et la rapidité d’un développement logiciel. Installés sur un serveur, ils peuvent être partagés par différents projets très facilement. 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é. »)

Webographie:

http://en.wikipedia.org/wiki/List_of_revision_control_software

http://trac.edgewall.org/wiki/TracMercurial (« There is an experimental plugin for Trac 0.10 and Trac 0.11 which enables Mercurial to be used instead of Subversion as the VersioningSystemBackend for Trac. The plugin being experimental, expect some rough edges and a somewhat unstable set of features/documentation… »)

http://hgbook.red-bean.com/hgbook.pdf (« Distributed revision control with Mercurial…If the core functionality of Mercurial is not enough for you, it’s easy to build on. Mercurial is well suited to scripting tasks, and its clean internals and implementation in Python make it easy to add features in the form of extensions. There are a number of popular and useful extensions already available, ranging from helping to identify bugs to improving performance…Subversion is a popular revision control tool, developed to replace CVS. It has a centralised client/server architecture. Subversion and Mercurial have similarly named commands for performing the same operations, so it is easy for a
person who is familiar with one to learn to use the other. Both tools are portable to all popular operating systems
« )

http://fr.wikipedia.org/wiki/Subversion_logiciel (« Subversion a été écrit afin de combler certains manques de CVS. Voici les principaux apports :

  • Les commits, ou publications des modifications sont atomiques. Un serveur Subversion utilise de façon sous-jacente une base de données capable de gérer les transactions atomiques (le plus souvent Berkeley DB) ;
  • Subversion permet le renommage et déplacement de fichiers ou de répertoires sans en perdre l’historique. ;
  • les méta-données sont versionnées : on peut attacher des propriétés, comme les permissions, à un fichier, par exemple)

http://fr.wikipedia.org/wiki/Mercurial (« Mercurial est un logiciel de gestion de version distribué. Il est disponible sur plusieurs plate-formes : Unix-like, Windows, Mac OS X. Il est écrit principalement en Python. Mercurial a été créé pour s’utiliser via des lignes de commande. Toutes les commandes commencent par hg, en référence au symbole chimique du mercure. Ses principales caractéristiques sont entre autres :

  • sa rapidité et sa capacité à gérer les gros projets
  • son utilisation sans nécessiter un serveur
  • son fonctionnement complètement distribué
  • sa robustesse dans la gestion des fichiers ASCII et binaires
  • sa gestion avancée des branches et des fusions
  • son interface web intégrée »)
  • Logo mercurial

http://fr.wikipedia.org/wiki/Gestion_de_version_d%C3%A9centralis%C3%A9e (« Quand on pense à la gestion de version, on a, en général, une vision centralisée des choses. En gros, on s’imagine un mécanisme qui va permettre à plusieurs intervenants de collecter leurs interventions. Or, en particulier avec l’arrivée des logiciels libres et leur développement communautaire, une autre façon de voir la gestion de version est apparue. Cette autre vision consiste à voir l’outil de gestion de version comme un outil permettant à chacun de travailler à son rythme, de façon désynchronisé des autres, puis d’offrir un moyen à ces développeurs de s’échanger leur travaux respectifs. C’est ce que l’on nomme la gestion de version décentralisée. »)

http://en.wikipedia.org/wiki/Apache_Gump (« Apache Gump is an open source Continuous Integration system, which aims to build and test all the open source Java projects, every night. Its aim is to make sure that all the projects are compatible, at both the API level and in terms of functionality matching specifications. It is hosted at gump.apache.org, and runs every night on the official Sun JVM….Gump was created by Sam Ruby, based on his experience in the Perl community. It was originally written in Java .Gump 3 is a complete rewrite in Python. It is the live version. Gump logo« )

3 Réponses to “Outils de gestion de version (subversion,mercurial), gestion de projet (trac), intégration continue (buildbot)”

  1. Rackzam said

    Oui Trac & Mercurial sont de très très bon partenaires. J’ai vraiment été agréablement surpris par l’apport que ca m’a apporté dans mes projets. Passer de Svn à Mercurial et de Bugzilla à Trac, c est très confortable.

    Si ça peut intéresser quelqu’un, j’ai écris un article qui décris comment mettre en place un Trac+Mercurial derrière un Apache : http://www.moroblog.info/Trac-Integrated-SCM-Project.html

    Essayez les !

  2. Nil said

    Je conseille également d’essayer Plum http://www.plum.pro – un nouvel outil de gestion de projet en ligne que nous avons développé. Il est plutôt simple et surtout plus complet que la plupart des offres.

    Tenez moi au courant si vous l’essayez😉

    Nil

  3. Pour la gestion de source décentralisée, l’intégration à une forge centralisée compte moins, car l’essence même du décentralisé est la coexistence de multiples branches. Du coup des solutions simples (gratos mais code non-distribué) comme github pour git et bitbucket pour mercurial sont souvent suffisantes, et très populaires pour les projets libres.

    Avec subversion en revanche, le tandem gestion de projet et dépôt de source fonctionne toujours très bien. Pour la forge de gestion de projet, il y a l’excellent logiciel libre Redmine (Ruby on Rails, http://www.redmine.org). On peut installer tous les logiciels en local (trac | redmine + apache mod_svn + tout le tralala) mais c’est assez long à sécuriser, à répliquer, à maintenir, et à intégrer correctement (création des dépôts d’une part, des projets d’une autre, pas de correspondance entre les comptes utilisateurs etc.).

    Pour ceux qui sont ok avec le principe de service en ligne, il y a la solution (française) AtikTeam qui intègre très bien la gestion de source subversion : http://www.atikteam.com/fr/gestion-de-projets-it-subversion . La création des dépôts serveurs est automatique, et les comptes utilisateurs sont intégrés.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

 
%d blogueurs aiment cette page :