Differences between revisions 13 and 14
Revision 13 as of 2011-02-20 18:52:10
Size: 5458
Editor: AdamBarratt
Comment: Another s/gluck/bellini/
Revision 14 as of 2011-04-19 13:06:30
Size: 5204
Editor: NielsThykier
Comment: Added myself to the team and updated/removed some outdated info
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
 * [[NielsThykier|Niels Thykier]] commits patches, fixes bugs, and does infrastructure development
Line 34: Line 35:
 * Rewrite the Lintian manual. It should probably be converted to DocBook and is somewhat out of date.  * Rewrite the Lintian manual. It is somewhat out of date.
Line 51: Line 52:
 * It's also not clear if anything uses the lower levels of unpack; in theory, you can run lintian with a lower unpack level on large packages and it won't fully unpack the package and only run the tests it can, but in practice it's not clear anyone uses this or that the additional complexity is worth it.

Lintian

Infrastructure

Interacting with the team

Usual roles

  • Russ Allbery (rra) commits patches, fixes bugs, does infrastructure development, and watches over the version on bellini.debian.org for http://lintian.debian.org/

  • Raphael Geissert commits patches, fixes bugs, and does infrastructure development

  • Niels Thykier commits patches, fixes bugs, and does infrastructure development

  • Adam D. Barratt commits patches, fixes bugs, and does infrastructure development
  • Frank Lichtenheld (djpig) does bug fixing and commits
  • Marc 'HE' Brockschmidt does some bug fixing and commits and was the Google Summer of Code mentor
  • Colin Watson keeps an eye on Ubuntu integration and man page checks

Task description

Lintian is a comprehensive package checker for Debian packages. It primarily tries to check for Debian Policy violations and violations of various sub-policies, but it also checks for best practices, common mistakes, and problems that maintainers like to catch before uploads.

Lintian by design only performs checks internal to a single package which can be done without external information other than Lintian itself. This allows stability of output: Lintian will produce the same report for a given package and a given version of Lintian each time it's run. Cross-repository checks and checks for consistency and linkages between packages should be done by other tools.

The team also maintains http://lintian.debian.org/ as a presentation of the results of running Lintian on the entire archive. Currently, due to limitations in both disk space and available CPU, as well as limitations in Lintian's archive-wide configuration abilities, these checks are only done for arch: i386 and arch: all packages.

Get involved

Easy Projects

  • Pick a fully specified wishlist bug for a Lintian check and implement it.
  • Look at t/COVERAGE and write a test case for a tag that's not currently tested.
  • Edit all tag descriptions for consistency and add appropriate markup.

Larger Projects

  • Rewrite the Lintian manual. It is somewhat out of date.
  • Add documentation of what Lintian extracts into the laboratory. A rewritten Lintian manual would be a good place to put this information.

Hard Projects

  • Help the team with refactoring the existing code to share more common modules. (Please discuss this on the team list before starting. RussAllbery has some ideas for what could be done.)

More stuff

This is a somewhat random collection of additional notes about Lintian, mostly from the DebConf7 Lintian BOF.

  • Role of lintian: package checker without external dependencies besides lintian (and its Depends) and the package. Does not look at other packages, the rest of the archive, external web sites like the BTS, and so forth, so that if neither lintian nor the package have changed, the results will be the same as the last time the check was run.
  • lintian wontfix bugs accumulate ideas for archive-wide checks that are outside lintian's scope but may be interesting for other tools.
  • lintian has grown organically and has a wide variety of different Perl coding styles and structure for its tests. It could use a cleanup. Russ removes unused code and refactors from time to time, but hasn't made any comprehensive changes.
  • lintian's architecture uses an unpack script to get information about the source or binary package (possibly including unpacking it entirely) and then collect scripts to analyze the results of the unpack script and store that information in various files. All this information is kept on disk and Lintian reads and writes small files to pass information between the unpack and collect scripts and the checks, although increasingly the Lintian::Collect modules are used to cache that information so that it's not read more than once.
  • Manoj has some ideas for more closely integrating package checking with Policy and putting checking pseudocode into Policy as part of the Policy constraint. Some of the program analysis and proof languages may be useful for doing something like this, but it needs someone interested in this sort of thing to work on it.
  • There has been some discussion of having DAK run lintian and reject packages on the basis of lintian diagnosis. Lintian now has support for only reporting a specific set of tags.
  • Anibal suggested to have an extra column called lintian in the Debian Developer's Packages Overview page.