Re: coordination between lintian/piuparts/adequate

2024-12-11 Thread Serafeim (Serafi) Zanikolas
hi Holger, thanks for the feedback.

On Wed Dec 11, 2024 at 11:15 AM CET, Holger Levsen wrote:
> On Tue, Dec 10, 2024 at 09:38:57PM +0100, Serafeim (Serafi) Zanikolas wrote:
> > > Probably adequate is the logical place for this test, but adequate
> > > doesn't build/run on ports architectures since it moved to golang,
> > > so piuparts should probably keep its tests on those arches until
> > > adequate moves to a more portable language or golang gets ported.
> > that's because unsupported ports architectures have not caught up to go 
> > 1.21,
> > which was released ~1.5 year ago. I'd claim that that says more about the
> > viability of those ports, than the suitability of go for Debian tooling. if 
> > you
> > feel strongly otherwise, I'd be happy to continue this discussion with a 
> > wider
> > audience at  rather than reply here
>
> I dont feel strongly about this, but I'd like to point out that I
> disagree. IMO it was wrong to rewrite adequate (as any central QA tool
> for Debian) in a language which is not available *everywhere*.

I'll reply separately to this (addressing -devel) because I think that this
subject warrants wider visibility.

> > piuparts relies on humans to file bugs. autopkgtest on the other hand blocks
> > package migration to testing (that is, when one does not run autopkgtst 
> > before
> > upload). it's nice that some humans (including yourself) file bugs, but that
> > doesn't seem viable long-term. 
>
> >90% of the piuparts bugs in the last 2 decades have been filed by 3 people,
> this might not seem viable long-term to you, but in practice it has been
> proven to be viable long-term.
>
> also: piuparts failures block migrations without anyone having to file bugs,
> just like autopkgtest. (oh, and for autopkgtests related bugs, there are also
> very few humans filing them.)

is that really the case for piuparts for adequate results? the checked-in code
has "settings.warn_if_inadequate = True" so piuparts doesn't treat them as
errors. if that default is overriden and adequate errors are actually reported
as piuparts errors, thereby blocking migrations to testing, it'd be weird if
what Paul wrote:
> IIRC piuparts.d.o doesn't expose adequate results to tracker.d.o,
is true (as in, migration is blocked without a hint as to why)

in any case, imho the main benefit of running adequate in piuparts is
archive-wide coverage. I'd prefer to see adequate ran directly as an
autodep8-style test (but fully expect that to be a slow and painful process) to
avoid the downsides of piuparts:

- I expect more people to be running pre-upload, autopkgtest than piuparts
- adding new tags in adequate requires also updating piuparts, for the latter to
  use the new functionality (arguably this could be fixed by not hardwiring a
  tag names in piuparts)
- configuring adequate (e.g. to disable certain checks) is much simpler
  with autopkgtest than when one has to wire things via piuparts

thanks,
serafi


signature.asc
Description: PGP signature


criteria for acceptable languages for central QA tools in Debian (was: Re: coordination between lintian/piuparts/adequate)

2024-12-11 Thread Serafeim (Serafi) Zanikolas
[forking to -devel]

On Wed Dec 11, 2024 at 11:15 AM CET, Holger Levsen wrote:
> On Tue, Dec 10, 2024 at 09:38:57PM +0100, Serafeim (Serafi) Zanikolas wrote:
> > > On Sat Dec 7, 2024 at 5:15 AM CET, Paul Wise wrote:
> > > Probably adequate is the logical place for this test, but adequate
> > > doesn't build/run on ports architectures since it moved to golang,
> > > so piuparts should probably keep its tests on those arches until
> > > adequate moves to a more portable language or golang gets ported.
> > that's because unsupported ports architectures have not caught up to go 
> > 1.21,
> > which was released ~1.5 year ago. I'd claim that that says more about the
> > viability of those ports, than the suitability of go for Debian tooling. if 
> > you
> > feel strongly otherwise, I'd be happy to continue this discussion with a 
> > wider
> > audience at  rather than reply here
>
> I dont feel strongly about this, but I'd like to point out that I
> disagree. IMO it was wrong to rewrite adequate (as any central QA tool
> for Debian) in a language which is not available *everywhere*.

I'd like to discuss this with a focus on general principles, and only discuss
specifics (adequate, golang) to the extent that it helps reason about general
principles.

so we have a qa testing package that was written 11y ago in perl, and has been
orphaned for almost all of that time (10y!). it's not critical but it does serve
a purpose, and it's therefore nonideal that it's been orphaned for so long.
someone takes it over and rewrites it in a language that runs in all supported
arches, and likely in many ports too as long as they keep up with a relatively
recent version of the language (in this case, a version released 1.5y ago).

given the above, this feedback is very surprising to me:
> IMO it was wrong to rewrite adequate (as any central QA tool for Debian) in a
> language which is not available *everywhere*.

first, I find this concern of little practical relevance: most adequate checks
are not arch-specific.

