Valid HTML 4.01 Strict Valid CSS! powered by Blosxom

Sun, 21 Sep 2008

Lintian 2.0.0~rc2 in experimental

For the impatient reader: New lintian in experimental, please test and give feedback. You will miss most changes though unless you read the rest of the post (Hint, Hint ;))

During the past week I've uploaded new lintian versions to experimental which we designated to be release candidates for 2.0.0. Code-wise the changes are not that much more intrusive than for many of our past releases, but they change the way lintian classifies tags in a fundamental way, thanks due to the hard work of Jordà Polo in his Google Summer of Code project (mentored by Marc Brockschmidt).

Lintian Tag Classification, old and new

Previously lintian classified tags only in one dimension, in the categories "Info", "Warning", and "Error". While this worked reasonably well, the difference between the categories was not very well defined. The general idea was that everything violating a "must" in Debian Policy or endangering the building or usage of the package should be an "Error", i.e. something very similar to the definition of RC bugs (except that not all "must"s in Policy are deemed worthy of filing RC bugs). Some errors were downgraded to "Warning" or even "Info" though on the basis that their detection was too prone to false positives. Due to this it was a long existing desire to split the classification of tags into two dimensions, one for the impact/importance of the tag, and one for the certainty of its correct detection. This should make it easier for people to interpret and/or filter the output.

At various points in the last few years people began to work on this but quickly gave up, usually overwhelmed by the sheer number of tags (728 in 2.0.0~rc2) to classify anew and to make sure that the old and new categorisation could exist side-by-side (because breaking backwards compatibility was not really feasible).

Finally this year Jordà Polo decided to tackle this task as a Google Summer of Code project, with great success. Tags are now classified in two dimensions "Severity" (with the possible values wishlist, minor, normal, important, serious, which are intentionally very close to the available severities in the Debian bug tracking system), and "Certainty" (possible values: wild-guess, possible, certain). A third classification by "Source" (i.e. Policy, Developers Reference, ...) is planned but not yet fully implemented.

For backwards compatibility there is a mapping of these new classification to the old ones (which lead to a few reclassifications of tags). The default output of lintian is unchanged. The new output formats that support the classification are still experimental (see below).

How to use it

You can specify exactly which levels of Severity and Certainty you want to have displayed with the new --display-level (-L) option. Please see the manual page for the details, but to give you an idea, the default behaviour (i.e. "show warnings and errors" in the "old" vocabulary) is equivalent to specifying

-L ">=important" -L "+>=normal/possible" -L +minor/certain

And to get a report with only severe tags we're very certain of, you could use

-L ">=important/certain"

which will only display tags that have severity "important" or "serious" and a certainty of certain.

There is also the (intentionally undocumented) option --exp-output which allows you to play with some experiments we're doing with the output format.

--exp-output format=letterqualifier will give you an output very similar to the "classic" one, but with additional information about severity and certainty. --exp-output format=colons gives you a colon-separated format which includes all the possible information lintian currently has available during tag output and which should be easily machine-consumable. Note that these formats are experimental and might be changed at any point without notice. If you're interested in using alternative formats for lintian output, please join the mailing list and talk to us about it.

Etc.

Other changes include the usual share of bug fixes and of course:

New tags

  • description-contains-dh-make-perl-template
  • doc-base-uses-applications-section (actually a split of doc-base-unknown-section in two tags)
  • embedded-pear-module
  • embedded-php-library
  • improbable-bug-number-in-closes
  • maintainer-also-in-uploaders
  • maintainer-script-ignores-errors
  • manpage-has-errors-from-pod2man
  • ored-build-depends-on-obsolete-package (actually a split of build-depends-on-obsolete-package in two tags)
  • package-superseded-by-perl
  • versioned-dependency-satisfied-by-perl
  • windows-devel-file-in-package

Credits

This lintian release is brought to you by (sorted by number of changesets):

  • Jordà Polo
  • Frank Lichtenheld
  • Adam D. Barratt
  • Raphael Geissert
  • Russ Allbery
  • Niko Tyni
  • Marc 'HE' Brockschmidt

Created 2008-09-21 by Frank Lichtenheld, category /en/devel/debian. permanent link, 0 comment(s)

comment...

 
Name:
URL/Email: [http://... or mailto:you@wherever] (optional)
Title: (optional)
Comments:
Save my Name and URL/Email for next time