Hi Adrian,

On 27/02/26 at 18:03 +0200, Adrian Bunk wrote:
> On Wed, Feb 11, 2026 at 01:26:48PM +0100, Lucas Nussbaum wrote:
> > On 06/02/26 at 13:32 +0200, Adrian Bunk wrote:
> > > On Fri, Feb 06, 2026 at 09:40:51AM +0100, Lucas Nussbaum wrote:
> > > >...
> > > > The common denominator used by orig-check is the use of debian/watch.
> > > >...
> > > > One case that is difficult to deal with is workflow changes (even minor)
> > > > outside of new upstream versions. For example, among the current
> > > > orig-check regressions, there's:
> > > > - vite: 
> > > > https://orig-check.debian.net/orig-check/result/4506d8769158822444ef829488c2e3107a3844a5d3cad85ef062214d9808ba07
> > > >   In 1.4-6, the maintainer updated debian/watch to use the tag-based 
> > > > tarball
> > > >   generated by gitlab, while it previously used the manually-generated
> > > >   "release asset" tarball. Since that was done outside of a new upstream
> > > >   release, the tarball used for 1.4-6 does not match the method
> > > >   described in 1.4-6's debian/watch, but rather the method described in
> > > >   1.4-1's debian/watch.
> > > 
> > > Such "regressions" are not rare, given the number of packages in unstable.
> > > 
> > > Paul gave an example of an upstream where no releases were expected with
> > > debian/watch following git commits - but then there was a one-off tarball
> > > release that is now in unstable.
> > > 
> > > It is also very common that debian/watch follows only stable releases,
> > > and it wouldn't be uncommon if a maintainer anyhow decides to upload
> > > an RC version to unstable.
> > > 
> > > A maintainer could also use debian/watch on tarballs only for being
> > > notified about new releases, with the sources in Debian being created
> > > in a different way like from a git tree with submodules in a workflow
> > > without tarballs.
> > > 
> > > debian/watch is simply meant for a different purpose.
> > 
> > I don't think that's true. Of course the historical/original purpose of
> > debian/watch is the detection of new upstream releases, but it has also
> > been used to generate orig tarballs for a long time. This was first used
> > only to download new upstream versions, but even its use to download a
> > specific version is quite common if you look at
> > https://codesearch.debian.net/search?q=uscan.*--download-%28current-%29%3Fversion&literal=0
> 
> "downloading the next version" and "how the current version was 
> downloaded" are identical most of the time, but not always.
> 
> When you start with wanting to block testing migration, then every 
> obscure corner case suddenly becomes relevant.
> 
> > Maybe we need an opt-out mechanism for packages to signal that they only
> > use debian/watch to detect new upstream versions, and that the
> > generation of orig tarballs is done using a different mechanism.
> >...
> 
> What exactly are the use case(s) you have in mind?
> 
> Some upstreams provide only a tarball for the latest version, so 
> everything you are doing might work fine for testing migration but
> it would never be possible to verify it later for a version of that
> package in stable.
> 
> Upstream locations disappearing is not rare.
> 
> Upstream might later provide a tarball with the same name but different 
> contents - every obscure or stupid issue imaginable has already happened
> to some package at some point in time.
> 
> AFAIR there was some talk from reproducible folks about comparing 
> whether different distributions have the same sources, I could see
> possible use cases in that area.

Note that some of the cases you mention would not be affected by
blocking migrations on *regressions*, since they would not be
regressions compared to the current state in testing. (if it's already
failing for the version in testing, for example because the upstream
only provides a tarball for the latest version)

And some other cases which are real regressions are probably worth being
checked manually, such as if the upstream updated the tarball with a
different content.

When I made the suggestion of blocking migration on regressions, it was
obvious to me that this would come with a way to ignore some corner
cases manually (similarly to how it's done for other tests used for
gating migrations).

When I look at the current regressions compared to forky, I see lots of
minor maintainer mistakes such as forgetting to push git tags:
https://debaudit.debian.net/upstream2orig/regressions/forky
https://debaudit.debian.net/git2dsc/regressions/forky
https://debaudit.debian.net/git2orig/regressions/forky
Those are probably worth detecting systematically and fixing.

Maybe I should try to report severity:minor bugs for those problems for
some time (after analyzing each of them), to see what kind of feedback I
get.

Lucas

Reply via email to