second, I'd not have adopted adequate if I had to maintain it in perl. given
this clarification, would you prefer the status quo (poor ports coverage but
active adequate maintenance) or would you rather still prefer an unmaintained
adequate with 100% ports coverage?

on a meta level: I find it incredible that this conversation needs to be had at
all, given the increasing median age of Debian contributors, and the limited
popularity of perl among younger people

thanks,
serafi


signature.asc
Description: PGP signature


Re: coordination between lintian/piuparts/adequate

2024-12-11 Thread Holger Levsen
On Tue, Dec 10, 2024 at 09:38:57PM +0100, Serafeim (Serafi) Zanikolas wrote:
> > Probably adequate is the logical place for this test, but adequate
> > doesn't build/run on ports architectures since it moved to golang,
> > so piuparts should probably keep its tests on those arches until
> > adequate moves to a more portable language or golang gets ported.
> that's because unsupported ports architectures have not caught up to go 1.21,
> which was released ~1.5 year ago. I'd claim that that says more about the
> viability of those ports, than the suitability of go for Debian tooling. if 
> you
> feel strongly otherwise, I'd be happy to continue this discussion with a wider
> audience at  rather than reply here

I dont feel strongly about this, but I'd like to point out that I
disagree. IMO it was wrong to rewrite adequate (as any central QA tool
for Debian) in a language which is not available *everywhere*.

> piuparts relies on humans to file bugs. autopkgtest on the other hand blocks
> package migration to testing (that is, when one does not run autopkgtst before
> upload). it's nice that some humans (including yourself) file bugs, but that
> doesn't seem viable long-term. 

>90% of the piuparts bugs in the last 2 decades have been filed by 3 people,
this might not seem viable long-term to you, but in practice it has been
proven to be viable long-term.

also: piuparts failures block migrations without anyone having to file bugs,
just like autopkgtest. (oh, and for autopkgtests related bugs, there are also
very few humans filing them.)


-- 
cheers,
Holger

 ⢀⣴⠾⠻⢶⣦⠀
 ⣾⠁⢠⠒⠀⣿⡁  holger@(debian|reproducible-builds|layer-acht).org
 ⢿⡄⠘⠷⠚⠋⠀  OpenPGP: B8BF54137B09D35CF026FE9D 091AB856069AAA1C
 ⠈⠳⣄

Any business accepting Bitcoin is participating in the human race’s suicide.


signature.asc
Description: PGP signature


Re: criteria for acceptable languages for central QA tools in Debian (was: Re: coordination between lintian/piuparts/adequate)

2024-12-11 Thread Otto Kekäläinen
Hi,

> [forking to -devel]
>
> On Wed Dec 11, 2024 at 11:15 AM CET, Holger Levsen wrote:
> > On Tue, Dec 10, 2024 at 09:38:57PM +0100, Serafeim (Serafi) Zanikolas wrote:
> > > > On Sat Dec 7, 2024 at 5:15 AM CET, Paul Wise wrote:
> > > > Probably adequate is the logical place for this test, but adequate
> > > > doesn't build/run on ports architectures since it moved to golang,
> > > > so piuparts should probably keep its tests on those arches until
> > > > adequate moves to a more portable language or golang gets ported.
> > > that's because unsupported ports architectures have not caught up to go 
> > > 1.21,
> > > which was released ~1.5 year ago. I'd claim that that says more about the
> > > viability of those ports, than the suitability of go for Debian tooling. 
> > > if you
> > > feel strongly otherwise, I'd be happy to continue this discussion with a 
> > > wider
> > > audience at  rather than reply here
> >
> > I dont feel strongly about this, but I'd like to point out that I
> > disagree. IMO it was wrong to rewrite adequate (as any central QA tool
> > for Debian) in a language which is not available *everywhere*.
>
> I'd like to discuss this with a focus on general principles, and only discuss
> specifics (adequate, golang) to the extent that it helps reason about general
> principles.

I don't have the full context here, but to me it seems fine to use
various programming languages for the tools. The language landscape is
not like version control, where one solution (git) is by far more
popular than anything else, and using an obscure alternative would be
bound to cause friction to everybody else.

If acceptable languages is reduced to a list of top-10 or top-5 on
basis of general popularity, the specific language here (Go) would be
on it. If the list had certain criteria, such as support for (almost)
all Debian architectures, Go would still be on the list.

I am not young anymore, but I and young enough to not have learnt Perl
in the 90s, and if I see a Perl tool in Debian, I tend to not
contribute to it. My own preference is Python, but I see a lot of good
tools being written in Go and in Debian we have multiple recent new
and very capable contributors doing stuff in Go (Thanks Serafi for
adquate! Another is Nicolas who wrote lintian-ssg in Go). I am happy
to touch occasional Go stuff to help grow the Debian community, or any
other language that is reasonably mainstream and has the full
toolchain packaged and maintainer team in Debian.