Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-25 Thread Sean Whitton
Hello Jonathan,

On Mon 06 Aug 2018 at 06:24PM -0700, Jonathan Nieder wrote:

> Thanks for explaining your point of view.  I agree with relying on
> maintainer judgement, and the best way to do that is to avoid having a
> requirement in policy at all in some areas.
>
> I think it really does help to look at the motivating use cases.  If
> we focus on what it would be a good idea for a packager to do, then
> policy would become very long, and it would become much less useful as
> a precise source of information about Debian's packaging policies.
> Instead, I find it more useful to focus on the non-obvious bits where
> having a documented policy can help.

This is an important point to bear in mind when working on Policy;
thank you for noting it.

> If I understand correctly, you're saying that the following fall into
> that category:
>
> - don't abbreviate build commands unless DEB_BUILD_OPTIONS=terse
> - don't abbreviate test commands and output unless
>   DEB_BUILD_OPTIONS=terse
>
> Do I understand correctly?  Are there more examples in that category,
> or could we just document those two?

These are the only examples that come to my mind at present, indeed.

> [...]
>> 1) Add something like "In particular, build command lines should not be
>>abbreviated."  Then we are not leaving that particular case up to
>>maintainer judgement, without removing the general recommendation.
>
> This wouldn't help Clément's motivating example, since it would not
> clarify whether there is additional verbose output he needs to
> provide.
>
>> 2) Add some examples of what should usually not be included, or perhaps
>>just say that if some output makes a build log tens of megabytes in
>>size, it should not be included.
>
> I feel that this is trying to solve a problem that doesn't need
> solving: packagers generally have good taste, and for most purposes it
> is obvious to packagers what outputs they need to include (after all,
> the packager is the primary audience of these logs!)  Build command
> lines really are a special case since they are important to the
> toolchain maintainers.
>
> The size threshold you mentioned would suggest that the Linux kernel
> should not support unabbreviated build logs.

After reading the message to which I'm replying, I am no longer
confident in my previous opinion that recommending verbosity in general,
and providing some examples of where verbosity is most important, is
better than recommending verbosity in only specific cases (as you
advocate).

I would like to see opinions about this from people other than the few
of us who have been writing to this bug.  This bug will be closed on the
next upload since we addressed the original submitter's main concern,
but if you're still interested in driving this change to recommend
verbosity in only specific cases, please do clone this bug, or file a
new one (IMO the latter would be more useful at this point in the
discussion, but I appreciate that it is more work).

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-10 Thread Sean Whitton
control: tag -1 +pending

Hello,

On Tue 07 Aug 2018 at 09:26am +0200, Clément Hermann wrote:

> IMO, s/maximally// would definitely fix the most pressing matter here,
> that is, the fact that we have incompatible statements. I would
> definitely be able to declare the go packages I maintain compliant, for
> instance.
>
> However, regarding the rest of the discussion on this bug, I agree more
> guidance to the maintainer as to what is expected would be nice. But
> that is a separate issue, I think.
>
> How about resolving this one with this simple fix and opening a new one
> to discuss making this paragraph better ?

On Tue 07 Aug 2018 at 11:10am -0700, Jonathan Nieder wrote:

> I don't believe s/maximally// changes the normative content --- it just
> more clearly expresses what it already is saying.  So I think a policy
> editor can make that change without waiting for seconds.

Thank you both.  Applied in git.

With regard to offering package maintainers more guidance as to how
verbose builds should be, I'll leave it up to Jonathan to either clone
this bug, or file a new one.

(I'm not sure whether Jonathan feels it is possible to summarise the
current discussion as the first message to a new bug, or whether things
are still sufficiently unclear that all the context needs to be
present.)

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-07 Thread Jonathan Nieder
Hi,

Clément Hermann wrote:
> On 03/08/2018 04:23, Sean Whitton wrote:
> > On Thu 02 Aug 2018 at 12:16PM +0800, Clément Hermann wrote:

>>> "as verbose as reasonably possible" seems incompatible with "maximally 
>>> verbose
>>> output", at least in some cases (golang packages come to mind).
>>>
>>> Would it be possible to clarify this ?
>>
>> Yes.  Let's improve this.
>>
>> Would s/maximally// be sufficient?  Or s/maximally/more/ ?
>
> IMO, s/maximally// would definitely fix the most pressing matter here,
> that is, the fact that we have incompatible statements. I would
> definitely be able to declare the go packages I maintain compliant, for
> instance.
>
> However, regarding the rest of the discussion on this bug, I agree more
> guidance to the maintainer as to what is expected would be nice. But
> that is a separate issue, I think.

