L'UDD (Ultimate Debian Database, Database Debian Definitivo) raccoglie molti dati su vari aspetti di Debian in un unico database SQL; permette agli utenti di accedere facilmente a questi dati e di combinarli.
I dati attualmente importati includono: file Packages e Sources, da Debian e Ubuntu; bug dal BTS Debian; dati dal Popularity contest; cronologia dei pacchetti caricati; cronologia dei pacchetti migrati in testing; Lintian; pacchetti diventati orfani; Carnivore; DebTag; bug da Ubuntu (da Launchpad); pacchetti nella coda dei NUOVI pacchetti; traduzioni del DDTP.
Alcune interrogazioni d'esempio sono fornite in forma di script CGI, per rendere facile a chiunque la loro esecuzione. È possibile scorrerle o vedere il codice sorgente.
Schema del database: https://udd.debian.org/schema/udd.html
Codice sorgente: disponibile nel repository git del progetto qa su https://salsa.debian.org/qa/udd
Server di database: viene eseguito su postgres con plperl e postgresql-debversion.
- Servizi correlati a UDD:
Ricerca di bug: motore di ricerca in base a più criteri per i bug
Usertag dei bug: ricerca etichette utente nei bug
Statistiche Sponsor: dà alcune statistiche riguardo a chi sta facendo da sponsor per i caricamenti in Debian
Bapase: permette di cercare pacchetti "interessanti" usando vari criteri
mirror UDD pubblico permette a chiunque di interrogare UDD usando la riga di comando di PostgreSQL o client con interfaccia grafica
Per maggiori informazioni prendere contatti su #debian-qa o in debian-qa@lists.debian.org (mailing-list iscrizione ed archivi).
Connettersi a UDD e usarlo
udd.debian.org gira su ullmann.debian.org. Accetta connessioni dirette con SSL da master, coccia, quantz (qa) e respighi (release.debian.org) (configurazione firewall).
- riga di comando:
psql service=udd
oppure: psql -U guest -h udd.debian.org -p 5452 udd
Python:
import psycopg2 conn = psycopg2.connect("service=udd") cursor = conn.cursor() cursor.execute("SELECT count(*) from sources where release='sid'") print(cursor.fetchall()[0][0])
Ruby (DBI): require 'dbi' ; dbh = DBI::connect('DBI:Pg:dbname=udd;port=5452;host=udd.debian.org', 'guest')
Ruby (PG): require 'pg'; conn = PG.connect({:host => 'udd.debian.org', :port => 5452, :user => 'guest', :dbname => 'udd'})
Se si vuole sapere precisamente quando viene aggiornata una specifica fonte di dati, si può guardare questo file di configurazione oppure lo stato attuale dell'UDD.
Se non si ha l'accesso alle macchine necessarie, si può accedere al mirror UDD pubblico direttamente dalle proprie macchine:
riga di comando:
psql "postgresql://udd-mirror:udd-mirror@udd-mirror.debian.net/udd"
. Per lavorare velocemente, ispezionare lo schema del database su https://udd.debian.org/schema/udd.html. psql mostra le tabelle con \dt. Buon divertimento.
Riconoscimenti e come citare UDD
UDD è nato come progetto Google Summer of Code di Christian von Essen (Neronus), con il mentoring di Lucas Nussbaum, Stefano Zacchiroli e Marc 'HE' Brockschmidt. È ora mantenuto principalmente da Lucas Nussbaum, con l'aiuto di altri.
Se si usa l'UDD in lavori di ricerca, citare questo articolo:
L. Nussbaum and S. Zacchiroli, "The Ultimate Debian Database: Consolidating bazaar metadata for Quality Assurance and data mining," 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010), Cape Town, 2010, pp. 52-61 doi: 10.1109/MSR.2010.5463277 (preprint open access).
Migliorare l'UDD
Se si desidera aiutare a migliorare l'UDD, si può configurare una propria istanza come descritto in UltimateDebianDatabase/Hacking. Si possono segnalare bug relativi al pseudo-pacchetto qa.debian.org, usando l'etichetta utente udd e utente qa.debian.org@packages.debian.org. (elenco dei bug; oppure elenco dei bug usando UDD)
Quando si segnalano bug via email, usare i seguenti pseudo-header:
Package: qa.debian.org User: qa.debian.org@packages.debian.org Usertags: udd
Altre risorse
Diapositive da una presentazione in inglese su UDD a Debconf9
Dump completo del database generato ogni due giorni. (~1,9 GB e in continua crescita, da ripristinare usando pg_restore. Vedere questo script per un esempio)
Vedere anche:
Riferimenti
Anche se lo scopo principale dell'UDD non era quello di essere uno strumento di ricerca scientifica, è stato già inserito in diverse pubblicazioni e presentazioni:
Norbert Preining. Analyzing Debian packages with Neo4j. Neo4j Online Meetup. Parti dell'articolo: 1, 2, 3, video
Lucas Nussbaum e Stefano Zacchiroli. The Ultimate Debian Database: Consolidating Bazaar Metadata for Quality Assurance and Data Mining. 7th IEEE Working Conference on Mining Software Repositories (MSR'2010) Articolo - Diapositive - HAL
Julius Davies, Hanyu Zhang, Lucas Nussbaum e Daniel M. German.Perspectives on Bugs in the Debian Bug Tracking System 7th IEEE Working Conference on Mining Software Repositories (MSR'2010): Mining Challenge Articolo - Diapositive- HAL
Sotto-pagine