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

Bits from the Lintian maintainers



Current Status
==============

Since the lenny freeze began, we've been working on incorporating major
changes in preparation for squeeze, including (as previously announced)
merging the Google Summer of Code work done by Jordà Polo for
finer-grained tag classification.  Through the last couple of months, we
maintained a schedule of a release each Saturday.  The goal was to improve
Lintian as much as possible in preparation for the beginning of active
development for squeeze.  Now that the release freeze is over, lots of
maintainers will be uploading new versions of their packages, which is a
great opportunity to clean up those hidden or niggling packaging issues
that weren't appropriate for freeze uploads.

Now that the release has finished, my expectation is that we'll drop down
to a release every two weeks (as long as the development speed warrants
it) to give Lintian time to migrate into testing.

To give an idea of how much has been added, the version of Lintian
included in etch (1.23.28) contained 555 tags.  Debian lenny shipped with
1.24.2.1, which has 712 tags.  The current version of Lintian in unstable
(2.2.5) has 787 tags.

Pedantic Support
================

Lintian 2.2.0 adds support for pedantic tags, contributed by Raphael
Geissert.  This is a new level of tag severity below the existing info
level, corresponding to "problems" that would never warrant a bug report
and which may be a matter of opinion or very likely to be inaccurate.
This new tag level will let us implement some picky checks that have been
frequently requested, but which some maintainers may disagree with.

It's up to each maintainer whether to use --pedantic at all.  It's Lintian
at its pickiest.  The tags won't be in the default lintian.debian.org view
(right now, they're not there at all, but we may add a view of them).  If
you do use --pedantic, please don't worry too much about making your
package pedantic-clean unless the tags really seem like a good idea.
Also, as noted in the man page, adding overrides for pedantic tags is
probably not worth the effort.  You should look over the report and apply
human judgement.

We think the best approach to take with --pedantic is to try using it with
your packages occasionally and see if it's useful.  Using --pedantic can
be an occasional thing, such as whenever you bump Standards-Version,
rather than a standard part of your pre-upload routine.  This mode can
also be particularly useful for sponsors who want to be alerted to
possible issues but can decide for themselves which ones to mention to the
package maintainer.

New lintian.debian.org Tag View
===============================

Lintian 2.2.0 also added a new tag view on lintian.debian.org that's
sorted by tag severity and certainty.  This view is at:

    http://lintian.debian.org/tags-severity.html

This provides another view on possible archive-wide problems.  It will
also provide Lintian contributors with a useful summary of the current
severity and certainty of existing tags, which will help in finding and
fixing tags that don't have the correct severity or certainty.  (For
example, tags that are severity: certain but frequently overridden may
either not be certain or may have problems thst should be fixed.)

Lintian Reference Data
======================

All of the data that Lintian uses for its checks used to be included in
the Perl code or in some helper modules.  Starting with Lintian 1.23.46,
we introduced the Lintian::Data module to load that information from
separate files.  Pulling it out of the code into easy-to-edit text files
helped keep the code cleaner and also made it easier to update the data.

Recently, Raphael Geissert and Niko Tyni have contributed update scripts
for some types of data that scan the current archive or current packages
as appropriate.  This lets the Lintian maintainers periodically update
this data and be sure that it's accurate without needing bug reports or
monitoring of the archive.

Examples of data that is now managed this way are Perl modules and their
versions provided by the perl-modules package, packages that contain dh_*
commands for debhelper, debhelper scripts that modify maintainer scripts
or may add information to ${misc:Depends}, and font files already found in
Debian font packages.

Improved Test Suite
===================

Frank Lichtenheld started work on a new Lintian test suite driver in
version 1.24.3, intended as a long-term replacement for the existing
Lintian test suite.  Improvements included the use of templates for test
packages using debhelper 7 to provide a clean basis on which test cases
can be built, better test metadata, and much better mechanisms for
creating non-native test packages.

Over the last few releases, various people have contributed improvements.
The new test suite driver now supports building and testing "raw" Debian
packages constructed with dpkg-deb or even directly with ar (allowing us
to test Lintian robustness with packages that dpkg-buildpackage wouldn't
allow) and hand-written *.changes files.  It also now has support for
running Lintian with particular options, selecting from multiple test
templates, and 80 separate tests.

In future releases, we will be adding support for Test::Harness-style test
scripts for unit testing of Lintian internals and tests for "raw" source
packages akin to the raw Debian binary packages.  Over time, as people
find time to write new-style tests to check for the tags currently covered
only by the old test suite, the new test suite will supersede the old one
entirely.

Upcoming Work
=============

I've been working on Lintian's internal architecture, providing more
infrastructure so that the check scripts themselves are simpler, moving
Lintian's internal Perl libraries to a better naming scheme, and adding
internal POD documentation.  Lintian 2.2.1 eliminated two of the old
modules, and I hope to move several more in the near future, as well as
improving the internal architecture for checking dependency fields.

Raphael Geissert has been working on improved infrastructure for source
package checks, generating more laboratory information to allow some
requested checks to be implemented.  The start of that work was included
in the last release.  He's also working on optimizations, more binary
checks, and missing checks from linda and rpmlint.

Helping Out
===========

More hands are always welcome!  Lintian is a nice project to work on when
one only has an hour or two, since a lot of the requested checks don't
require very much code.  Work on the test suite is also much appreciated
and doesn't require a large time investment.  If you want to help out,
take a look at the wiki page at:

    http://wiki.debian.org/Teams/Lintian

We're also looking for someone who would like to tackle converting the
Lintian manual to Docbook instead of DebianDoc-SGML and working on
updates.  There's quite a bit about Lintian that isn't currently
documented.  If you're interested, let us know.

If you have any ideas for new tests that would be helpful to you, please
do submit them as wishlist bugs against the lintian package.  It's nice to
have a large collection of ideas known to be useful to someone to pick
From when one has a few hours to work on Lintian.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>

Attachment: pgpAQYIGxRTTd.pgp
Description: PGP signature


Reply to: