Mitchell's Debian Python Team join request

2023-08-18 Thread Mitchell Dzurick
Hello!

My name is Mitchell and I would like to join the Debian Python Team.

I would like to be a maintainer of https://tracker.debian.org/pkg/pyparted.

My Salsa login is mitchdz.

I have read 
https://salsa.debian.org/python-team/tools/python-modules/blob/master/policy.rst
 and accept it.

Thanks,
-Mitch



Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Carles Pina i Estany


Hi,

On 18 Aug 2023 at 19:03:48, Paul Boddie wrote:
> On Friday, 18 August 2023 16:12:19 CEST Carles Pina i Estany wrote:
> > 
> > For the jobs it is happening via
> > https://salsa.debian.org/salsa-ci-team/pipeline/#using-automatically-built- 
> apt-repository
> 
> Reviewing this documentation is actually more helpful than I thought it would 
> be. I had noticed the "aptly" task in the YAML files, and I had started to 
> wonder if that meant that some kind of repository publishing was occurring 
> somewhere.

Ha! I wasn't aware of the aptly option
(https://salsa.debian.org/salsa-ci-team/pipeline/#using-automatically-built-apt-repository
and SALSA_CI_DISABLE_APTLY=0).
I think that I might have re-invented the wheel in a tiny part of
Debusine CI/CD.

I will point out at some things that might safe some time to you
(great) or not (ignore! :-) ):

debusine's .gitlab-ci.yml: 
https://salsa.debian.org/freexian-team/debusine/-/blob/devel/.gitlab-ci.yml

Latest CI build: 
https://salsa.debian.org/freexian-team/debusine/-/pipelines/566796

In the "build" job:
https://salsa.debian.org/freexian-team/debusine/-/jobs/4574451

You can see what's doing and it's using salsa-ci/pipeline's defaults in
the build. All comes from
https://salsa.debian.org/salsa-ci-team/pipeline/ , specifically from:
https://salsa.debian.org/salsa-ci-team/pipeline/-/blob/master/salsa-ci.yml#L201

