Dépendances logicielles entre packages Perl
Posted avril 27th, 2008 by uxmalUn projet que je suis entrain de faire en ce moment, dans le cadre d’une UV TX à l’UTC.
L’objectif de ce projet est de mettre en place un système de visualisation des dépendances logicielles de CPAN, le dépôt logiciel de la communauté Perl. Il y a environ 53 000 modules répartis dans plus de 14 000 packages, autant dire que niveau dépendances il y a pas mal de choses à voir ;)
Ainsi, ce système permettra tout simplement de voir, pour un module ou un package donné, ses dépendances, c’est à dire les composants égalements issus de CPAN nécessaires à son fonctionnement.
Basiquement, ce genre de graphe ressemblera à ça (ce n’est encore qu’une maquette) :
Il s’agit du graphe des dépendances d’un package pris au hasard sur CPAN, App-Context. Il donne à voir tous les packages nécessaires à son installation automatique. Outre un véritable affichage basé sur des méta-données, qui rendra le graphe réellement utile (voir les résultats des tests officiels etc, un outil d’aide à la décision, en somme), j’ai aussi prévu de montrer le graphe des dépendances “inverses” (je n’ai toujours pas trouvé de nom pour ce concept..), c’est à dire l’arborescence des remontent les packages qui dépendent d’App-Context.
Pour ce package en particulier, il n’y en a peut-être pas beaucoup. Mais le développeur de PathTool, par exemple, aimerait peut-être savoir qui utilise son module, il doit y en avoir un certain nombre ;)
L’objectif est bien évidemment didactique, nottamment l’occasion pour moi d’apprendre le java, un peu de gestion de projet, toute la partie crawl, représentation des données, les algos de parcours de graphes.
En ce qui concerne les outils, la partie visualisation devrait être réalisée au moyen d’un applet java existant, modifié pour l’adapter à mes besoins. Cet applet sera basé sur Géphi, un visualiseur de graphes en Java OpenGL encore en développement.
Voir la vidéo de démo de géphi.