Ah, thanks!  Sorry to have misunderstood.

I don't believe s/maximally// changes the normative content --- it just
more clearly expresses what it already is saying.  So I think a policy
editor can make that change without waiting for seconds.

Anyway, just in case, seconded.

Thanks,
Jonathan



Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-07 Thread Holger Levsen
Hi Sean,

On Mon, Aug 06, 2018 at 06:04:02PM +0800, Sean Whitton wrote:
> So how about making three changes:
> 
> 1) Add something like "In particular, build command lines should not be
>abbreviated."  Then we are not leaving that particular case up to
>maintainer judgement, without removing the general recommendation.
> 
> 2) Add some examples of what should usually not be included, or perhaps
>just say that if some output makes a build log tens of megabytes in
>size, it should not be included.
> 
> 3) Deal with the 'maximally' problem with one of the rewordings I
>suggested in a previous message -- we want to include mention that
>it's debian/rules that does the work of enabling the reasonable
>verbosity.

those seem all very reasonable to me, thanks!


-- 
cheers,
Holger

---
holger@(debian|reproducible-builds).org


signature.asc
Description: PGP signature


Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-07 Thread Clément Hermann
Hello,

On 03/08/2018 04:23, Sean Whitton wrote:
> Hello,
> 
> On Thu 02 Aug 2018 at 12:16PM +0800, Clément Hermann wrote:
> 
>> "as verbose as reasonably possible" seems incompatible with "maximally 
>> verbose
>> output", at least in some cases (golang packages come to mind).
>>
>> Would it be possible to clarify this ?
> 
> Yes.  Let's improve this.
> 
> Would s/maximally// be sufficient?  Or s/maximally/more/ ?
> 

IMO, s/maximally// would definitely fix the most pressing matter here,
that is, the fact that we have incompatible statements. I would
definitely be able to declare the go packages I maintain compliant, for
instance.

However, regarding the rest of the discussion on this bug, I agree more
guidance to the maintainer as to what is expected would be nice. But
that is a separate issue, I think.

How about resolving this one with this simple fix and opening a new one
to discuss making this paragraph better ?

Cheers,

nodens



Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-06 Thread Jonathan Nieder
Hi,

Sean Whitton wrote:
> On Thu 02 Aug 2018 at 07:29PM -0700, Jonathan Nieder wrote:

>> Thanks.  Unfortunately, that wouldn't address Clément's concern about
>> maximal verbosity (1) not being consistent with reasonableness and (2)
>> not being concrete enough to easily act on as a packager.
[...]
> Hmm.  The original goal of the requirement might well have been not
> abbreviating build command lines, and I agree that package maintainers
> should avoid abbreviating those.  However, ISTM that a more general
> recommendation in favour of verbosity is also useful, and should not be
> removed.  An example that comes to mind is test suite output: you really
> do want that to be quite verbose in order to see what went wrong.
>
> We have to rely on maintainer judgement about what to include.

Thanks for explaining your point of view.  I agree with relying on
maintainer judgement, and the best way to do that is to avoid having a
requirement in policy at all in some areas.

I think it really does help to look at the motivating use cases.  If
we focus on what it would be a good idea for a packager to do, then
policy would become very long, and it would become much less useful as
a precise source of information about Debian's packaging policies.
Instead, I find it more useful to focus on the non-obvious bits where
having a documented policy can help.

If I understand correctly, you're saying that the following fall into
that category:

- don't abbreviate build commands unless DEB_BUILD_OPTIONS=terse
- don't abbreviate test commands and output unless
  DEB_BUILD_OPTIONS=terse

Do I understand correctly?  Are there more examples in that category,
or could we just document those two?

[...]
> 1) Add something like "In particular, build command lines should not be
>abbreviated."  Then we are not leaving that particular case up to
>maintainer judgement, without removing the general recommendation.

This wouldn't help Clément's motivating example, since it would not
clarify whether there is additional verbose output he needs to
provide.

> 2) Add some examples of what should usually not be included, or perhaps
>just say that if some output makes a build log tens of megabytes in
>size, it should not be included.

I feel that this is trying to solve a problem that doesn't need
solving: packagers generally have good taste, and for most purposes it
is obvious to packagers what outputs they need to include (after all,
the packager is the primary audience of these logs!)  Build command
lines really are a special case since they are important to the
toolchain maintainers.

