Software for brainstorm / ideas sharing and voting?

Some time ago, Ubuntu had Ubuntu Brainstorm, a website where non-developers could submit ideas of improvements, and other people could comment and vote on them. I was wondering if there was existing software to deploy a similar service, e.g. as a plugin to popular forum software. I’ve found, but relying on the Cloud for that is not acceptable for my planned use.

(For clarification: my immediate interest for that is unrelated to Debian work)

DebConf was fantastic (not just the view)

So, I’m back from DebConf, which probably translated to the 10 busiest days of my life, but also to one of the best times of my life. The Le Camp venue clearly contributed to this success: having everybody at the same place, but at the same time many opportunities for quiet chat or just enjoying the view, was really a good idea. Everybody who made DebConf possible deserve a huge “thank you”, as well as all attendees: it is really a honor to be a part of such a fantastic community.

Now, let’s go back to daily life, and to my re-filled Debian TODO list!

Debian birthday

This upload was the first one of my very first package in Debian. It was sponsored by Dafydd Harries, who I’ve finally met at DebConf13, and got out of NEW on 2005-08-16. Exactly 8 years ago today. I only realized that yesterday evening, and Debian’s birthday feels even more special to me now. Dafydd, it looks like I owe you a lot! :)


This DebConf is obviously quite special for me, being the DPL. It has really been great so far to talk to meet so many people, and especially to meet so many new Debian contributors or Developers. I’m really happy to see that the next generation is ready! :)

On Sunday, I delivered my Bits from the DPL talk. The video is available, and I’ve finally uploaded the slides (working link here, it seems that Penta ate my slides). I hope you enjoyed it/will enjoy it!

Debian releases used by popcon participants

The graph below is generated from popcon submissions. Since they include the version of the popularity-contest package, one can determine the Debian release that was used by the submitter (a new version of the popularity-contest package is generally uploaded just after the release to make that tracking possible).

The graph is similar to the one found on popcon, except that versions newer than the latest stable release are aggregated as “testing/unstable”.


  • Popcon submitters might not be representative of Debian users, of course.
  • There’s quite a lot of testing/unstable users, and their proportion is quite stable:
    • Today: testing/unstable: 43119 submissions (31.4%); squeeze: 75454 (54.9%); lenny: 13603 (9.9%)
    • 2011-02-04 (just before the squeeze release): testing/unstable: 29012 (29.7%); lenny: 57262 (58.6%); etch: 10032 (10.3%)
    • 2009-02-13 (just before the lenny release): testing/unstable: 30108 (36.9%); etch: 49996 (61.2%)
  • I don’t understand why the number of Debian stable installations does not increase, except when a new release is made. It’s as if people installed Debian, upgraded directly to testing, and switched back to tracking stable after the release. Or maybe people don’t update their systems? A more detailed analysis could be done by looking at the raw popcon data.
  • Upgrading to the next stable release takes time. Looking at the proportion of users still using oldstable one year after the release, it would be better not to remove oldstable from mirrors too early.

Scripts are available on

Ideas from the -vote@ DPL election discussions

After one week of campaign on -vote@, many subjects have been mentioned already. I’m trying here to list the concrete, actionable ideas I found interesting (does not necessarily mean that I agree with all of them) and that may be worth further discussion at a less busy time. There’s obviously some amount of subjectivity in such a list, and I’m also slightly biased ;) . Feel free to point to missing ideas or references (when an idea appeared in several emails, I’ve generally tried to use the first reference).

On the campaign itself, and having general discussions inside Debian:

  • have those discussions on a more regular basis, outside DPL elections (from lucas)
  • use polls to measure consensus (from lucas, question from mjr)
  • use a pre-arranged questionnaire that DPL candidates would fill in (from algernon)

