Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-08-17 Thread Louis-Philippe Véronneau

On 2022-07-27 16 h 32, Julian Gilbey wrote:

On Wed, Jul 27, 2022 at 07:45:12PM +0100, Julian Gilbey wrote:

On Wed, Jul 27, 2022 at 10:26:33AM -0400, Louis-Philippe Véronneau wrote:

The way I see it:

1. We should have a Lintian tag for packages not using the new
pybuild-autodep8 autopkgtest. It would be even better if this tag would be a
pointed hint that identified 'manually' written unit test autopkgtests that
could be replaced.

This way, you get something like:

python-foo source: not-using-pybuil-autodep8 [debian/tests/unittests]

for python packages that have old 'manually' written unit test autopkgtests
and:

python-foo source: not-using-pybuild-autodep8 [no-autopkgtest]

for python packages without any autopkgtest.

2. lintian-brush (or something else, but I think lintian-brush is the right
tool) would go over these packages to:

2.1 Add the new autodep8 autopkgtests and build the package to see if they
pass
2.2 Remove the "manual" unit test autopkgtests if 2.1 succeeds
2.3 Open a bug report if 2.1 fails


I'd be wary about 2.2 and 2.3.  I have several packages where I know
that an automated test will fail; there are all sorts of weird cases
where I've had to write tests manually.  I would also be quite cross
if manually crafted tests were automatically removed, especially in
cases such as Simon mentioned where they do things that that
automatically generated test does not do.  Another thing I could
imagine happening is that the automated test succeeds in a trivial way
- it succeeds but doesn't actually test much because of the nature of
the package.

