Coin web de Frédéric Péters

fpeters@0d.be

JhAutobuild

31 mars 2006, 20:59

C'est dimanche que Jaap Haitsma a posté un message sur la liste gnome-love : Tinderbox (automatic daily build) for GNOME. Tinderbox, il le décrit dans sa parenthèse, le daily, on s'en fout un peu, c'est surtout automatic build qui est important. Tinderbox, c'est un projet Mozilla, qu'on peut par exemple voir en action sur la compilation de Firefox.

À une bien plus petite échelle, j'avais codé pour Lasso quelque chose d'un peu similaire, pour tester les modififcations arrivant dans le CVS et en construire cette page sur le statut du CVS.

Dans l'idée aussi, et évoqué sur la liste gnome-love, il y a aussi buildbot, qui est par exemple utilisé par ethereal.

Ces projets, ils fonctionnent bien pour une application mais GNOME, c'est quand même une grosse pelote de dépendances, de libxml2 à pessulus, il y en a des projets à compiler, dans l'ordre.

Justement, l'ordre, jhbuild le connait, jhbuild, c'est le script de référence permettant de compiler un GNOME de A à Z, il gère la récupération des sources des projets, par CVS, subversion ou wget, la compilation et l'installation de l'ensemble.

Il est aussi assez flexible avec une notion de module set permettant de définir "gnome-2.16" comme étant l'agglomérat de telles versions de tels projets, "gnome-2.14" tel autre agglomérat de telles autres versions de tels autres projets, etc. Il n'y a en fait rien qui le lie particulièrement à GNOME, c'est juste un attachement historique, un jour quelqu'un contribuera peut-être un module set KDE.

Sur la scène donc, d'un côté un besoin de compilation automatisée, de rapports concernant ces compilations, de l'autre côté le besoin de gérer la complexité de compilation de GNOME.

Arbitrage à faire, l'existant de compilation automatisée est abandonné, jhbuild modifié pour la tâche, dans un projet facilement nommé jhautobuild.

Architecture décrite sur un quart d'enveloppe, trois carrés, deux flèches, et hop, un peu de code.

  • ajout d'une option à jhbuild pour soumettre le résultat des différentes étapes de compilation (module par module, phase par phase) à un serveur;
  • écriture de ce serveur devant centraliser les résultats ainsi obtenus pour en extraire de l'information utile.

Et hop, jhbuild.bxlug.be.

> I probably won't make it to guadec but who knows...

You should, that would rock.

—moi puis Luis Villa, après l'annonce de jhautobuild sur gnome-love

Reste quand même encore pas mal à faire, petite gestion des utilisateurs, statistiques, etc. mais la base est là et m'a l'air bien (mais je suis carrément mal placé pour écrire ça).