[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Very uneven distribution of packages per maintainer



I just ran some stats on my APT sources (mostly Woody), and discovered
that the distribution of number of packages per developer is very
uneven.  This is the histogram of developers with the specific number
of packages they maintain:


Packages  Developers
       1         239
       2         128
       3         112
       4          89
       5          72
       6          55
       7          33
       8          20
       9          34
       10         19
       11         16
       12         16
       13         16
       14          8
       15         10
       16          9
       17          7
       18          7
       19          2
       20          6
       21          5
       22          5
       23          3
       24          3
       25          3
       26          3
       27          3
       29          3
       32          1
       33          1
       34          1
       37          1
       40          1
       41          1
       43          2
       44          1
       46          1
       47          1
       50          2
       52          1
       65          2
       76          1
       83          1
       84          1

One developer is listed as the maintainer of 84 packages.  I am
impressed. :)

24 developers are responsible for 1004 packages in Debian.

I suspect a more even distribution of packages per maintainer would be
a good thing. :)


This is the script I used to generate the histogram.

#!/usr/bin/perl -w

sub lowercase_email {
    $maint = shift;
    ($name, $addr) = $maint =~ m/^(.+)<(.+)>$/;
    #return "$name <\L$addr>";
    return "$name";
}

open(APT, "apt-cache dumpavail |") || die "Unable to run apt-cache";
while (<APT>) {
    chomp;
    $pkg = $1 if /^Package: (.+)$/;
    $maint = $1 if /^Maintainer: (.+)$/;
    $src = $1 if /^Source: (.+)$/;
    if (/^$/) {
	$pkg = $src if ($src);
	#print "P: $pkg M: $maint\n";
	if ( ! exists $pkgs{$pkg}) {
	    $pkgs{$pkg} = 1;
	    $maint = lowercase_email($maint);
	    $maintainers{$maint}++;
	}

	undef $src;
    }
}
close(APT);

for $maint (keys %maintainers) {
    #print "$maintainers{$maint} $maint\n";
    $hist{$maintainers{$maint}}++;
}

for $count (sort { $a <=> $b } keys %hist) {
    print "$count $hist{$count}\n";
}



Reply to: