Hi Paul,

Thanks very much for your reply.

For what it's worth, I don't necessarily need britney2 to handle these
migrations "correctly", and I don't think Debian does either. However,
there is some behavior instability when arch-indep and arch-dep packages
are proposed in different ways in the same source. It would be okay if
britney2 simply threw the migration out with the message "this is too
complicated, some human should tell the archive what to do." Instead, it
either passes the arch-indep package through as a rider on another
change or seems to ignore the package entirely.

On Wed, Feb 21, 2024, at 11:59 PM, Paul Gevers wrote:
> On 21-02-2024 23:50, Dalton Durst wrote:
>
> > If the
> > package were binNMU'd, though, britney would migrate everything
> > including the arch:all package if it passed checks.
>
> In Debian, binNMU-ing a arch:all package is known to not work. I don't
> know if this bug is the reason why it doesn't work, but I've been taught
> this when I joined the Release Team. I think I tried once by accident
> (or ignorance) and the binNMU didn't work.

Sorry, I might not have been as clear as possible here. The problem is
that the arch:all packages won't migrate unless there's another valid
migration item in the source. So an arch:all package could be stuck in
unstable for a while without moving. As soon as a valid binNMU appears
(without replacing the arch:all package, as is policy), the arch:all
package might migrate too.

> > This behavior
> > instability might be undesirable.
>
> But there _might_ be more infrastructure problems than britney2.

Agreed. In fact, I found even spookier behavior in britney2 while adding
more tests.

To explain: when this odd situation occurs, the arch:all package seems
to be checked for validity, at least a little. If it is installable, it
migrates with the binNMU. If it is not installable, it does not migrate
with the binNMU. This seems like a good thing, britney2 is somehow
avoiding a non-installable package in testing. However, in all cases,
the excuses output does not accurately reflect the decisions that were
made during britney's run.

Depending on how the downstream software actually performs migration,
you could still get different results from the same britney run. When
the arch:all package is "accepted" (scare quotes because britney2 says
the package is ignored in excuses), it appears in HeidiResult but not
HeidiResultDelta.

This is a little hard to explain, so I've attached another three tests
which demonstrate the situation. "arch-all-migrates-with-broken"
demonstrates what happens when the arch:all package itself is not
installable, but the binNMU is. "arch-all-migrates-with-others" shows
an OK arch:all and arch:any migration (with the :all package appearing
in HeidiResult but not the delta). "arch-all-migrates-without-others"
shows what happens "at rest," when all arch-dep binaries for the source
are already in testing. "...without-others" should be a repeat of the
test attached in my first message, but they can all be run with
"bin/runtests ../britney2/britney.py t test-out /arch-all-migrates.*/"
which is nice.

>
> > The code which skips arch:all packages dates all the way back to
> > britney2's original import[1], so it's not clear if it's still
> > load-bearing.
>
> In the old days, an arch:all package was never build on a buildd, but
> uploaded by the uploader (together with the source). It's very possible
> that that fact is related to the original intent.

Makes sense.

> I am currently working an a change to britney2 that (based on
> Package-List entries in the Sources) will prevent migration of sources
> which build arch:all binaries. That will also work around bug #915948
> (in dak) and fix bug #887060 (in britney2 for Sources build from
> source.changes files). From our conversation on IRC I take it that that
> wouldn't solve *your* case as you're using aptly and apparently that
> builds the Sources (with or without a Package-List) from what's in the
> archive so it would still run into this issue.

That sounds like a really good addition. I suppose it would mark a
change in my situation because the unstable source package's
Package-List would be different from the testing package. Maybe that
change would be enough to get some output from britney2 when this odd
situation is hit?

Thanks again,
Dalton

Attachment: 0001-WIP-Add-tests-for-new-arch-all-binaries.patch
Description: Binary data

Reply via email to