(I sometimes grep salsa-ci-team/pipeline for commands that I see in
debusine's CI output to understand the flow...)

In the autopkgtest job it sets things up and invokes autopkgtest:
https://salsa.debian.org/freexian-team/debusine/-/jobs/4574458

The *.deb from build are made available via "artifacts" (and that
autopkgtest needs the artifact of build).

The job autopkgtest, via debci command, runs autopkgtest:
https://salsa.debian.org/freexian-team/debusine/-/jobs/4574458#L65

And, to be honest, I didn't look into these details for long time. From
my point of view I just write debian/tests/control with the tests
(commands) to run:
https://salsa.debian.org/freexian-team/debusine/-/blob/devel/debian/tests/control

And that things run in a container/chroot (depends), etc.

You can invoke autopkgtest locally as well...

> > > In the Salsa CI environment, I would need to have the built packages
> > > (found in the artefacts for each package's build job) copied somewhere
> > > that can then be found by the Moin package's pipeline jobs and the
> > > scripts creating a special repository of new packages.
> > 
> > Archiving artifacts should happen automatically on the "build" step of
> > Salsa CI (salsa-ci/pipeline). If I understand correctly what you
> > wanted...
> 
> I think you have a good understanding of what I am trying to achieve. If I 
> can 
> get the new package dependencies (emeraldtree, feedgen, and so on) to yield 
> installable packages when built that can then be referenced by Salsa CI as it 
> runs the build jobs for Moin, I have a chance of running the test suite.

yep!

> I'm currently persuading the CI system to run the "aptly" task and to publish 
> package repositories. I will then augment a customised YAML file for the Moin 

I might look more about this on Monday (I will write it down now)
because I am using "dpkg-scanpackages" and I might be able to avoid it
via SALSA_CI_DISABLE_APTLY: 0

I see the salsa-CI like a fancy environment where to run scripts,
generate files, pass files between scripts, refactor scripts (in YAML in
my .gitlab-ci.yml or to upstream salsa-ci/pipeline), scheduled jobs,
etc. so almost anything that you can think of you can do it. Either with
artifacts to keep and retrieve files between "jobs" or via GitHub Pages.

If you need help creating a new job (a new bubble in the pipeline) let
me know (even if you want off-list, if this is getting off-topic of
debian-python). Or look at the
https://salsa.debian.org/freexian-team/debusine/-/blob/devel/.gitlab-ci.yml
where were created the stage "upstream-tests" with things like
"code-linting". So You could even create dependencies of your task
before the tests are executed and pass the .deb files via artifacts (or
even repositories).

> package with references to these repositories and see if the test
> suite can be invoked somewhat more successfully as a consequence.

It's possible for sure. Other people in this list might come up with a
different idea. I don't have almost any experience with Debian
packaging, but I have some experience on the salsa CI. So I might be
giving you solutions that might be sub-optimal! :-)

Cheers,

-- 
Carles Pina i Estany
https://carles.pina.cat || Wiktionary translations: https://kamus.pina.cat



Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Andrey Rakhmatullin
On Fri, Aug 18, 2023 at 07:19:18PM +0200, Paul Boddie wrote:
> > > Here, it would seem that the most prudent approach is to use the Salsa CI
> > > service instead of trying to get the test suite to run during the package
> > > build process.
> > 
> > You should do both if possible, assuming that by "Salsa CI service" you
> > mean autopkgtests which you can, and IMO should, also run locally.
> 
> I'm not really clear on what autopkgtest really is, other than a tool that 
> uses some kind of test suite description that may reside in debian/test. I'm 
> also not completely clear on what is supposed to invoke it, other than either 
> the Salsa CI mechanism or dh_auto_test.
The maintainer is supposed to invoke it before uploading the package, and
the Debian infra invokes it on all packages that are uploaded.
Notably, dh_auto_test is unrelated.

> In the Debian Wiki documentation...
> 
> https://wiki.debian.org/Python/LibraryStyleGuide
> 
> ...it mentions a field in debian/control:
> 
> Testsuite: autopkgtest-pkg-python
> 
> My impression is that this calls autodep8 to generate some kind of test suite 
Yes.
Though note that it generates a trivial test that only checks a top-level
import (just like the wiki page says).

> description which is then invoked by dh_auto_test.
It's not invoked by dh_auto_test. autopkgtests are not a part of the
package build process and they operate on built binary packages.

> It doesn't help that there 
> is an alternative to this that resembles it but behaves differently:
> 
> Testsuite: autopkgtest-pkg-pybuild
It just generates a different (better) test.

> > > I have also found it difficult to persuade the tests to run successfully
> > > during the build process. A few of these attempt to invoke the moin
> > > program, but this cannot be located since it is not installed in the
> > > build environment.
> >
> > This should also be fine, unless it's completely impossible to run it
> > without installing into /.
> 
> The moin program is made available in setup.py using an entry point. Maybe if 
> there were some kind of script instead, it would work.
AFAIK there should be ways to work with this.
Ideally, of course, the upstream test suite should support this, but I
understand that not all upstreams use common practices.

> > > However, one conclusion is that testing a system, as some of the
> > > test cases appear to do, and as opposed to testing library functionality,
> > > is not necessarily appropriate when directed by something like
> > > dh_auto_test.
> >
> > If there are tests that can't be run at build time you can skip those. You
> > can even ask the upstream to provide tool arguments to simplify that.
> 
> I may well discuss such matters with them. One challenge that is relevant in 
> this situation is that upstream have been working in their own virtualenv (or 
> venv, or whatever it is now) world for a few years, using plenty of 
> dependencies that were not packaged in Debian. 
Which is by itself not a problem from the technical side, as you could
just package those (I understand that this requires effort and may have
other problems, but by itself it's normal).



Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Paul Boddie
On Friday, 18 August 2023 18:21:00 CEST Andrey Rakhmatullin wrote:
> On Thu, Aug 17, 2023 at 05:10:08PM +0200, Paul Boddie wrote:
> > Here, it would seem that the most prudent approach is to use the Salsa CI
> > service instead of trying to get the test suite to run during the package
> > build process.
> 
> You should do both if possible, assuming that by "Salsa CI service" you
> mean autopkgtests which you can, and IMO should, also run locally.

I'm not really clear on what autopkgtest really is, other than a tool that 
uses some kind of test suite description that may reside in debian/test. I'm 
also not completely clear on what is supposed to invoke it, other than either 
the Salsa CI mechanism or dh_auto_test. In the Debian Wiki documentation...

https://wiki.debian.org/Python/LibraryStyleGuide

...it mentions a field in debian/control:

Testsuite: autopkgtest-pkg-python

My impression is that this calls autodep8 to generate some kind of test suite 
description which is then invoked by dh_auto_test. It doesn't help that there 
is an alternative to this that resembles it but behaves differently:

Testsuite: autopkgtest-pkg-pybuild

What I have previously managed to do with the Salsa CI mechanism is to run 
tests specified in debian/test, disabling these tests at build time using the 
following in debian/rules:

export PYBUILD_DISABLE=test

For another package which has limited dependencies, I do this because the 
tests take a long time to run, and I even need to increase the timeout for the 
Salsa CI jobs. For this package, the tests don't take too long to run (those 
that do run), but some tests fail for reasons previously described, and this 
is due to some configuration issue that is unpleasant to debug.

Success with testing using Salsa CI steers me away from using the Testsuite 
field in the normal build environment because the resulting test suite 
invocation failures suggest that some customisation is needed or that the 
environment is inappropriate in some way (even if I specify numerous build 
dependencies).

> > One motivation for doing so involves not having to specify
> > build dependencies for packages only needed for test suite execution,
> > which itself requires the invocation of gbp buildpackage with
> > --extra-package arguments since some packages are completely new to
> > Debian.
> 
> This is fine. Not to mention that the same problem exists for
> autopkgtests, as you say below.
> 
> > I have also found it difficult to persuade the tests to run successfully
> > during the build process. A few of these attempt to invoke the moin
> > program, but this cannot be located since it is not installed in the
> > build environment.
>
> This should also be fine, unless it's completely impossible to run it
> without installing into /.

The moin program is made available in setup.py using an entry point. Maybe if 
there were some kind of script instead, it would work.

> > However, one conclusion is that testing a system, as some of the
> > test cases appear to do, and as opposed to testing library functionality,
> > is not necessarily appropriate when directed by something like
> > dh_auto_test.
>
> If there are tests that can't be run at build time you can skip those. You
> can even ask the upstream to provide tool arguments to simplify that.

I may well discuss such matters with them. One challenge that is relevant in 
this situation is that upstream have been working in their own virtualenv (or 
venv, or whatever it is now) world for a few years, using plenty of 
dependencies that were not packaged in Debian. That hasn't been entirely 
conducive to adoption of Moin 2 which has in turn isolated its developers 
further.

Fortunately, the gulf between that world and Debian can be bridged, and some 
of the more tedious packaging seems to have been done for many of the 
dependencies involved. It just needs someone to shepherd this effort to an 
acceptable conclusion, which is of concern to Debian itself since Moin runs 
the Debian Wiki.

Thanks for the encouragement and advice.

Paul




Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Paul Boddie
On Friday, 18 August 2023 16:12:19 CEST Carles Pina i Estany wrote:
> 
> For the jobs it is happening via
> https://salsa.debian.org/salsa-ci-team/pipeline/#using-automatically-built- 
apt-repository

Reviewing this documentation is actually more helpful than I thought it would 
be. I had noticed the "aptly" task in the YAML files, and I had started to 
wonder if that meant that some kind of repository publishing was occurring 
somewhere.

> > In the Salsa CI environment, I would need to have the built packages
> > (found in the artefacts for each package's build job) copied somewhere
> > that can then be found by the Moin package's pipeline jobs and the
> > scripts creating a special repository of new packages.
> 
> Archiving artifacts should happen automatically on the "build" step of
> Salsa CI (salsa-ci/pipeline). If I understand correctly what you
> wanted...

I think you have a good understanding of what I am trying to achieve. If I can 
get the new package dependencies (emeraldtree, feedgen, and so on) to yield 
installable packages when built that can then be referenced by Salsa CI as it 
runs the build jobs for Moin, I have a chance of running the test suite.

I'm currently persuading the CI system to run the "aptly" task and to publish 
package repositories. I will then augment a customised YAML file for the Moin 
package with references to these repositories and see if the test suite can be 
invoked somewhat more successfully as a consequence.

Thanks once again for the guidance!

Paul




Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Andrey Rakhmatullin
On Thu, Aug 17, 2023 at 05:10:08PM +0200, Paul Boddie wrote:
> Here, it would seem that the most prudent approach is to use the Salsa CI 
> service instead of trying to get the test suite to run during the package 
> build process.
You should do both if possible, assuming that by "Salsa CI service" you
mean autopkgtests which you can, and IMO should, also run locally.

> One motivation for doing so involves not having to specify 
> build dependencies for packages only needed for test suite execution, which 
> itself requires the invocation of gbp buildpackage with --extra-package 
> arguments since some packages are completely new to Debian.
This is fine. Not to mention that the same problem exists for
autopkgtests, as you say below.

> I have also found it difficult to persuade the tests to run successfully 
> during the build process. A few of these attempt to invoke the moin program, 
> but this cannot be located since it is not installed in the build 
> environment. 
This should also be fine, unless it's completely impossible to run it
without installing into /.

> However, one conclusion is that testing a system, as some of the 
> test cases appear to do, and as opposed to testing library functionality, is 
> not necessarily appropriate when directed by something like dh_auto_test.
If there are tests that can't be run at build time you can skip those. You
can even ask the upstream to provide tool arguments to simplify that.



Re: pdm: Please replace python3-pep517 with python3-pyproject-hooks in Depends/Build-Depends

2023-08-18 Thread Scott Kitterman
On Friday, August 18, 2023 9:33:48 AM EDT Andreas Tille wrote:
> Hi Scott,
> 
> Am Fri, Aug 18, 2023 at 01:15:18PM + schrieb Scott Kitterman:
> > On August 18, 2023 1:04:26 PM UTC, Andreas Tille  wrote:
> > >> In Debian terms, it's not the preferred form for modification, so it's
> > >> not source.  In this regard DFSG goes farther than some software
> > >> licenses.> >
> > >I think the point Jeroen wanted to make is that these are actually
> > >source file archives which "by chance" are featuring a .whl extension
> > >rather than a .zip extension.
> > 
> > A wheel is not the preferred form for modification.  They're not wheels by
> > chance at all.
> Yes, thanks to Jeroen's hint I realised this as well and I agree that
> this is a nasty way to hide the fact that the files are actually source
> archives.

They aren't.

> However, you confirmed yourself that future_fstrings is an exception and
> comes with source and thus does not violate DFSG.  The only difference
> I personally can see is that the archives are just hiding what they are.
> We could simply add do some
>for whl in *.whl ; do ln -s $whl $(basename .whl).zip ; done
> and we have source archives that are obviously what they are.
> 
> > From a DFSG perspective,
> 
> Hmmm, the only thing where I can draw a violation of the DFSG is that
> there are no d/copyright entries for the source code that is hidden
> inside these *.whl files.  Otherwise its "just" duplicated code (in most
> cases) which is definitely not nice but IMHO not a violation of DFSG.
> 
The disagreement here is that Python wheels aren't source.  DFSG #2 requires 
the source be present and these aren't it.  If you look at the WAF entry in 
the FTP team reject FAQ, this is similar.  The FTP team view has long been 
that DFSG #2 means the actual preferred form for modification.

> > the most straightforward approach is to build-depend on the relevant
> > Debian packages and build any needed wheels from that.
> Do avoid source code duplication I'm willing to do that.  Yes, I
> perfectly agree that its pretty ugly (I'm just a bit unsure about
> the DFSG violation).  I'm wondering whether a simple
> 
>zip whl.zip /path/to/python/files ; mv whl.zip whl.whl
> 
> will be something that can replace the current packages.  I think
> we also need to patch the tests to fit the version numbers (if
> we do not want to cheat and simply use the version numbers of the
> original whl files to avoid patching).

Perhaps, but there are nuances to the wheel format.  Please use Wheel to 
generate them.

> >  It won't necessarily get you the same version as upstream uses, but it's
> >  definitely DFSG compliant.
> We also might symlink our resulting whl files with the version number
> pdm upstream might expect in their tests.  The question is, whether all
> this effort might break the tests in some way and we might end up with
> endless patching by at the same time loosing the chance to discuss with
> upstream.  But it might be time to discuss the issue with upstream
> anyway.

Perhaps.  If it were me, what I'd do is locate the missing tarballs and stash 
them in debian/missing-sources/ and worry about more complex solutions later.  
Once you're done that, you've met DSFG #2 and there's no need to strip the 
wheels from the binary.

It's not super maintainable, but it will allow you to focos on getting the 
tests working as upstream ships them without any Debian customizations that 
might cause Debian specific failures.

Scott K

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


Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Carles Pina i Estany


Hi,

On 18 Aug 2023 at 13:16:15, Paul Boddie wrote:
> On Friday, 18 August 2023 09:51:29 CEST Carles Pina i Estany wrote:
> > 
> > I'm not a Debian developer but I have some experience on Salsa CI, so I
> > thought that I might be able to help... but then I was confused by a
> > specific part of the message:
> > 
> > On 17 Aug 2023 at 17:10:08, Paul Boddie wrote:
> > 
> > [...]
> > 
> > > For another package I have been working on, the Salsa CI facility has
> > > proven to be usable, configured using files in debian/test, particularly
> > > as it allows test-related dependencies to be specified independently.
> > > However, this other package has no dependencies that are currently
> > > unpackaged in Debian. Meanwhile, the testing of this new Moin package
> > > depends on brand new packages somehow being made available.
> > 
> > If this dependencies are available on the "build" step: could they be
> > made available on the autopkgtest? I didn't quite understand why this is
> > not possible. I've found the autopkgtest quite flexible (since the tests
> > are scripts that could prepare some environment)
> 
> The package has dependencies on installation but these dependencies
> are not strictly necessary when building. However, if I wanted to run

I have the same situation on this side. Two solutions for two places.

Debusine uses https://salsa.debian.org/salsa-ci-team/pipeline approach
(extending it)

> the test suite when building, I would indeed need to pull in these
> dependencies as build dependencies so that the software being tested
> can run without import errors.

In our repo I have two solutions (or hacks, or workarounds) for this
situation.

AUTOPKGTEST TIME (after build)
==
In the autopkgtest job (from salsa-ci/pipeline), autopkgtest runs a
shell script (below integration-tests-generic). Some of them set things
up:

--
Tests: integration-tests-generic
Depends: debusine-client, debusine-server, debusine-worker, postgresql, 
redis-server, sudo, nginx
Restrictions: allow-stderr, needs-root
--

It could pull things from the internet (Pypi, git...) if it also has, in
Restrictions: "needs-internet"

Alternatively (and perhaps better, to keep things separated?), you could
use salsa CI variable: SALSA_CI_AUTOPKGTEST_ARGS with this format:
SALSA_CI_AUTOPKGTEST_ARGS:
'--setup-commands=ci/pin-django-from-backports.sh

Instead of pinning you could install packages. I don't know if it needs
"needs-internet" in Restrictions.

Note that the debusine-* packages are made available automatically
thanks to Salsa CI pipeline and that tests-autopkgtest has:
--
  needs:
- job: build
  artifacts: true
--

So I don't need to do any repository. The build job just creates the
*.deb packages (in a specific directory?), they are saved as artifacts
and made available to "autopkgtest" job.

UNIT-TESTS (before build)
=
We have a job before build doing (I'm simplifying):

-
unit-tests:
  stage: upstream-tests
  dependencies: []
  script:
- NON_INTERACTIVE=1 bin/quick-setup.sh install_packages
- make coverage # to run the tests with coverage
-

In "bin/quick-setup.sh" it installs the required packages (some from
Debian, some from Pypi if need to be)

In here we execute tests before packaging them (because we are upstream
as well).


> I have to add that the other package I refer to has a test suite that takes a 
> long time to run, so that is another reason why I chose Salsa CI for that 
> package instead of letting autopkgtest do its work:

Note that when I say "autopkgtest" above I always think of autopkgtest
ran by Salsa CI.

> One can imagine having a common storage area holding these newly

Until now I see "the whole internet" as a "common storage area" (I know,
not ideal! could be closer to the process, more robust, faster, etc.)

> introduced packages that the CI scripts could access in preference to
> the usual archives.  In fact, this would be something that might also
> affect existing packages.  Consider the situation where fixes to a
> dependency are required to fix functionality in a particular package.
> One would have to wait for the fixed dependency to become integrated
> into the unstable archive before the principal package's tests would
> start to work again.

Semi-offtopic: MMmmm... Debusine is the project that I mentioned before
where I implemented different things in .gitlab-ci.yml.

What you mentioned here is a thing that debusine, in the future (not
impelmented yet) might help. But other people can talk better about this
than me... and it's not available right now.

> > I also created a repo and hosted it on a Salsa CI page for internal
> > testing but this is a bit of a workaround. This is in a new job but just
> > download the artifacts (via a Salsa CI dependency) and run
> > dpkg-scanpackages and copy the files to the right place).
> 
> This sounds like something related to what might be required. In 

Re: Uncleaned egg-info directory giving lots of bugs about failing to build after successful build

2023-08-18 Thread Julian Gilbey
On Fri, Aug 18, 2023 at 09:23:17AM -0400, Scott Talbert wrote:
> On Fri, 18 Aug 2023, Andreas Tille wrote:
> 
> > Am Fri, Aug 18, 2023 at 01:42:53PM +0100 schrieb Julian Gilbey:
> > > I'm sure I'm not the only one who received a whole bunch of bugs
> > > entitled "Fails to build source after successful build" last weekend.
> > > There was one theme common to most of them: the presence of a
> > > *.egg-info directory which was not cleaned by debian/rules clean.
> > > [...]
> 
> It is being worked on:
> https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/46

Amazing!

Thanks,

   Julian



Re: pdm: Please replace python3-pep517 with python3-pyproject-hooks in Depends/Build-Depends

2023-08-18 Thread Andreas Tille
Hi Scott,

Am Fri, Aug 18, 2023 at 01:15:18PM + schrieb Scott Kitterman:
> On August 18, 2023 1:04:26 PM UTC, Andreas Tille  wrote:
> >> In Debian terms, it's not the preferred form for modification, so it's not 
> >> source.  In this regard DFSG goes farther than some software licenses.
> >
> >I think the point Jeroen wanted to make is that these are actually
> >source file archives which "by chance" are featuring a .whl extension
> >rather than a .zip extension.
> 
> A wheel is not the preferred form for modification.  They're not wheels by 
> chance at all.

Yes, thanks to Jeroen's hint I realised this as well and I agree that
this is a nasty way to hide the fact that the files are actually source
archives.

However, you confirmed yourself that future_fstrings is an exception and
comes with source and thus does not violate DFSG.  The only difference
I personally can see is that the archives are just hiding what they are.
We could simply add do some
   for whl in *.whl ; do ln -s $whl $(basename .whl).zip ; done
and we have source archives that are obviously what they are.
 
> From a DFSG perspective,

Hmmm, the only thing where I can draw a violation of the DFSG is that
there are no d/copyright entries for the source code that is hidden
inside these *.whl files.  Otherwise its "just" duplicated code (in most
cases) which is definitely not nice but IMHO not a violation of DFSG.

> the most straightforward approach is to build-depend on the relevant Debian 
> packages and build any needed wheels from that.

Do avoid source code duplication I'm willing to do that.  Yes, I
perfectly agree that its pretty ugly (I'm just a bit unsure about
the DFSG violation).  I'm wondering whether a simple

   zip whl.zip /path/to/python/files ; mv whl.zip whl.whl

will be something that can replace the current packages.  I think
we also need to patch the tests to fit the version numbers (if
we do not want to cheat and simply use the version numbers of the
original whl files to avoid patching).

>  It won't necessarily get you the same version as upstream uses, but it's 
> definitely DFSG compliant.

We also might symlink our resulting whl files with the version number
pdm upstream might expect in their tests.  The question is, whether all
this effort might break the tests in some way and we might end up with
endless patching by at the same time loosing the chance to discuss with
upstream.  But it might be time to discuss the issue with upstream
anyway.

Kind regards
Andreas.

-- 
http://fam-tille.de



Re: Uncleaned egg-info directory giving lots of bugs about failing to build after successful build

2023-08-18 Thread Timo Röhling

* Julian Gilbey  [2023-08-18 13:42]:

One could handle it by manually adding this directory to
debian/clean in each package, but perhaps this should be the
default behaviour of dh-python?

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


Cheers
Timo

--
⢀⣴⠾⠻⢶⣦⠀   ╭╮
⣾⠁⢠⠒⠀⣿⡁   │ Timo Röhling   │
⢿⡄⠘⠷⠚⠋⠀   │ 9B03 EBB9 8300 DF97 C2B1  23BF CC8C 6BDD 1403 F4CA │
⠈⠳⣄   ╰╯


signature.asc
Description: PGP signature


Re: Uncleaned egg-info directory giving lots of bugs about failing to build after successful build

2023-08-18 Thread Scott Talbert

On Fri, 18 Aug 2023, Andreas Tille wrote:


Am Fri, Aug 18, 2023 at 01:42:53PM +0100 schrieb Julian Gilbey:

I'm sure I'm not the only one who received a whole bunch of bugs
entitled "Fails to build source after successful build" last weekend.
There was one theme common to most of them: the presence of a
*.egg-info directory which was not cleaned by debian/rules clean.

I know the bug report said that this policy is currently under
discussion, but I did get thinking about it.  I imagine that this
particular directory should be the responsibility of dh-python to
clean up, but it may not be sensible to always delete *.egg-info
directories, as they may be present in the orig.tar.gz file.  One
could handle it by manually adding this directory to debian/clean in
each package, but perhaps this should be the default behaviour of
dh-python?

Any thoughts?


I agree that having this a no-brainer and getting all this *.egg-info
caused bugs solved by a simple dh-python update without changing
packaging code would be extremely convenient.  I could imagine creating
a backup of the affected *.egg-info files if existent and copy these
back in clean target could solve this.


It is being worked on:
https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/46

Regards,
Scott



Re: Uncleaned egg-info directory giving lots of bugs about failing to build after successful build

2023-08-18 Thread Andreas Tille
Hi,

Am Fri, Aug 18, 2023 at 01:42:53PM +0100 schrieb Julian Gilbey:
> I'm sure I'm not the only one who received a whole bunch of bugs
> entitled "Fails to build source after successful build" last weekend.
> There was one theme common to most of them: the presence of a
> *.egg-info directory which was not cleaned by debian/rules clean.
> 
> I know the bug report said that this policy is currently under
> discussion, but I did get thinking about it.  I imagine that this
> particular directory should be the responsibility of dh-python to
> clean up, but it may not be sensible to always delete *.egg-info
> directories, as they may be present in the orig.tar.gz file.  One
> could handle it by manually adding this directory to debian/clean in
> each package, but perhaps this should be the default behaviour of
> dh-python?
> 
> Any thoughts?

I agree that having this a no-brainer and getting all this *.egg-info
caused bugs solved by a simple dh-python update without changing
packaging code would be extremely convenient.  I could imagine creating
a backup of the affected *.egg-info files if existent and copy these
back in clean target could solve this.

Kind regards
   Andreas.

-- 
http://fam-tille.de



Re: pdm: Please replace python3-pep517 with python3-pyproject-hooks in Depends/Build-Depends

2023-08-18 Thread Scott Kitterman



On August 18, 2023 1:04:26 PM UTC, Andreas Tille  wrote:
>Hi Scott,
>
>Am Tue, Aug 15, 2023 at 02:18:35PM + schrieb Scott Kitterman:
>> >They are zip files containing python source code. It is possible to include
>> >compiled C extensions in wheels, but I checked and these wheels are all pure
>> >python, so no binary blobs are included.
>> 
>> In Debian terms, it's not the preferred form for modification, so it's not 
>> source.  In this regard DFSG goes farther than some software licenses.
>
>I think the point Jeroen wanted to make is that these are actually
>source file archives which "by chance" are featuring a .whl extension
>rather than a .zip extension.

A wheel is not the preferred form for modification.  They're not wheels by 
chance at all.

From a DFSG perspective, the most straightforward approach is to build-depend 
on the relevant Debian packages and build any needed wheels from that.  It 
won't necessarily get you the same version as upstream uses, but it's 
definitely DFSG compliant.

Scott K



Re: pdm: Please replace python3-pep517 with python3-pyproject-hooks in Depends/Build-Depends

2023-08-18 Thread Andreas Tille
Hi Scott,

Am Tue, Aug 15, 2023 at 02:18:35PM + schrieb Scott Kitterman:
> >They are zip files containing python source code. It is possible to include
> >compiled C extensions in wheels, but I checked and these wheels are all pure
> >python, so no binary blobs are included.
> 
> In Debian terms, it's not the preferred form for modification, so it's not 
> source.  In this regard DFSG goes farther than some software licenses.

I think the point Jeroen wanted to make is that these are actually
source file archives which "by chance" are featuring a .whl extension
rather than a .zip extension.
 
Kind regards
Andreas.

-- 
http://fam-tille.de



Uncleaned egg-info directory giving lots of bugs about failing to build after successful build

2023-08-18 Thread Julian Gilbey
I'm sure I'm not the only one who received a whole bunch of bugs
entitled "Fails to build source after successful build" last weekend.
There was one theme common to most of them: the presence of a
*.egg-info directory which was not cleaned by debian/rules clean.

I know the bug report said that this policy is currently under
discussion, but I did get thinking about it.  I imagine that this
particular directory should be the responsibility of dh-python to
clean up, but it may not be sensible to always delete *.egg-info
directories, as they may be present in the orig.tar.gz file.  One
could handle it by manually adding this directory to debian/clean in
each package, but perhaps this should be the default behaviour of
dh-python?

Any thoughts?

Best wishes,

   Julian



Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Paul Boddie
On Friday, 18 August 2023 09:51:29 CEST Carles Pina i Estany wrote:
> 
> I'm not a Debian developer but I have some experience on Salsa CI, so I
> thought that I might be able to help... but then I was confused by a
> specific part of the message:
> 
> On 17 Aug 2023 at 17:10:08, Paul Boddie wrote:
> 
> [...]
> 
> > For another package I have been working on, the Salsa CI facility has
> > proven to be usable, configured using files in debian/test, particularly
> > as it allows test-related dependencies to be specified independently.
> > However, this other package has no dependencies that are currently
> > unpackaged in Debian. Meanwhile, the testing of this new Moin package
> > depends on brand new packages somehow being made available.
> 
> If this dependencies are available on the "build" step: could they be
> made available on the autopkgtest? I didn't quite understand why this is
> not possible. I've found the autopkgtest quite flexible (since the tests
> are scripts that could prepare some environment)

