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

Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings



On Sun, 18 Jan 2009 19:37:29 -0800
Russ Allbery <rra@debian.org> wrote:

> > Well that check only works on the source package and only uses msgfmt -
> > it could probably be improved with a check on the binaries and the
> > actual templates file(s).
> 
> Could you explain a bit more about what that would catch that the current
> check doesn't catch, other than the (rather unusual) case of only running
> lintian on the .deb file without running it on the source package?

It allows the check to isolate one particular case:

A new question has been added to the templates file and *NONE* of the
translations include that specific question. The check repeats for all
other questions, uniquely matching the translation status of that one
message against each language. It fails only if NONE of the languages
include at least one specific question.

The result is that this check would then warrant a higher certainty and
a higher severity because it will not pick up the cases where the
translators for some languages have replied and some have not. It will
only pick up cases where *NONE* of the translators have replied.

It gives a high certainty for the problem described by Christian:
 
> Of course, a first package with no translation at all is really
> something we don't like as this makes obvious that no call for
> translations was made and very very likely that no review happened
> (because such reviews always include a recommendation to do a call for
> translations....).

It also extends that to a package that includes a new debconf question
that is completely untranslated, with the same degree of certainty.

The test would not affect program translations, only debconf ones.

>  All
> po-debconf checks are currently done against the source package, and if we
> can diagnose the problem on the source package, I'd rather do it there
> since fixing the problem really requires action on the whole source
> package rather than separate actions for each binary package.

The source package does not contain the post-processed templates file
that debconf actually reads. It is the file that is created after the
PO files are merged into the DEBIAN/templates file during the final
stages of the package build.

> > In the original report, I only tested against the .deb. The
> > no-complete-debconf-translation check is not high enough severity to
> > show up without -I when checking the source package.
> 
> Yes, we can change the severity, although I'd like to run that past
> debian-i18n first.

Christian - this is a slightly different problem to what you first
thought. It isn't that some translators have answered and some have
not, it is that a new question has been added and nobody at all has
replied. If a sane deadline is set, isn't it unlikely that not one of
the language teams managed to get a translation to the maintainer in
time? It is far more likely that the maintainer didn't ask the
translation teams before uploading the new question.

The tag name might have to change:

new-question-without-translations

> > If the binary check is added, the certainty can be raised and also the
> > severity. With that change, the description could be made more strict:
> 
> I don't see why a binary check would change the certainty.  Maybe I'm
> missing something? 

The source package check can only process the msgfmt output which is
overly brief. msgfmt does not say whether all translations are missing
the *same* string, it just says that all translations are missing *a*
string. Processing the templates file from the binary uniquely
identifies situations where none of the translations include that
question. As soon as any question is changed, all the old translations
become "fuzzy" and podebconf (via gettext) refuses to include those
translations against the modified question.

> It's certainty: possible right now because there may
> be cases where translators were warned but didn't have a chance to do any
> translations (for an obscure package, for instance).  I think that will
> always be the case.

Then maybe an override can quote the message to debian-18n in the
comments, just as other overrides are meant to quote the bug number? 

If other questions in the templates file *are* translated, it seems
highly unlikely to me that none of the previous translators and none of
the other language teams responded to the call for updates - as long as
a sane deadline was set.

> debian-mentors discussion also raises the valid point that a brand new
> package possibly shouldn't go to translators before the first upload.  I'd
> like to get a debian-i18n opinion on that as well.  Should we skip the
> Lintian tag for no complete translation if this is the first packaging?
> (We can detect this by noting that we only have one changelog entry.)

I disagree with that analysis of the discussion on mentors - I think a
brand new package *should* go to translators before the first upload
and gave my reasons in the thread. New packages using debconf should
have their templates reviewed.

New packages containing debconf questions should always be reviewed
before upload and that review will lead to at least some translations.

BTW mentors may require that repeated uploads to mentors.debian.net
during the process of review and testing get full descriptive entries
in the changelog for what has actually been done during the sponsoring
process. So a single changelog entry is not a predicate of a NEW
package.

> > I'd like to see severity important but normal would be OK for starters.
> 
> Remember, the rule of thumb here is that severity should match the
> severity that you'd pick for the bug that you filed about the problem,
> were you to file a bug.  Important is a rather large leap over the current
> severities used for translations.

Debconf is a little different. It is a peculiar problem that if a new
debconf question is not translated, the user does not get the chance to
reconsider their answer when the translation finally arrives.

Normal severity would be fine if important is deemed a step too far.

I still think it is worth enforcing "no untranslated debconf questions"
in debian-mentors as a point of good practice - even if the lintian tag
severity is not changed in order to avoid annoying existing DD's.
Mentors should be about raising the quality of NEW packages and package
updates (especially QA uploads etc.) and all packages coming through
mentors should be up to the latest measures of Policy, Standards and
general behaviour.

Maybe lintian could be more aggressive for checks performed during
sponsoring than when being used by more "experienced" DD's. ;-)

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpUB0lTcY7bQ.pgp
Description: PGP signature


Reply to: