Un paquet Debian contient quelques méta-informations sur le programme emballé.
Par exemple, l'adresse de sa page d'accueil est enregistrée dans le ficher
de contrôle du paquet source (debian/control
) et propagée par le
ficher de contrôle source Debian (.dsc
). Le problème avec cette
approche, c'est qu'il faut mettre à jour le paquet source pour mettre à jour
les méta-données.
À ce jour, plusieurs milliers de paquets source Debian sont développés dans un système de gestion de version, le plus souvent Subversion ou Git. L'adresse du dépôt est aussi propagée via les fichiers de contrôle montrés plus haut. Il est donc possible de surveiller la branche principale pour détecter et propager des mises à jour sans qu'il ne soit nécessaire d'envoyer un nouveau paquet dans l'archive Debian.
En 2009, j'ai proposé de centraliser les méta données concernant le projet amont
dans un fichier au format YAML, debian/upstream
. Nous l'utilisons maintenant dans le
projet Debian Med pour véhiculer la référence bibliographique des articles
scientifiques décrivant le fonctionnement des programmes empaquetés. On peut
les voir sur les sentinelles correspondant à nos méta-paquets. Les données
transitent via la base de données Ultime de Debian (UDD).
Imaginons que le concept s'étende et que des milliers de paquets fournissent un
fichier debian/upstream
. Comment faire pour maintenir la base de
données à jour sans générer des milliers de requêtes quotidiennes sur notre forge
Alioth ?
Je développe un système, que j'ai appelé Umegaya, pour Umegaya is a MEtadata
GAtherer using YAml. Umegaya fournit une interface web avec une structure
simple, que l'on peut utiliser pour consulter des données. Par exemple,
http://upstream-metadata.debian.net/emboss/reference-year
renvoie
2000
, l'année où le premier article sur EMBOSS a été publié. Si
au moment de la consultation, la dernière mise à jour date d'il y a plus d'une
heure le système va relire le fichier debian/upstream
du paquet.
C'est donc en consultant les données que l'on les met à jour. Réciproquement,
il suffit de consulter les données après avoir changé
debian/upstream
pour synchroniser la base.
Umegaya est encore une ébauche, et beaucoup de choses pourraient changer. Mais
le service tourne depuis plus d'un an à l'adresse
upstream-metadata.debian.net. Il sert entre autres à remplir le dépôt
Subversion appelé packages-metadata, rassemblant les fichiers
debian/upstream
, debian/control
et
debian/copyright
des paquets envoyés dans l'archive Debian (depuis
quelques mois). On y voir par exemple que parmi les 3 646 fichiers
copyright, 1 218 déclarent se conformer au format 1.0.
Comme j'aime beaucoup le principe emballe ce que tu utilises, utilise ce que tu emballes, umegaya est entré dans l'archive Debian il y a quelques jours.