The package has dependencies on installation but these dependencies are not 
strictly necessary when building. However, if I wanted to run the test suite 
when building, I would indeed need to pull in these dependencies as build 
dependencies so that the software being tested can run without import errors.

Since some of these dependencies are new packages, I had been specifying them 
using the --extra-package option of gbp buildpackage in order to satisfy such 
build dependencies, but these were really "test dependencies". I have since 
decided that I would rather distinguish between build and test dependencies, 
as previously noted.

I have to add that the other package I refer to has a test suite that takes a 
long time to run, so that is another reason why I chose Salsa CI for that 
package instead of letting autopkgtest do its work:

https://salsa.debian.org/pboddie/shedskin

When I get the courage to do so, I will probably submit an intention-to-
package for that package.

[...]

> For me, the packages on the build job are made available via a Salsa
> artifact automatically (and easy to download as a .zip of the *.deb). I
> think that this happens on all the "build" jobs on Salsa CI. They can be
> downloaded as a .zip file
> (e.g. https://salsa.debian.org/freexian-team/debusine/-/jobs/4564890,
> right hand side "Job artifacts" and click "Download"). Would that be
> enough?

I think the problem is that when running the test suite, the Moin package 
would need to obtain the test dependencies specified in debian/test/control. 
These include various new packages that cannot be obtained from the usual 
Debian archives, and so some kind of equivalent to gbp's --extra-package would 
be needed in the Salsa CI environment.

