Subject: Re: Bug#884499: lintian: Pedantic check for packages not using debhelper or CDBS

From: Russ Allbery <[email-masked]>
Date: Sun, 06 May 2018 18:26:36 -0700

Chris Lamb <[email-masked]> writes:

> However, my experience with being an author of a handful of static
> analysis tools is that people have a slight tendency to delegate
> thinking to the computer's output. The addition of an objective target
> (ie. zero output) only encourages our post-lapsarian brains to make
> poor, err, compromises.

> Do correct me if I'm wrong, but I believe this is the angle Scott was
> pushing. :)

> How could we make --pedantic more useful/obvious/something?  Ironically,
> if it were less useful in a strict sense — for example, if we moved some
> P: tags to I: — it would get less incorrect usage. :p

My modest proposal, and this is going to sound nuts so bear with me for a
moment, would be to make it impossible to get pedantic tags and regular
tags at the same time.  If you use --pedantic, suppress all other tags.

This problem stems from the fact that people are using Lintian as if
pickier is better, and the deeper they go into Lintian's settings while
keeping the package clear of any output, the better the package is.  And
that's true, up to a point -- moving from error to warning is certainly
significant, and moving from warning to info is probably significant.

But pedantic was a collection of tags that were mostly designed for a far
different purpose: you run them on a package to ask for a set of things
that might be out of step with common best practices or that you may want
to consider changing if you've not touched the package in years.  It's
much more of a one-time thing.  You run it, you look at the tags and read
the descriptions (I would argue that --pedantic is basically useless
without --info, and perhaps --pedantic should force --info, particularly
if one implements my modest proposal), you decide which ones make sense
and which ones don't, and then you fix the ones you like and move on with
your life.

Lintian has emitted pedantic warnings about some of my packages for not
having an upstream changelog for literally years.  This is never going to
be fixed; upstream is not going to make a changelog, and I'm not going to
make an artificial one.  The correct disposition of that tag is for me to
ignore it completely, *but it's still useful* for new packages when I'm
doing initial packaging and may have forgotten to include the right
debhelper command to copy over upstream's unconventionally-named
changelog.

If we *force* people to not treat --pedantic the same as other severity
levels and *force* it to be a separate pass that you only run in specific
situations, maybe this will finally get through to people, since arguing
with people in debian-mentors that they're using Lintian wrong doesn't
seem to be working.

-- 
Russ Allbery ([email-masked])               <http://www.eyrie.org/~eagle/>