Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH 0/6] Another batch of distutils-r1.eclass fixes
Date: Mon, 31 Jan 2022 22:59:31
Message-Id: 20220131225920.192125-1-mgorny@gentoo.org
1 Hi,
2
3 This series includes some long overdue fixes + some recent PEP517 fixes.
4 In order:
5
6 1. Disabling post-test egg-info cleaning code in PEP517 -- this was
7 needed when distutils_install_for_testing was used, and we no longer
8 use it in PEP517 mode.
9
10 2. Fix a regression that `esetup.py` would successfully do nothing
11 when run in a directory where there's no setuptools config. Now it
12 requires the current directory to contain either `setup.py`
13 or `setup.cfg`.
14
15 3. Make distutils sub-phases pass the return value through. This
16 primarily fixes a somewhat rare bug involving:
17
18 src_test() {
19 virtx distutils-r1_src_test
20 }
21
22 python_test() {
23 epytest
24 }
25
26 This code would not die on failure because virtx runs its arguments
27 nonfatal, and epytest respects nonfatal. Ideally, you'd use explicit
28 `|| die` in python_test() but if you don't, the unsuccessful return
29 code from epytest will eventually reach virtx and cause it to fail.
30
31 4. Refactoring.
32
33 5. Add DISTUTILS_DEPS containing BDEPEND in PEP517 mode. This is needed
34 to populate BDEPEND in DISTUTILS_OPTIONAL ebuilds. For non-PEP517
35 mode, we assumed that the dev will just inline the setuptools dep
36 but with PEP517 we have more deps, and the tools used by eclass
37 (tomli, installer) are not guaranteed to be fixed forever.
38
39 6. Add a QA warning when you declare DISTUTILS_USE_SETUPTOOLS along
40 with DISTUTILS_OPTIONAL (it doesn't work). This warning was
41 originally part of the mismatched DUS check and was removed along
42 with it. However, this one still makes sense, so let's do it
43 in the eclass.
44
45 Michał Górny (6):
46 distutils-r1.eclass: Disable stale egg-info cleaning in PEP517 mode
47 distutils-r1.eclass: make esetup.py require setup.{py,cfg}
48 distutils-r1.eclass: Fix subphase return value passthrough
49 distutils-r1.eclass: Move DISTUTILS_OPTIONAL check into set_globals
50 distutils-r1.eclass: Add DISTUTILS_DEPS output var for PEP 517 mode
51 distutils-r1.eclass: Restore QA warning for DUS + DISTUTILS_OPTIONAL
52
53 eclass/distutils-r1.eclass | 114 +++++++++++++++++++++++++++++--------
54 1 file changed, 90 insertions(+), 24 deletions(-)
55
56 --
57 2.35.1

Replies