On getting new users and contributors to Debian:

  • discussion on the various steps: Debian user – first contribution – regular contributor – DM/DD (from lucas)
  • maintain a single list of “paths in” (from moray and lucas)
  • have some “neutral” people to ask about tasks, and to get suggestions from in response to explaining their current skills and experience (e.g. (from moray)
  • more local meetings, compile list of regional contacts (moray)
  • increase Debian presence at local meetings. Advertise the Debian Events initiative that facilitates that (from lucas)
  • provide “Debian ambassador” title for students, similar to what is done by Google or Microsoft (from moray)
  • re-work on advertising gift tags (bugs suitable for new contributors) (from lucas)
  • make sure teams have list of easy tasks in their wiki pages (from lucas)
  • discussion on student projects involving Debian (from lucas)
  • do mentoring inside teams, like DebianMed’s MoM (from moray)
  • participate in other internship-like programs, like Outreach Program for Women (link from lucas), or organize our own, which would also avoid some restrictions from GSoC (northern hemisphere only (point made by moray), restricted to students (ana))
  • extend internship-like programs to other kinds of work (packaging, documentation, etc.)
  • localize -mentors@ (mailing lists + IRC channels for DE, FR, ES contributors) (from lucas)
  • organize IRC schools/seminars about e.g. packaging (from lucas)
  • introduce more gamification in mentoring (from rra)

Infrastructure, processes, releases:

  • improve infrastructure to help with team maintenance (e.g. PET) (from lucas)
  • authorize NMUs for archive-wide changeovers such as /usr/doc -> /usr/share/doc  (from moray)
  • increase visibility of RC bugs squashers by listing them in Debian Project News (from lucas)
  • provide inexpensive non-monetary gifts (free t-shirts?) to RC bug squashers (from lucas)
  • re-open discussion on gradual freezes (from lucas), focus attention on more important packages by improving tools (from lucas) and removing packages earlier (from moray and lucas)
  • involve upstreams and downstreams in RC bug fixing (from algernon)

Relationships with upstreams/downstreams:

  • use Debian money to sponsor maintainers to attend upstream events (from lucas)

This list could be moved to wiki.d.o if others find sufficiently useful to help maintaining it.

Debian is (still) changing

(Looking for those graphs online, I realized that I never properly published them, besides that old post)

I’ve been playing with snapshot.d.o, which is a fantastic resource if you want to look at Debian from an historical perspective (well, since 2005 at least).

Team maintenance

We now have more team-maintained packages than packages maintained by someone alone. Interestingly, the “small, ad-hoc group of developers” model does not really take off.

Maintenance using a VCS


A large majority of our packages are maintained in a VCS repository, with Git being the clear winner now.

Possible goal for Jessie: standardize on a Git workflow, since every team tends to design its own?

Packaging helpers


Again, we have a clear winner here, with dh. It’s interesting to note that, while dh was designed as a CDBS killer, it kind-of fails in that role.

Possible goal for Jessie: deprecate at least pure-debhelper packaging?

Patch systems and packaging formats


Again, clear winner with 3.0 (quilt).

The (dirty) scripts that generate those graphs are available in Git (but you need to connect to stabile to execute them, and it’s rather time consuming — hours/days).

DPL game

When Francesca started her DPL game, I too started think about possible candidates. Here is my shortlist of dream candidates:

  • <insert your name here>
  • <or here>
  • <or there>
  • <or even there>

Seriously, if you are a DD, you have the right to run. There’s no need for someone to nominate you. If you think that you could possibly say something interesting during the discussion period, and can spare the time to participate in the -vote@ discussions, please run. DPL campaigns used to be a great time where Debian visions, goals, politics and random stuff were discussed. The more candidates, the more interesting campaigns (8 candidates in 2007!).

Also, there are already two three other candidates, so even if you don’t want the job, it’s not that risky.

(Initially, I thought about nominating everyone, but security-wise, it might not be such a great idea.)

Half of the package maintainers are not DDs or DMs

During the Paris Mini-Debconf, Nicolas Dandrimont talked about The state of GSoC and beyond. He said that Half of Debian’s packages are maintained by sponsored maintainers. That statement was actually wrong, as he confirmed later.

However, using a few UDD queries, I could come up with:

  • 3147 packages out of 18649 packages in sid (17%) were last uploaded using a sponsored upload.
  • There are 963 distinct sponsorees, vs. a total of 2015 distinct emails in the Changed-By field of packages in sid. Given that it’s more likely for DDs to have used several emails to upload packages, it’s very likely that half of the package maintainers are sponsored maintainers.
  • There are 2185 packages without a DD in either the Maintainer: or the Uploaders: fields. (That includes some packages that are maintained by a team that could include some DDs)

Full UDD notes:

all packages in sid:
select source, version from sources_uniq where release = 'sid'

packages in sid known to upload_history:
select source, version from upload_history where
(source, version) in (select source, version from sources_uniq where release = 'sid')

packages that were uploaded by the changed_by person:
create temporary table sources_not_sponsored as select distinct source, version
 from upload_history, carnivore_keys, carnivore_emails
 where (source, version) in (select source, version from sources_uniq where release = 'sid')
 and fingerprint = key
 and =
 and = changed_by_email;

packages not uploaded by the changed_by person:
create temp table uh_sid as select source, version, fingerprint, changed_by_email
from upload_history
where (source, version) in (select source, version from sources_uniq where release = 'sid');

create temp table uh_sid_sponsored as select source, version, fingerprint, changed_by_email from uh_sid
where (source, version) not in (select source, version from sources_not_sponsored);

list with sponsor login:
select distinct source, version, fingerprint, changed_by_email, login
from uh_sid_sponsored
left join carnivore_keys on fingerprint = key
left join carnivore_login on =;

=> 4188 sponsored packages. some of them are in a strange state (changed_by is a DD, but uploaded by another DD). excluding those:

create temp table sponsored_but_dds as select distinct source, version, fingerprint, changed_by_email, login
from uh_sid_sponsored, carnivore_emails, carnivore_login
where changed_by_email =
and =;

create temp table really_sponsored as select distinct source, version, fingerprint, changed_by_email, login
from uh_sid_sponsored
left join carnivore_keys on fingerprint = key
left join carnivore_login on =
where (source, version) not in (select source, version from sponsored_but_dds);

=> 3147 sponsored packages

select distinct changed_by_email from really_sponsored ;
=> 963 different sponsorees

select distinct changed_by_email from upload_history where
(source, version) in (select source, version from sources_uniq where release = 'sid');
=> 2015 distinct emails.

no DD amongst maintainer or uploader:

create temp table dds_emails as select email from carnivore_emails, carnivore_login
where =;

select source, version, maintainer, uploaders from sources_uniq
where release='sid'
and maintainer_email not in (select * from dds_emails)
and not exists (select * from uploaders where release = 'sid' and sources_uniq.source = uploaders.source and sources_uniq.version = uploaders.version and email in (select * from dds_emails))
and maintainer_email != ''
and (source, version) in (select source, version from really_sponsored);