Moving DebCamp sprint forward one day

2017-07-21 Thread Sean Whitton
Hello all,

I've moved the DebCamp sprint forward one day, to 1st August.

The thought is that discussion can begin on that day, people can ask
process questions, and then those discussions and patches can be worked
on for the rest of the week.

https://wiki.debian.org/Sprints/2017/DebianPolicy

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#757760: debian-policy: please document build profiles

2017-07-21 Thread Helmut Grohne
On Tue, Jul 18, 2017 at 10:33:06AM +0100, Simon McVittie wrote:
> I suspect stage1 might also still be useful for (possibly pre-emptively)
> breaking cycles involving build-time vs. runtime dependencies, like the one
> that historically existed between glib2.0 and dbus: it seems more
> straightforward to have one profile name than to invent a series of
> nodbus, noglib, noqt, etc. if each one will only be used in practice in
> a small number of places to break cycles.

That may all be true, but simply using "stage1" is harmful in the long
run, because it renders "stage1" meaningless. We have a pile of "stage1"
profiles in the archive already and we essentially lost structure on
them. Some modify binary packages. Others drop binary packages. You
cannot tell what "stage1" does without looking at a particular source
package. The only meaning left is that it is often used with
bootstrapping in unspecified ways, but it doesn't even tell whether
that's native or cross and whether it actually is legacy.

> I'm not sure I agree with this. A maintainer can't reliably know all the
> cycles their package might be involved in over time, sure, but they *can*
> know what is the bare minimum of functionality that their package can
> have and still be useful for build-dependencies, and that's how I used
> stage1 in src:dbus.

It seems that the essence of dbus' stage1 is to reduce as much
functionality as possible. Why not call it pkg.dbus.minimal instead?
That name would directly carry the intention. (See Josch's mail for
rationale.)

We should actually go one step further: We should require that any
profile being used is documented in a "canonical" place. For "standard"
profiles (nocheck, nopython, ...) that'll be some central document (e.g.
policy). For extension profiles (pkg.$sourcepackage.$anything) that'll
be debian/README.source or something similar. Without such documentation
we'll only enlarge the mess we have with "stage1" now.

Let me give a recent example for comparison. I recently had to add a
profile to unbound to break a cycle. unbound builds itself four times
with varying ./configure flags. Reducing it to the one relevant build
pass building the shared library was the obvious thing to do. I could
have called the profile "stage1", but I think "pkg.unbound.libonly" much
better tells what it does. The very same logic applies to dbus, no?

While at it, I'd like to emphasize that it is not forbidden or even
discouraged to use pkg.foo.someprofile in source package bar. The only
requirement is that foo's maintainer agrees with that use (e.g. by
documenting how it is supposed to be used).

I see no urgency in removing "stage1" profiles now. They're a mess, but
a working mess. What I'd like to avoid is furthering the mess. So let's
not add more "stage1" than we have now please. Use descriptive profiles
for new stuff.

Helmut