Debian's package count is increasing, and while it provides benefits in terms of convenience, it also brings challenges in maintaining them. As such, automated tools have been developed to aid the process of packaging and releasing modules. Currently, the pkg-perl team maintains over a thousand packages relating to Perl modules. It's becoming a pretty tough task, especially when modules are being updated frequently.

In many cases, the Perl modules upstream are simple enough that an automated tool could be configured to download popular ones, and subsequently do most of the work of packaging them. This would include probing the metadata to drop in licensing information, etc. Further, tools could be built to probe the new packages being added to the repository in order to ensure that they meet Debian policies, as the Debian policy manual is a rather large document, and it's easy to miss things while packaging, especially for new packagers.

The dh-make-perl scripts are really useful for doing this sort of thing, but there is always room for improvement. The more we can automate the menial tasks of downloading, verifying, testing, uploading, etc, the better.

Further, cross-platform compatibility is an important consideration for packages. It benefits everybody if packages can be tested on a variety of platforms with reports made available to the packaging team.


o Modules becoming stale. Currently, a few highly active people on the Perl packagers team put quite a bit of work into keeping modules up-to-date. The package entropy tracker (PET) is pretty useful in this regard, as it lets us know what has changed upstream but that needs to be fixed for Debian. But there is still a delay between upstream module releases and their Debian package release. There is a risk of packages becoming too old, so as to make it necessary for users to install libraries using the CPAN shell. This is problematic because those packages can no longer be monitored by APT.

o Cross-platform building of Perl modules. I'm not sure how well this works in practice; I know that the Debian Autobuilder, buildd, is tasked with building packages for non-i386 platforms. However, one of the problems that arises often comes from testing - we wish to run the full test suites (including author tests) of each module we package. We need some sort of centralized tool to ensure that packages will work on as many platforms as possible, since Debian is, after all, the universal operating system.

A Solution

On the Comprehensive Perl Archive Network (CPAN), a system of module distribution, there is a team called the CPAN Testers. This group runs a variety of machines on different platforms using software called Smokers. The intent of these programs is to download new releases from CPAN and attempt to build them. This means that code gets tested on a variety of platforms, to ensure that the modules will work across platforms.

In a similar vein, a program could be adapted to do this sort of thing, and indeed has been: the Debian autobuilder, buildd. However, I'm not sure of the reporting functionality inherent in those tools. Increasing the visibility of build reports from other operating systems would be useful.

While this has been really helpful for module authors, there were still quality issues in terms of enforcing "best-practices" and policies. So CPANTS (CPAN Testing Service) was formed, which measures every package's so-called Kwalitee score, and graphs them for everyone to see.


There are a few important things that need to be done before

First, I want to develop a Config::Model of the Debian control files. This is

Notes from Jeremiah

Check out hooks into kwalitee from CPAN

Gabor is a perl testing guru, and uses debian Gabor's blog

Jos Bouman's work with CPANPLUS dist automation