On Mon, 05 Aug 2024 at 09:02:51 +0200, Marc Haber wrote:
> On Mon, Aug 05, 2024 at 02:07:54AM +0200, Timo Röhling wrote:
> > > If trixie was identified as trixie, and sid was identified as unstable,
> > > what compromise would be, er, compromised, precisely?
> > Unstable would become less useful at weeding out bugs in packages before
> > they reach testing,
> 
> Can you elaborate on that? Why does providing more and better
> information make it harder to identify bugs?

I think the concern is somewhere along these lines:

* Some package, let's call it foobar, reads os-release and changes its
  behaviour according to whether it sees trixie/testing or unstable

* foobar_1.2-3 is in unstable and works correctly there

* The testing migration scripts let it migrate

* trixie's os-release is different from unstable's (this is the essence
  of what Luca is asking for)

* Unfortunately, when it sees trixie's os-release, foobar_1.2-3 behaves
  incorrectly

* Now our mechanisms to avoid regressions in testing have failed to
  prevent a regression, because the regression was never visible to users
  of unstable, and in fact didn't exist until foobar migrated

(All of this assumes the current state, where trixie = testing. The
same would be true, with appropriate name changes, during development
of forky or later.)

That's my understanding of why we try to make unstable as similar as
possible to a hypothetical future state of testing, and ideally
programmatically indistinguishable - unless you specifically go looking
at the apt configuration, at which point you're responsible for looking
at the *whole* apt configuration, and not just trying to derive a single
suite name from it.

A mitigation is that when autopkgtest tests a proposed migration, what
it is actually testing is a hypothetical future state of testing where
we pretend that this one package and its mandatory dependencies have
already migrated, in order to answer the question: if we really allowed
this package to migrate, would it break anything?

So if foobar has good enough autopkgtest coverage, *that* would stop it
migrating - but this is also why it's important that autopkgtests work
with the apt configuration that they're given (as Helmut described in more
detail in <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1077764#278>)
instead of figuring out whether they're on testing or unstable and
then using that information (and only that information) to construct a
test fixture.

There is a completely valid trade-off to be made about whether the
concern that I've described here (or similar reasons why testing and
unstable should be hard to distinguish) is more or less important than
the reasons why Luca and others want testing and unstable to be easy to
distinguish. That's fine! We make decisions all the time about which
option is better, or about which option is less-bad. But I think it's
an over-simplification to imply that this is a decision with only valid
arguments in one direction, and no valid arguments in the other. When
I talk about seeing both sides of a dispute, this is part of what I mean.

    smcv
    not a TC member

Reply via email to