URL: https://linuxfr.org/users/moules/journaux/r%C3%A9volution-dans-la-gestion-des-modules-weboob Title: Révolution dans la gestion des modules Weboob Authors: moules Date: 2012年01月20日T14:29:06+01:00 Tags: weboob et debian Score: 22 Vous connaissez tous [Weboob](http://weboob.org), cet ensemble d'applications exceptionnelles permettant d'interagir avec plus d'une soixantaine de sites web, dans un but d'exportation des données, d'agrégation et recoupement entre plusieurs sites, d'accessibilité pour les personnes malvoyantes, ou encore d'automatisations ([plus d'explications ici)](https://linuxfr.org/users/j_kerviel/journaux/weboob-web-out-of-browsers-loutil-qui-a-chang%C3%A9-ma-vie). Un problème majeur que l'on rencontre avec Weboob, est l'évolutivité imprévisible des sites web supportés, qui peuvent _casser_ un module si celui-ci n'est pas suffisamment tolérant, ou si le changement est trop conséquent. Pour réduire le désagrément de l'utilisateur qui ne peut plus utiliser les fonctionnalités qui améliorent sa vie au quotidien, il convient d'être réactif sur trois points : # La détection du bug # Ce premier point est effectué soit par le [buildbot](http://weboob.org/Automated_Tests) (via ses tests journaliers et _post-commits_), soit par l'utilisateur qui va sagement produire un [rapport de bug](https://symlink.me/projects/weboob/issues/new). Une idée d'amélioration permettant l'envoi automatisé d'un bugreport contenant toutes les informations nécessaires existe dans les cartons, mais ne sera pas abordée. # L'écriture d'un correctif # Chaque module est en principe maintenu par une personne qui l'utilise au quotidien. Malheureusement, il arrive que des modules voient leur mainteneur disparaître sans donner de nouvelles. Il est toujours possible pour un membre de la Core Team dévoué et chômeur d'intervenir rapidement sur un de ces modules, mais ce n'est malheureusement pas toujours possible, notamment en ce qui concerne les modules supportant des sites bancaires. # La diffusion du correctif # Ce point est celui qui va retenir notre attention aujourd'hui. Jusqu'alors, les modules étant distribués directement avec les sources de Weboob, il convenait de sortir une nouvelle version de l'ensemble du logiciel pour diffuser le moindre correctif. Pour l'utilisateur, il convenait par simplicité d'utiliser les [dépôts Debian de weboob](http://debian.weboob.org) pour bénéficier du système APT afin de mettre aisément à jour les modules. Pour une installation depuis les sources (sans passer par git), c'est plus contraignant. C'est pourquoi il a été [décidé](https://symlink.me/issues/747) de développer un système de _dépôts Weboob_ (inspiré de celui de [tucan](http://www.tucaneando.com/)) pour distribuer les modules et de gérer leurs mises à jour. # Les dépôts # Concrètement, lorsqu'on installe Weboob, seuls le _core_ et les _tools_ sont présents sur le système. Dès que l'utilisateur cherche à ajouter un backend, si le module correspondant n'est pas installé, l'application s'occupe d'aller le chercher sur les dépôts, puis l'installe dans son _~/.weboob/_. Pour mettre à jour les modules, l'utilisateur se contentera de taper la commande suivante :> $ weboob-config update Ça va chercher sur les dépôts si de nouvelles versions des modules installés sont présentes, et si oui les installe. Ce n'est pas plus compliqué que ça pour l'utilisateur, qui se contente de mettre à jour de temps en temps, ou lorsqu'il rencontre un problème avec un module, pour vérifier si un correctif n'est pas déjà mis à disposition. # Architecture # Un dépôt est un répertoire servi par HTTP qui contient un fichier **modules.list**, ainsi que, pour chaque module, un **.tar.gz** (le module lui-même) et un **.png** (son icône). Il existe un dépôt pour chaque version de Weboob, avec plusieurs déclinaisons : _main_ et _nsfw_. Côté client, chaque utilisateur possède un fichier _~/.weboob/sources.list_ contenant les liens vers les dépôts. Par défaut, il contient :> \# List of Weboob repositories> \#> \# The entries below override the entries above (with> \# backends of the same name).>·> http://updates.weboob.org/%(version)s/main/> \# To enable NSFW backends, uncomment the following line:> \#http://updates.weboob.org/%(version)s/nsfw/>·> \# DEVELOPMENT> \# If you want to hack on Weboob backends, you may add a reference> \# to sources, for example:> \#file:///home/rom1/src/weboob/modules/ Un éditeur externe peut donc créer son propre dépôt sur lequel il distribue ses propres modules Weboob. L'outil _weboob-repos_ permet de gérer un dépôt. Lorsqu'un module est mis à jour, sa version (sous forme AAAAMMJJhhmm) est incrémentée. # Développement # Afin de développer des modules sans avoir à les uploader sur un véritable dépôt pour les tester, il est possible de référencer des pseudo-dépôts locaux. Pour ce faire, il suffit de spécifier le chemin vers le répertoire contenant les modules de cette manière :> file:///path/to/modules/ Après un **weboob-config update**, les modules qui s'y trouvent sont utilisables directement. Contrairement aux dépôts distants, les modules des dépôts locaux n'ont pas à être installés. Ils sont chargés directement depuis le répertoire indiqué dans le _sources.list_. # Conclusion # Ce mode de distribution des modules permet de pousser des mises à jour de modules immédiatement pour tous les utilisateurs d'une version donnée. Pour tester, il vous suffit d'installer la version git, et de lancer une _update_ pour installer tous les modules référencés dans votre fichier _~/.weboob/backends_. La [prochaine étape](https://symlink.me/issues/755) devrait être de sécuriser le téléchargement de ces modules, en utilisant un système basé sur GPG pour signer les _tarballs_. Enfin, une annonce sera faite prochainement concernant le sponsoring de Weboob par un acteur majeur du Web.