The size threshold you mentioned would suggest that the Linux kernel
should not support unabbreviated build logs.

> 3) Deal with the 'maximally' problem with one of the rewordings I
>suggested in a previous message -- we want to include mention that
>it's debian/rules that does the work of enabling the reasonable
>verbosity.

Removing 'maximally' might help, but it doesn't significantly change
the basic problem of the current text not being tightly scoped or
providing clear guidance.

Thanks and hope that helps,
Jonathan



Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-06 Thread Sean Whitton
Hello Jonathan and Clément,

On Thu 02 Aug 2018 at 07:29PM -0700, Jonathan Nieder wrote:

>> We could restore your text in a footnote or a "For example ..."
>> paragraph?
>
> Thanks.  Unfortunately, that wouldn't address Clément's concern about
> maximal verbosity (1) not being consistent with reasonableness and (2)
> not being concrete enough to easily act on as a packager.
>
> Can we make it about not abbreviating build command lines, instead of
> maximal verbosity?  For example, enabling more warnings might make a
> compiler produce more verbose output, but it isn't the goal of this
> requirement.  Similarly, enabling compiler tracing might make a
> compiler produce more verbose output, and some people might even like
> that, but I don't believe that was the goal of this policy
> requirement.

Hmm.  The original goal of the requirement might well have been not
abbreviating build command lines, and I agree that package maintainers
should avoid abbreviating those.  However, ISTM that a more general
recommendation in favour of verbosity is also useful, and should not be
removed.  An example that comes to mind is test suite output: you really
do want that to be quite verbose in order to see what went wrong.

We have to rely on maintainer judgement about what to include.  With
your example of compiler warnings, it's going to depend on whether a
given class of warnings is ever useful for finding and fixing bugs, and
this will depend on the programming language(s) and build system(s).
The maintainer will need to decide whether to include these, but it's
useful for Policy to tell them to err on the side of inclusion.

So how about making three changes:

1) Add something like "In particular, build command lines should not be
   abbreviated."  Then we are not leaving that particular case up to
   maintainer judgement, without removing the general recommendation.

2) Add some examples of what should usually not be included, or perhaps
   just say that if some output makes a build log tens of megabytes in
   size, it should not be included.

3) Deal with the 'maximally' problem with one of the rewordings I
   suggested in a previous message -- we want to include mention that
   it's debian/rules that does the work of enabling the reasonable
   verbosity.

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-02 Thread Jonathan Nieder
Sean Whitton wrote:
> On Thu 02 Aug 2018 at 12:16PM +0800, Clément Hermann wrote:

>> "as verbose as reasonably possible" seems incompatible with "maximally 
>> verbose
>> output", at least in some cases (golang packages come to mind).
>>
>> Would it be possible to clarify this ?
>
> Yes.  Let's improve this.
>
> Would s/maximally// be sufficient?  Or s/maximally/more/ ?

I don't know a better way to say this, so I'll just say it: I am not
feeling listened to.  I am feeling talked past.  No, that wouldn't be
sufficient at all.

I think some of that is inevitable in the rush to resolve policy bugs,
but there are other ways to get this done that are less dismissive (for
example, requesting a patch).

If you'd like more detail from me, is there some appropriate place to
discuss this in real time?  I am jrnieder on freenode.

Jonathan



Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-02 Thread Jonathan Nieder
Hi,

Sean Whitton wrote:
> On Wed 01 Aug 2018 at 10:47PM -0700, Jonathan Nieder wrote:

>> Thanks for reporting.  My understanding from
>> https://bugs.debian.org/628515 is that the intention is
>>
>> - print out compiler driver command lines, so that compiler errors are
>>   closely preceded with the command that produced them
>>
>> - no need to print out command lines for tools like ld that are
>>   themselves invoked by the compiler driver, but do print out those
>>   command lines if you invoke them directly
>>
>> I don't think verbosity for the sake of verbosity was ever a goal
>> here, so ideas for better wording would be very welcome.
>>
>> In https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628515;msg=30
>> I proposed wording along the lines of
[... wording snipped ...]
> IIRC my hope was to generalise the recommendation to apply to as many
> different build systems as possible.  For example, packages whose builds
> do not involve any compilers and linkers.
>
> We could restore your text in a footnote or a "For example ..."
> paragraph?

