debsources update post: finalize and publish
[homepage.git] / blog / posts / 2014 / 02 / moar_stats_for_sources.debian.net.mdwn
1 [[!meta date="Thu, 27 Feb 2014 20:22:00 +0100"]]
2
3 # Debian: watch your stats!
4
5 Over the past few weeks, myself and Matthieu Caneill have worked quite a bit on
6 [**Debsources**](http://anonscm.debian.org/gitweb/?p=qa/debsources.git). As we
7 have now deployed most of the new features on <http://sources.debian.net>, it's
8 time for another *"What's new with Debsources?"* blog post. Here is what's new:
9
10 * Debsources now knows about Debian **suites**, i.e. which package is in which
11   "release" (stable, testing, unstable, ...). This knowledge is already useful
12   for some of the other features below and will be used more in the future.
13
14 * [[since last summer|2013/09/sources.debian.net_-_advanced_search_and_other_news]]
15   Debsources has been running **sloccount** on all unpacked source packages,
16   together with ctags and du, but the resulting information wasn't exposed on
17   the Web. This is now fixed. Each package now has an **infobox**
18   ([example](http://sources.debian.net/src/linux/3.2.54-2)) which shows: disk
19   usage, archive area, suites, and sloccount with per-language breakdown. The
20   new infobox also subsumes the old puny list of package links.
21
22   You can easily embed the infobox in other webapps if you need to
23   ([example](http://sources.debian.net/embed/pkginfo/linux/3.2.54-2/)). Check
24   the [URL scheme doc](http://sources.debian.net/doc/url/) for more info.
25
26 * Debsources now gathers and plot accurate Debian sources
27   [**statistics**](http://sources.debian.net/stats/), both overall and
28   per-suite, in both snapshot and **historical trends** flavors.
29
30   (Yeah, I know, the charts are not particularly good looking ATM, but that's
31   easy to change without impacting the rest. So if you're a
32   [matplotlib](http://matplotlib.org/) artist and willing to help, please step
33   forward!)
34
35 * many changes have been going on also at the **plumbing** layer to make the
36   service less resource hungry and more maintainable, in view of a migration to
37   the official Debian infrastructure --- which I've in the meantime started
38   discussing with DSA. Some highlights:
39
40   * Debsources now has a rather comprehensive **test suite**, built using
41     [Nose](https://nose.readthedocs.org/en/latest/). Most notably, we do test
42     full update runs down to source unpacking (of a small subset of a Debian
43     mirror), DB injection, and plugin execution --- which is quite neat.
44
45   * the updater is now much faster (about 2x) and might require, in
46     pathological cases, 10x *less* memory than before. Memory usage now caps at
47     around 300MB, even when injecting ctags for large packages such as linux,
48     chromium, and libreoffice.
49
50   * the DB schema went through several refactoring cycles, and now uses a
51     separate **file table** to index all known source file paths. In the past
52     path information were duplicated across the checksums and ctags tables, not
53     only wasting DB space, but also making the presence of file information
54     conditional on the enablement of at least one of the two corresponding
55     plugins. This is now fixed --- and migrating the full DB has been quite
56     "fun". Unfortunately, we've also added quite a few large-ish indexes,
57     resulting in no significant overall changes in DB size (currently at
58     ~50GB), but at least in much faster queries :-)
59
60     The next step on this front will be the addition of path-based searches,
61     using the excellent Postgres
62     [trigram indexes](http://www.postgresql.org/docs/9.1/static/pgtrgm.html).
63
64 Want more? Sure, we'll be happy to! But it'll happen faster if you
65 [help](http://anonscm.debian.org/gitweb/?p=qa/debsources.git;a=blob;f=BUGS;hb=refs/heads/bugs). Speaking
66 of which: we've got Debsources into the
67 [**new contributors game**](https://wiki.debian.org/DebianFrance/NewContributorGame#Debsources_Improvements)
68 (see
69 [announcement](https://lists.debian.org/debian-devel-announce/2014/02/msg00009.html))
70 and we're looking forward to mentor new contributors.
71
72 [[!tag lang/english planet-debian debian qa debsources]]