>>>>> "Bill" == Bill Allombert <ballo...@debian.org> writes:

    Bill> On Sun, May 12, 2019 at 08:36:16AM -0400, Sam Hartman wrote:
    >> 
    >> Now given our community it's entirely possible that the question
    >> of whether it's a layering violation in our existing policy
    >> architecture may influence whether people want to require it, so
    >> we may have to face that sooner rather than later.
    >> 
    >> That said, it's been my experience as an engineer that interface
    >> boundaries shift over time and that there are a lot of factors
    >> that influence where we draw them.  As you pointed out in your
    >> original mail, we do recommend specific tools including
    >> dpkg-genchanges and dpkg-gencontrol.  I totally could generate a
    >> changes file without using those tools.  In most cases we'd agree
    >> that is a bug.
    >> 
    >> It seems fairly obvious that dpkg-dev is special and singular.

    Bill> Note that policy does not actually require that dpkg is
    Bill> used. Instead it goes to great length to describe what is the
     Bill> interface to dpkg that packages must relie on.

That's not really true.

policy>In the normative part of this manual, the words *must*, *should* and
policy>*may*, and the adjectives *required*, *recommended* and *optional*,
policy>are used to distinguish the significance of the various guidelines in
policy>this policy document. Packages that do not conform to the guidelines
policy> denoted by *must* (or *required*) will generally not be considered
policy> acceptable for the Debian distribution. Non-conformance with
policy> guidelines denoted by *should* (or *recommended*) will generally be
policy> considered a bug, but will not necessarily render a package unsuitable
policy> for distribution. 

Then later in 4.9:

policy>    Both "binary-*" targets should depend on the "build" target, or on
policy>    the appropriate "build-arch" or "build-indep" target, so that the
policy>    package is built if it has not been already. It should then create
policy>    the relevant binary package(s), using "dpkg-gencontrol" to make
policy>    their control files and "dpkg-deb" to build them and place them in
policy>    the parent of the top level directory.

Thus it is a bug to not use dpkg-genchanges and dpkg-gencontrol and
dpkg-deb.

     Bill> This makes
    Bill> sense since this allow dpkg to evolve without breaking package
    Bill> policy compliance.

Actually, I'd argue that mandating use of dpkg-genchanges et al makes
sense, as policy does today.
It allows dpkg to evolve and do things like update the checksums we use,
add new formats for changes files, etc and get wide adoption quickly
across the archive.

I'm not sure what sort of evolution you're talking about, but I think we
get better evolution by using a single tool that can easily be changed
than by using multiple tools to approach the same purpose.

Using multiple tools allows us to experiment and allows for cases where
different workflows/packaging designs work in different situations.
However it makes it harder to deploy new practices.

I think it's clear that at the dpkg-dev level, the benefits of multiple
tools are not justified, so policy correctly tells people to use tools
from dpkg-dev.

If you look at the question with a policy hat on, we might be asking
ourselves whether we have enough experience with the next level up that
telling people to use one tool at that next higher level is also worth
it.

Reply via email to