Thanks.  Unfortunately, that wouldn't address Clément's concern about
maximal verbosity (1) not being consistent with reasonableness and (2)
not being concrete enough to easily act on as a packager.

Can we make it about not abbreviating build command lines, instead of
maximal verbosity?  For example, enabling more warnings might make a
compiler produce more verbose output, but it isn't the goal of this
requirement.  Similarly, enabling compiler tracing might make a
compiler produce more verbose output, and some people might even like
that, but I don't believe that was the goal of this policy
requirement.

Hope that helps,
Jonathan



Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-02 Thread Sean Whitton
Hello Jonathan,

On Wed 01 Aug 2018 at 10:47PM -0700, Jonathan Nieder wrote:

> Thanks for reporting.  My understanding from
> https://bugs.debian.org/628515 is that the intention is
>
> - print out compiler driver command lines, so that compiler errors are
>   closely preceded with the command that produced them
>
> - no need to print out command lines for tools like ld that are
>   themselves invoked by the compiler driver, but do print out those
>   command lines if you invoke them directly
>
> I don't think verbosity for the sake of verbosity was ever a goal
> here, so ideas for better wording would be very welcome.
>
> In https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628515;msg=30
> I proposed wording along the lines of
>
>   terse
>   
>   Compiler and linker commands used to build the package
>   should not be abbreviated in the log unless this
>   tag is supplied.
>
>   Packages built with cmake, autotools, or
>   the Linux kernel build system can implement this by
>   passing the parameters V=1 and
>   VERBOSE=1 by default as arguments to
>   make and omitting them when the terse tag is
>   supplied.
>   
>
> I am not sure why this suggestion got generalized to "as verbose as
> reasonably possible" in the patch that replaced it.

IIRC my hope was to generalise the recommendation to apply to as many
different build systems as possible.  For example, packages whose builds
do not involve any compilers and linkers.

We could restore your text in a footnote or a "For example ..."
paragraph?

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-02 Thread Sean Whitton
Hello,

On Thu 02 Aug 2018 at 12:16PM +0800, Clément Hermann wrote:

> "as verbose as reasonably possible" seems incompatible with "maximally verbose
> output", at least in some cases (golang packages come to mind).
>
> Would it be possible to clarify this ?

Yes.  Let's improve this.

Would s/maximally// be sufficient?  Or s/maximally/more/ ?

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-01 Thread Jonathan Nieder
Hi,

Clément Hermann wrote:

> 4.9 states:
> The package build should be as verbose as reasonably possible.
> This means that ``debian/rules`` should pass to the commands it
> invokes options that cause them to produce maximally verbose
> output.
>
> "as verbose as reasonably possible" seems incompatible with "maximally verbose
> output", at least in some cases (golang packages come to mind).
>
> Would it be possible to clarify this ?

Thanks for reporting.  My understanding from
https://bugs.debian.org/628515 is that the intention is

- print out compiler driver command lines, so that compiler errors are
  closely preceded with the command that produced them

- no need to print out command lines for tools like ld that are
  themselves invoked by the compiler driver, but do print out those
  command lines if you invoke them directly

I don't think verbosity for the sake of verbosity was ever a goal
here, so ideas for better wording would be very welcome.

In https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628515;msg=30
I proposed wording along the lines of

terse

Compiler and linker commands used to build the package
should not be abbreviated in the log unless this
tag is supplied.

Packages built with cmake, autotools, or
the Linux kernel build system can implement this by
passing the parameters V=1 and
VERBOSE=1 by default as arguments to
make and omitting them when the terse tag is
supplied.


I am not sure why this suggestion got generalized to "as verbose as
reasonably possible" in the patch that replaced it.

Thanks and hope that helps,
Jonathan



Bug#905251: debian-policy: 4.9 paragraph is unclear (incompatibles statements)

2018-08-01 Thread Clément Hermann
Package: debian-policy
Version: 4.2.0.0
Severity: normal

Hi,

4.9 states:
The package build should be as verbose as reasonably possible.
This means that ``debian/rules`` should pass to the commands it
invokes options that cause them to produce maximally verbose
output.

"as verbose as reasonably possible" seems incompatible with "maximally verbose
output", at least in some cases (golang packages come to mind).

Would it be possible to clarify this ?

Cheers,

-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.17.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8), 
LANGUAGE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages debian-policy depends on:
ii  libjs-sphinxdoc  1.7.6-1

debian-policy recommends no packages.

Versions of packages debian-policy suggests:
ii  doc-base  0.10.8

-- no debconf information