On the other hand, a bug report saying something like the following
seems much more reasonable: "We've tested this package using the
automated autopkgtest system and it seems to work by adding the line
'Testsuite: autopkgtest-pkg-pybuild'; please check that the automated
tests cover all of the tests of your manually written debian/tests/*
and if so, then please remove them.  The autopkgtest-pkg-pybuild logs
are attached."  This would give the maintainer the chance to decide
how best to proceed.


Here's another alternative to steps 2.1-2.3 based on this:

  For packages which currently have manually-written autopkgtests:

  2.A Try removing debian/tests and adding Testsuite:
  autopkgtest-pkg-pybuild to debian/control, then building the
  package and running autopkgtest.

  2.B If this works, then submit a bug report to the BTS as I suggested
  above.

  2.C If this does not work, don't do anything more; trust that the
  maintainer knew what they were doing when they wrote the manual
  autopkgtests.

  For packages which don't currently have manually-written
  autopkgtests:

  2.A' Try adding Testsuite: autopkgtest-pkg-pybuild to debian/control,
   then building the package and running autopkgtest.

  2.B' If this works, then either Janitor adds this line to
   debian/control or submit a bug report to the BTS to recommend
   this.  (But we would not expect Janitor to do step 2.1', so this
   might have to be a different setup, or maybe the script doing
   2.A' could leave a list of packages for Janitor, or something
   like that.)

  2.C' If this does not work, submit a wishlist bug to the BTS to
   recommend that the maintainer adds some autopkgtest tests,
   either by making the autodep8 system work or by writing some
   manual tests.

I'd be wary about adding lintian tags for this, though: with so many
packages not being able to use the autodep8 system (I vaguely recall
someone suggesting that a third of Python packages would not be able
to use the system), that's a lot of packages getting false positives.
In particular, for the suggested first version of
not-using-pybuild-autodep8 tag (which would probably be better named
manual-autopkgtest-could-be-pybuild-autodep8), how would lintian go
about identifying which packages fall into category 2.B and which into
2.C?  The second version of the tag (better named something like
no-autopkgtest-could-use-pybuild-autodep8, but that's still not very
good) is less problematic.


This all makes a lot of sense to me and I think this is the way forward, 
once the MR is merged. Thanks for the discussion.


--
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Louis-Philippe Véronneau
  ⢿⡄⠘⠷⠚⠋   po...@debian.org / veronneau.org
  ⠈⠳⣄



OpenPGP_0xE1E5457C8BAD4113.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-28 Thread Julian Gilbey
On Wed, Jul 27, 2022 at 09:32:19PM +0100, Julian Gilbey wrote:
> [...]
> > 
> > I'd be wary about 2.2 and 2.3.  I have several packages where I know
> > that an automated test will fail; there are all sorts of weird cases
> > [...]
> 
> I'd be wary about adding lintian tags for this, though: with so many
> packages not being able to use the autodep8 system (I vaguely recall
> someone suggesting that a third of Python packages would not be able
> [...]

I realise that I may have come across as quite negative.  Apologies if
that is the case - it was not my intention.  I think the
autopkgtest-pkg-pybuild/pybuild-autodep8 work is very helpful and a
positive addition to our infrastructure, and I'm very grateful to
those who've made it happen.

My only concern is with how it is introduced; because of the wide
variety of Python packages and the hugely varying nature of the
testsuites present in them (or not), I think that trying to force this
into packages is a poor idea.  (I wish that most of my packages could
simply use this pybuild-autodep8 tool.  I fear that this won't be the
case, but I will certainly adopt it for those which can.)

Best wishes,

   Julian



Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-27 Thread Julian Gilbey
On Wed, Jul 27, 2022 at 07:45:12PM +0100, Julian Gilbey wrote:
> On Wed, Jul 27, 2022 at 10:26:33AM -0400, Louis-Philippe Véronneau wrote:
> > The way I see it:
> > 
> > 1. We should have a Lintian tag for packages not using the new
> > pybuild-autodep8 autopkgtest. It would be even better if this tag would be a
> > pointed hint that identified 'manually' written unit test autopkgtests that
> > could be replaced.
> > 
> > This way, you get something like:
> > 
> > python-foo source: not-using-pybuil-autodep8 [debian/tests/unittests]
> > 
> > for python packages that have old 'manually' written unit test autopkgtests
> > and:
> > 
> > python-foo source: not-using-pybuild-autodep8 [no-autopkgtest]
> > 
> > for python packages without any autopkgtest.
> > 
> > 2. lintian-brush (or something else, but I think lintian-brush is the right
> > tool) would go over these packages to:
> > 
> > 2.1 Add the new autodep8 autopkgtests and build the package to see if they
> > pass
> > 2.2 Remove the "manual" unit test autopkgtests if 2.1 succeeds
> > 2.3 Open a bug report if 2.1 fails
> 
> I'd be wary about 2.2 and 2.3.  I have several packages where I know
> that an automated test will fail; there are all sorts of weird cases
> where I've had to write tests manually.  I would also be quite cross
> if manually crafted tests were automatically removed, especially in
> cases such as Simon mentioned where they do things that that
> automatically generated test does not do.  Another thing I could
> imagine happening is that the automated test succeeds in a trivial way
> - it succeeds but doesn't actually test much because of the nature of
> the package.
> 
> On the other hand, a bug report saying something like the following
> seems much more reasonable: "We've tested this package using the
> automated autopkgtest system and it seems to work by adding the line
> 'Testsuite: autopkgtest-pkg-pybuild'; please check that the automated
> tests cover all of the tests of your manually written debian/tests/*
> and if so, then please remove them.  The autopkgtest-pkg-pybuild logs
> are attached."  This would give the maintainer the chance to decide
> how best to proceed.

Here's another alternative to steps 2.1-2.3 based on this:

 For packages which currently have manually-written autopkgtests:

 2.A Try removing debian/tests and adding Testsuite:
 autopkgtest-pkg-pybuild to debian/control, then building the
 package and running autopkgtest.

 2.B If this works, then submit a bug report to the BTS as I suggested
 above.

 2.C If this does not work, don't do anything more; trust that the
 maintainer knew what they were doing when they wrote the manual
 autopkgtests.

 For packages which don't currently have manually-written
 autopkgtests:

 2.A' Try adding Testsuite: autopkgtest-pkg-pybuild to debian/control,
  then building the package and running autopkgtest.

 2.B' If this works, then either Janitor adds this line to
  debian/control or submit a bug report to the BTS to recommend
  this.  (But we would not expect Janitor to do step 2.1', so this
  might have to be a different setup, or maybe the script doing
  2.A' could leave a list of packages for Janitor, or something
  like that.)

 2.C' If this does not work, submit a wishlist bug to the BTS to
  recommend that the maintainer adds some autopkgtest tests,
  either by making the autodep8 system work or by writing some
  manual tests.

I'd be wary about adding lintian tags for this, though: with so many
packages not being able to use the autodep8 system (I vaguely recall
someone suggesting that a third of Python packages would not be able
to use the system), that's a lot of packages getting false positives.
In particular, for the suggested first version of
not-using-pybuild-autodep8 tag (which would probably be better named
manual-autopkgtest-could-be-pybuild-autodep8), how would lintian go
about identifying which packages fall into category 2.B and which into
2.C?  The second version of the tag (better named something like
no-autopkgtest-could-use-pybuild-autodep8, but that's still not very
good) is less problematic.

Best wishes,

   Julian



Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-27 Thread Julian Gilbey
On Wed, Jul 27, 2022 at 10:26:33AM -0400, Louis-Philippe Véronneau wrote:
> The way I see it:
> 
> 1. We should have a Lintian tag for packages not using the new
> pybuild-autodep8 autopkgtest. It would be even better if this tag would be a
> pointed hint that identified 'manually' written unit test autopkgtests that
> could be replaced.
> 
> This way, you get something like:
> 
> python-foo source: not-using-pybuil-autodep8 [debian/tests/unittests]
> 
> for python packages that have old 'manually' written unit test autopkgtests
> and:
> 
> python-foo source: not-using-pybuild-autodep8 [no-autopkgtest]
> 
> for python packages without any autopkgtest.
> 
> 2. lintian-brush (or something else, but I think lintian-brush is the right
> tool) would go over these packages to:
> 
> 2.1 Add the new autodep8 autopkgtests and build the package to see if they
> pass
> 2.2 Remove the "manual" unit test autopkgtests if 2.1 succeeds
> 2.3 Open a bug report if 2.1 fails

I'd be wary about 2.2 and 2.3.  I have several packages where I know
that an automated test will fail; there are all sorts of weird cases
where I've had to write tests manually.  I would also be quite cross
if manually crafted tests were automatically removed, especially in
cases such as Simon mentioned where they do things that that
automatically generated test does not do.  Another thing I could
imagine happening is that the automated test succeeds in a trivial way
- it succeeds but doesn't actually test much because of the nature of
the package.

On the other hand, a bug report saying something like the following
seems much more reasonable: "We've tested this package using the
automated autopkgtest system and it seems to work by adding the line
'Testsuite: autopkgtest-pkg-pybuild'; please check that the automated
tests cover all of the tests of your manually written debian/tests/*
and if so, then please remove them.  The autopkgtest-pkg-pybuild logs
are attached."  This would give the maintainer the chance to decide
how best to proceed.

Best wishes,

   Julian



Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-27 Thread Simon McVittie
On Wed, 27 Jul 2022 at 09:18:42 +0100, Julian Gilbey wrote:
> There seems to be little point running both pybuild-autopkgtest and a
> manually written debian/tests/* test suite.

I think it can make sense to have both. d/tests is the right place for
an integration test that checks things like "any user-facing executables
are correctly in the PATH", which an upstream-oriented test probably
cannot assert because you might be installing into ~/.local or similar.

Using src:tap.py as an example, pybuild-autopkgtest should presumably
replace d/tests/python3 and/or d/tests/python3-with-recommends (which
are tests for the library you get from "import tap"), but wouldn't test
the tappy(1) CLI entry point, which is tested by d/tests/tappy.

smcv



Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-27 Thread Louis-Philippe Véronneau

On 2022-07-27 04 h 18, Julian Gilbey wrote:


There seems to be little point running both pybuild-autopkgtest and a
manually written debian/tests/* test suite.  So would the script only
add pybuild-autopkgtest to packages which don't have a manually
written debian/tests/* suite?


The way I see it:

1. We should have a Lintian tag for packages not using the new 
pybuild-autodep8 autopkgtest. It would be even better if this tag would 
be a pointed hint that identified 'manually' written unit test 
autopkgtests that could be replaced.


This way, you get something like:

python-foo source: not-using-pybuil-autodep8 [debian/tests/unittests]

for python packages that have old 'manually' written unit test 
autopkgtests and:


python-foo source: not-using-pybuild-autodep8 [no-autopkgtest]

for python packages without any autopkgtest.

2. lintian-brush (or something else, but I think lintian-brush is the 
right tool) would go over these packages to:


2.1 Add the new autodep8 autopkgtests and build the package to see if 
they pass

2.2 Remove the "manual" unit test autopkgtests if 2.1 succeeds
2.3 Open a bug report if 2.1 fails

This way, we can imagine a transition that would be mostly automated. 
We'd probably have to fix the ones that failed to migrate manually, but 
it would be much less work :)


Cheers,

--
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Louis-Philippe Véronneau
  ⢿⡄⠘⠷⠚⠋   po...@debian.org / veronneau.org
  ⠈⠳⣄



OpenPGP_signature
Description: OpenPGP digital signature


Re: Notes from the DC22 Python Team BoF

2022-07-27 Thread Louis-Philippe Véronneau

On 2022-07-27 03 h 52, Thomas Goirand wrote:

On 7/25/22 09:37, Julian Gilbey wrote:

On Sat, Jul 23, 2022 at 07:52:19PM +0200, Louis-Philippe Véronneau wrote:

Hey folks,

We had a Python Team BoF at DC22 earlier today and I thought relaying 
the

notes we took in gobby here would be a good idea.


Thanks for the notes, Louis-Philippe, and sorry I couldn't join you!

A few comments


--
== python3.11 ==

python3.11 release has been delayed, from october 2022 to december 2022.
[...]


My 2 cents' worth is as the 3.9->3.10 transition took several months,
and was quite complicated, it is not wise to attempt the 3.10->3.11
before the freeze.  We could then potentially go straight to 3.12 a
few months after the bookworm freeze rather than going to 3.11 first.
And that will probably be quite painful.


I agree, also because 3.10 wont be EOL before Bookworm becomes LTS.


As I said during the BoF, I'm also in favor of sticking with 3.10 for 
bookworm.


I think we should aim for a stable Python ecosystem. Using the time we 
have left to iron out bugs and failures in our packages for 3.10 sounds 
like a much better decision than trying to fix a ton of RC bugs for 3.11 
in time for the final freeze.



However, it's quite tempting to upgrade to 3.11 because:
- our users will prefer having the latest stable release of Python in 
our latest release, rather than an old version.

- 3.11 has many optimization (it's said to be 25% faster)

So if we can at least TRY, it's not a so bad idea... Hopefully, we can 
take the decision to reverse if needed.


AFAIU, doko said it was pretty hard to go back, since that meant 
recompiling pretty much all the python extensions.


I'd much rather we don't waste tons of energy trying to get 3.11 and 
then deciding it's not working. We know we only have a 2-3 months window 
of opportunity to make the transition, IMO that's too short.


--
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Louis-Philippe Véronneau
  ⢿⡄⠘⠷⠚⠋   po...@debian.org / veronneau.org
  ⠈⠳⣄



OpenPGP_0xE1E5457C8BAD4113.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-27 Thread Julian Gilbey
On Tue, Jul 26, 2022 at 11:50:19AM -0300, Antonio Terceiro wrote:
> I think the notes did not capture the consensus correctly. The point was
> that it should be possible to automate updating the `Testsuite:` field
> to run tests with pybuild-autopkgtest, and that we should probably do
> that across team packages with the help of some scripting.

This makes more sense, thanks.

There seems to be little point running both pybuild-autopkgtest and a
manually written debian/tests/* test suite.  So would the script only
add pybuild-autopkgtest to packages which don't have a manually
written debian/tests/* suite?

Best wishes,

   Julian



Re: Notes from the DC22 Python Team BoF

2022-07-27 Thread Thomas Goirand

On 7/25/22 09:37, Julian Gilbey wrote:

On Sat, Jul 23, 2022 at 07:52:19PM +0200, Louis-Philippe Véronneau wrote:

Hey folks,

We had a Python Team BoF at DC22 earlier today and I thought relaying the
notes we took in gobby here would be a good idea.


Thanks for the notes, Louis-Philippe, and sorry I couldn't join you!

A few comments


--
== python3.11 ==

python3.11 release has been delayed, from october 2022 to december 2022.
[...]


My 2 cents' worth is as the 3.9->3.10 transition took several months,
and was quite complicated, it is not wise to attempt the 3.10->3.11
before the freeze.  We could then potentially go straight to 3.12 a
few months after the bookworm freeze rather than going to 3.11 first.
And that will probably be quite painful.


I agree, also because 3.10 wont be EOL before Bookworm becomes LTS.

However, it's quite tempting to upgrade to 3.11 because:
- our users will prefer having the latest stable release of Python in 
our latest release, rather than an old version.

- 3.11 has many optimization (it's said to be 25% faster)

So if we can at least TRY, it's not a so bad idea... Hopefully, we can 
take the decision to reverse if needed.


Cheers,

Thomas Goirand (zigo)



Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-26 Thread Louis-Philippe Véronneau
On 2022-07-26 20 h 13, Paul Wise wrote:
> On Tue, 2022-07-26 at 17:53 -0300, Antonio Terceiro wrote:
> 
>> Well the idea is to only actually commit the change and upload the
>> package with the new Testsuite value after ensuring that actually works,
>> i.e. that the autopkgtest passes.
> 
> This sounds like something for lintian and the Janitor. I suggest
> lintian because not all Python packages are in the team and I suggest
> the Janitor because it makes changes automatically, although I am not
> entirely sure if it runs autopkgtests yet?

I agree Lintian+Janitor is probably the best tool combo for this, yes.

If Jelmer agrees to do the Janitor part, I'll be happy to do the Lintian
part once the pybuild-autopkgtest MR has been merged and we've confirmed
this feature is ready for large-scale deployment.

-- 
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Louis-Philippe Véronneau
  ⢿⡄⠘⠷⠚⠋   po...@debian.org / veronneau.org
  ⠈⠳⣄



Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-26 Thread Paul Wise
On Tue, 2022-07-26 at 17:53 -0300, Antonio Terceiro wrote:

> Well the idea is to only actually commit the change and upload the
> package with the new Testsuite value after ensuring that actually works,
> i.e. that the autopkgtest passes.

This sounds like something for lintian and the Janitor. I suggest
lintian because not all Python packages are in the team and I suggest
the Janitor because it makes changes automatically, although I am not
entirely sure if it runs autopkgtests yet?

-- 
bye,
pabs

https://wiki.debian.org/PaulWise


signature.asc
Description: This is a digitally signed message part


Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-26 Thread Antonio Terceiro
On Tue, Jul 26, 2022 at 03:37:50PM +, Scott Kitterman wrote:
> 
> 
> On July 26, 2022 2:50:19 PM UTC, Antonio Terceiro  wrote:
> >On Mon, Jul 25, 2022 at 09:04:27AM +0100, Julian Gilbey wrote:
> >> On Sat, Jul 23, 2022 at 07:52:19PM +0200, Louis-Philippe Véronneau wrote:
> >> > == pybuild improvements ==
> >> > 
> >> > getting the autopkgtest MR in would be great
> >> > 
> >> > https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/27
> >> > 
> >> > We need people to test this MR some more, although it seems fairly 
> >> > mature.
> >> > 
> >> > It might be a good idea to have a line in d/control to let us migrate 
> >> > from
> >> > the existing autopkgtests running unit tests to the new automated MR.
> >> 
> >> I've been looking at this a bit more.  I'm not sure what this last
> >> paragraph means: the new "automated" autopkgtest will only be run if
> >> the maintainer explicitly adds:
> >> 
> >> Testsuite: autopkgtest-pkg-pybuild
> >> 
> >> to debian/control (see the autodep8 MR at
> >> https://salsa.debian.org/ci-team/autodep8/-/merge_requests/27/diffs -
> >> it will never automatically detect a pybuild package).
> >> And a maintainer would presumably only add that if they are also
> >> removing their existing debian/tests/control (or want to run the
> >> pybuild tests in addition).
> >> 
> >> An alternative would be for the autodep8 patch to try to determine
> >> whether to run pybuild-autopkgtest.  One approach could be:
> >> 
> >> if the package would run autopkgtest-pkg-python:
> >>   if debian/control does not contain an override_dh_auto_test stanza:
> >> run pybuild-autopkgtest
> >> 
> >> Note, though, that if autodep8 is called, it will run all of the
> >> detected tests.  (At least that is what I believe happens from reading
> >> /usr/bin/autodep8; I haven't double-checked this.)  So, for example,
> >> if a package specifies
> >> 
> >> Testsuite: autopkgtest-pkg-python
> >> 
> >> it will also run the autopkgtest-pkg-pybuild suite as it will be
> >> detected as being a Python package, and vice versa.  That is a
> >> possible reason *not* to use the above suggestion, as it would
> >> potentially run pybuild-autopkgtest even if not desired.
> >
> >I think the notes did not capture the consensus correctly. The point was
> >that it should be possible to automate updating the `Testsuite:` field
> >to run tests with pybuild-autopkgtest, and that we should probably do
> >that across team packages with the help of some scripting.
> 
> I suppose this is fine as long as whoever does it fixes all the resulting RC 
> bugs.

Well the idea is to only actually commit the change and upload the
package with the new Testsuite value after ensuring that actually works,
i.e. that the autopkgtest passes.

We are not suggesting to do this blindly across the packages, sorry for
not making that clear.


signature.asc
Description: PGP signature


Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-26 Thread Scott Kitterman



On July 26, 2022 2:50:19 PM UTC, Antonio Terceiro  wrote:
>On Mon, Jul 25, 2022 at 09:04:27AM +0100, Julian Gilbey wrote:
>> On Sat, Jul 23, 2022 at 07:52:19PM +0200, Louis-Philippe Véronneau wrote:
>> > == pybuild improvements ==
>> > 
>> > getting the autopkgtest MR in would be great
>> > 
>> > https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/27
>> > 
>> > We need people to test this MR some more, although it seems fairly mature.
>> > 
>> > It might be a good idea to have a line in d/control to let us migrate from
>> > the existing autopkgtests running unit tests to the new automated MR.
>> 
>> I've been looking at this a bit more.  I'm not sure what this last
>> paragraph means: the new "automated" autopkgtest will only be run if
>> the maintainer explicitly adds:
>> 
>> Testsuite: autopkgtest-pkg-pybuild
>> 
>> to debian/control (see the autodep8 MR at
>> https://salsa.debian.org/ci-team/autodep8/-/merge_requests/27/diffs -
>> it will never automatically detect a pybuild package).
>> And a maintainer would presumably only add that if they are also
>> removing their existing debian/tests/control (or want to run the
>> pybuild tests in addition).
>> 
>> An alternative would be for the autodep8 patch to try to determine
>> whether to run pybuild-autopkgtest.  One approach could be:
>> 
>> if the package would run autopkgtest-pkg-python:
>>   if debian/control does not contain an override_dh_auto_test stanza:
>> run pybuild-autopkgtest
>> 
>> Note, though, that if autodep8 is called, it will run all of the
>> detected tests.  (At least that is what I believe happens from reading
>> /usr/bin/autodep8; I haven't double-checked this.)  So, for example,
>> if a package specifies
>> 
>> Testsuite: autopkgtest-pkg-python
>> 
>> it will also run the autopkgtest-pkg-pybuild suite as it will be
>> detected as being a Python package, and vice versa.  That is a
>> possible reason *not* to use the above suggestion, as it would
>> potentially run pybuild-autopkgtest even if not desired.
>
>I think the notes did not capture the consensus correctly. The point was
>that it should be possible to automate updating the `Testsuite:` field
>to run tests with pybuild-autopkgtest, and that we should probably do
>that across team packages with the help of some scripting.

I suppose this is fine as long as whoever does it fixes all the resulting RC 
bugs.

Scott K



Re: pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-26 Thread Antonio Terceiro
On Mon, Jul 25, 2022 at 09:04:27AM +0100, Julian Gilbey wrote:
> On Sat, Jul 23, 2022 at 07:52:19PM +0200, Louis-Philippe Véronneau wrote:
> > == pybuild improvements ==
> > 
> > getting the autopkgtest MR in would be great
> > 
> > https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/27
> > 
> > We need people to test this MR some more, although it seems fairly mature.
> > 
> > It might be a good idea to have a line in d/control to let us migrate from
> > the existing autopkgtests running unit tests to the new automated MR.
> 
> I've been looking at this a bit more.  I'm not sure what this last
> paragraph means: the new "automated" autopkgtest will only be run if
> the maintainer explicitly adds:
> 
> Testsuite: autopkgtest-pkg-pybuild
> 
> to debian/control (see the autodep8 MR at
> https://salsa.debian.org/ci-team/autodep8/-/merge_requests/27/diffs -
> it will never automatically detect a pybuild package).
> And a maintainer would presumably only add that if they are also
> removing their existing debian/tests/control (or want to run the
> pybuild tests in addition).
> 
> An alternative would be for the autodep8 patch to try to determine
> whether to run pybuild-autopkgtest.  One approach could be:
> 
> if the package would run autopkgtest-pkg-python:
>   if debian/control does not contain an override_dh_auto_test stanza:
> run pybuild-autopkgtest
> 
> Note, though, that if autodep8 is called, it will run all of the
> detected tests.  (At least that is what I believe happens from reading
> /usr/bin/autodep8; I haven't double-checked this.)  So, for example,
> if a package specifies
> 
> Testsuite: autopkgtest-pkg-python
> 
> it will also run the autopkgtest-pkg-pybuild suite as it will be
> detected as being a Python package, and vice versa.  That is a
> possible reason *not* to use the above suggestion, as it would
> potentially run pybuild-autopkgtest even if not desired.

I think the notes did not capture the consensus correctly. The point was
that it should be possible to automate updating the `Testsuite:` field
to run tests with pybuild-autopkgtest, and that we should probably do
that across team packages with the help of some scripting.


signature.asc
Description: PGP signature


pybuild-autopkgtest (was: Notes from the DC22 Python Team BoF)

2022-07-25 Thread Julian Gilbey
On Sat, Jul 23, 2022 at 07:52:19PM +0200, Louis-Philippe Véronneau wrote:
> == pybuild improvements ==
> 
> getting the autopkgtest MR in would be great
> 
> https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/27
> 
> We need people to test this MR some more, although it seems fairly mature.
> 
> It might be a good idea to have a line in d/control to let us migrate from
> the existing autopkgtests running unit tests to the new automated MR.

I've been looking at this a bit more.  I'm not sure what this last
paragraph means: the new "automated" autopkgtest will only be run if
the maintainer explicitly adds:

Testsuite: autopkgtest-pkg-pybuild

to debian/control (see the autodep8 MR at
https://salsa.debian.org/ci-team/autodep8/-/merge_requests/27/diffs -
it will never automatically detect a pybuild package).
And a maintainer would presumably only add that if they are also
removing their existing debian/tests/control (or want to run the
pybuild tests in addition).

An alternative would be for the autodep8 patch to try to determine
whether to run pybuild-autopkgtest.  One approach could be:

if the package would run autopkgtest-pkg-python:
  if debian/control does not contain an override_dh_auto_test stanza:
run pybuild-autopkgtest

Note, though, that if autodep8 is called, it will run all of the
detected tests.  (At least that is what I believe happens from reading
/usr/bin/autodep8; I haven't double-checked this.)  So, for example,
if a package specifies

Testsuite: autopkgtest-pkg-python

it will also run the autopkgtest-pkg-pybuild suite as it will be
detected as being a Python package, and vice versa.  That is a
possible reason *not* to use the above suggestion, as it would
potentially run pybuild-autopkgtest even if not desired.

Best wishes,

   Julian



Re: Notes from the DC22 Python Team BoF

2022-07-25 Thread Julian Gilbey
On Sat, Jul 23, 2022 at 07:52:19PM +0200, Louis-Philippe Véronneau wrote:
> Hey folks,
> 
> We had a Python Team BoF at DC22 earlier today and I thought relaying the
> notes we took in gobby here would be a good idea.

Thanks for the notes, Louis-Philippe, and sorry I couldn't join you!

A few comments

> --
> == python3.11 ==
> 
> python3.11 release has been delayed, from october 2022 to december 2022.
> [...]

My 2 cents' worth is as the 3.9->3.10 transition took several months,
and was quite complicated, it is not wise to attempt the 3.10->3.11
before the freeze.  We could then potentially go straight to 3.12 a
few months after the bookworm freeze rather than going to 3.11 first.
And that will probably be quite painful.

> == pybuild improvements ==
> 
> getting the autopkgtest MR in would be great
> 
> https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/27
> 
> We need people to test this MR some more, although it seems fairly mature.
> 
> It might be a good idea to have a line in d/control to let us migrate from
> the existing autopkgtests running unit tests to the new automated MR.

I'll take this to a separate email.

> == lintian tags requests for the team ==
> 
> pollo will write you Python-related lintian tags. Ask him to.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004746  :-)

   Julian



Notes from the DC22 Python Team BoF

2022-07-23 Thread Louis-Philippe Véronneau

Hey folks,

We had a Python Team BoF at DC22 earlier today and I thought relaying 
the notes we took in gobby here would be a good idea.


--
== python3.11 ==

python3.11 release has been delayed, from october 2022 to december 2022.

python3.12 is planned for october 2023.

Debian testing freeze for transitions is in January 2023, which is very 
tight.


Do we want to try python3.11 in bookworm, or do we delay it for after 
the freeze?


One problem we'll likely have, is upstream python libraries might not 
have started playing with 3.11 already. It might be hard to try to use 
beta versions right now to try and prepare the transition.


Once the default version in the archive has changed, it's hard to revert 
to an older one.


Some packages like pandas and numba (and dart?) might need an exception 
from the Release Team to allow us to upload versions more compatible 
with 3.11 after the bookworm release.


For sure, this is a lot of work for me (zigo) on the OpenStack packages. 
On each Python 3 release, this makes me fix lots of stuff. At the 
moment, upstream OpenStack isn't even on Python 1.10 on its CI...


As a datapoint, Ruby always releases on Christmas, and the Ruby team has 
never even attempted to push that as a default in the next Debian stable 
release.


3.11 beta 4 is already in unstable, people can start trying to build 
against it.


3.10 EOL is october 2026.

upstream is working on lots of speed optimizations. 3.11 has a bunch of 
these that our users would appreciate.


3.11 as an extra supported version might work out, but it will create 
subtle breakage for packages that happen not to be compatible with that 
version, so we should avoid that in a stable release.


3.11 cannot be easily tested via an archive rebuild since there are 
about 25 stages to a transition which build on top of one another.


Doko asked if it would be possible to have the Python releases 1 month 
earlier, to which people replied: "Why doesn't Debian change their 
release dates?". :(


== PEP 668 ==

https://discuss.python.org/t/pep-668-marking-python-base-environments-as-externally-managed/ 
https://peps.python.org/pep-0668/


We would like to have an directory reserved for distro-managed packages, 
where pip should not be installing anything.


upstream pip seems to be keen on that, although there are currently no 
issues in their bug report about it.


it would also be nice to have a python option to only use distro-managed 
packages on the load path.


== pybuild improvements ==

getting the autopkgtest MR in would be great

https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/27

We need people to test this MR some more, although it seems fairly mature.

It might be a good idea to have a line in d/control to let us migrate 
from the existing autopkgtests running unit tests to the new automated MR.


== lintian tags requests for the team ==

pollo will write you Python-related lintian tags. Ask him to.

* find packages that are building extensions only for the current Python 
default version, instead of all the available python versions.


* warn packages still using distutils.version (removal in python 3.12)

It would be nice if lintian brush could help us migrate to pybuild-pyproject
  - pollo can ping Jelmer.

== upstream cpython patches ==

Some work has been done, but some Debian patches still need to be 
forwarded to python upstream


== where are we with python2rm? ==

pypy is still a blocker. A solution would be to bundle the python2 
source code in it.


Other blockers 
(https://release.debian.org/transitions/html/python2-rm.html):


python-defaults
python2.7
pam-python
python-stdlib-extensions
redland-bindings #938345 orphaned, key package
mozilla-devscripts (used for firefox extension building) #937085 key package
python-setuptools
python2-pip
six

== possible remote sprint? ==

a good time to have a remote sprint would be after adding python3.11 as 
the new default (and thus creating new RC bugs). Therefore, this would 
be between end of October up to early December.


== tracker.d.o dashboard ==

https://tracker.debian.org/teams/python-modules/

Would be great to have Salsa MRs on it

--

Cheers,

--
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Louis-Philippe Véronneau
  ⢿⡄⠘⠷⠚⠋   po...@debian.org / veronneau.org
  ⠈⠳⣄