One can imagine having a common storage area holding these newly introduced 
packages that the CI scripts could access in preference to the usual archives. 
In fact, this would be something that might also affect existing packages. 
Consider the situation where fixes to a dependency are required to fix 
functionality in a particular package. One would have to wait for the fixed 
dependency to become integrated into the unstable archive before the principal 
package's tests would start to work again.

> I also created a repo and hosted it on a Salsa CI page for internal
> testing but this is a bit of a workaround. This is in a new job but just
> download the artifacts (via a Salsa CI dependency) and run
> dpkg-scanpackages and copy the files to the right place).

This sounds like something related to what might be required. In effect, you 
seem to be doing what I am doing when I actually install my built packages in 
a chroot. I run apt-ftparchive (which runs dpkg-scanpackages) to generate 
Packages, Sources and Release files that tells apt about the new packages when 
added as another package source.

In the Salsa CI environment, I would need to have the built packages (found in 
the artefacts for each package's build job) copied somewhere that can then be 
found by the Moin package's pipeline jobs and the scripts creating a special 
repository of new packages.

Thanks for replying to my enquiry!

Regards,

Paul




Re: Package testing with Salsa CI for new packages

2023-08-18 Thread Carles Pina i Estany


Hi,

I'm not a Debian developer but I have some experience on Salsa CI, so I
thought that I might be able to help... but then I was confused by a
specific part of the message:

On 17 Aug 2023 at 17:10:08, Paul Boddie wrote:

[...]

> For another package I have been working on, the Salsa CI facility has proven 
> to be usable, configured using files in debian/test, particularly as it 
> allows 
> test-related dependencies to be specified independently. However, this other 
> package has no dependencies that are currently unpackaged in Debian. 
> Meanwhile, the testing of this new Moin package depends on brand new packages 
> somehow being made available.

If this dependencies are available on the "build" step: could they be
made available on the autopkgtest? I didn't quite understand why this is
not possible. I've found the autopkgtest quite flexible (since the tests
are scripts that could prepare some environment)

> So, I would appreciate guidance on how I might enable testing of this new 
> Moin 
> package, along with its new dependencies, in the Salsa environment or any 
> other appropriate environment that would satisfy Debian packaging needs and 
> policies. It would also be quite helpful if built packages might be published 
> somewhere for people to test, but this is a separate consideration even if 
> such packages would obviously need to be generated as part of the testing 
> regime.

For me, the packages on the build job are made available via a Salsa
artifact automatically (and easy to download as a .zip of the *.deb). I
think that this happens on all the "build" jobs on Salsa CI. They can be 
downloaded as a .zip file
(e.g. https://salsa.debian.org/freexian-team/debusine/-/jobs/4564890,
right hand side "Job artifacts" and click "Download"). Would that be
enough?

I also created a repo and hosted it on a Salsa CI page for internal
testing but this is a bit of a workaround. This is in a new job but just
download the artifacts (via a Salsa CI dependency) and run
dpkg-scanpackages and copy the files to the right place).

Cheers,

-- 
Carles Pina i Estany
https://carles.pina.cat || Wiktionary translations: https://kamus.pina.cat