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.