Mailing List Archive

Please migrate your distutils-r1 ebuilds to use PEP517 builds
Hi,

Please consider the "legacy" build mode to be strongly deprecated, both
in distutils-r1 and upstream (to the point that sole presence of
packages installed that way triggers deprecation warnings elsewhere,
sigh). Therefore, if you haven't done that already, please look into
converting your packages to use PEP517 builds (DISTUTILS_USE_PEP517,
installing .dist-info rather than .egg*). We'd like to eventually
remove the legacy code paths from the eclass, as they are not well-
tested at this point, and they certainly are lacking, compared to
the newer code paths.

This also applies to overlay maintainers, since overlays will be
affected once we remove old code paths.

The migration guide is here:

https://projects.gentoo.org/python/guide/migration.html#migrating-to-pep-517-builds

While at it, please also look at replacing `distutils_enable_tests
setup.py` with one of the other test runners, as running `setup.py test`
has been deprecated upstream as well. Or running `setup.py` at all, but
the latter is less likely to suddenly stop working.

--
Best regards,
Micha? Górny
Re: Please migrate your distutils-r1 ebuilds to use PEP517 builds [ In reply to ]
On 3/9/24 9:32 AM, Micha? Górny wrote:
> Hi,
>
> Please consider the "legacy" build mode to be strongly deprecated, both
> in distutils-r1 and upstream (to the point that sole presence of
> packages installed that way triggers deprecation warnings elsewhere,
> sigh). Therefore, if you haven't done that already, please look into
> converting your packages to use PEP517 builds (DISTUTILS_USE_PEP517,
> installing .dist-info rather than .egg*). We'd like to eventually
> remove the legacy code paths from the eclass, as they are not well-
> tested at this point, and they certainly are lacking, compared to
> the newer code paths.


Reminder as well to be *extremely* careful when looking at non-library
packages, since projects using setup.py as a "pythonic Makefile" run a
very high risk of being broken under PEP 517 (and this is unavoidable,
since the python wheel standard doesn't support application packaging,
only *.py libraries and executables).

As noted in the migration guide link, you MUST check the list of
installed files before and after switching and make sure the switch
doesn't break anything.


> This also applies to overlay maintainers, since overlays will be
> affected once we remove old code paths.
>
> The migration guide is here:
>
> https://projects.gentoo.org/python/guide/migration.html#migrating-to-pep-517-builds
>
> While at it, please also look at replacing `distutils_enable_tests
> setup.py` with one of the other test runners, as running `setup.py test`
> has been deprecated upstream as well. Or running `setup.py` at all, but
> the latter is less likely to suddenly stop working.
>

--
Eli Schwartz