1 |
Hi, |
2 |
|
3 |
Here's the largest batch of eclass updates in quite some time. They |
4 |
combine some new features needed for PEP 517 packages, other new |
5 |
features, refactoring, cleanup and cosmetic changes -- hopefully |
6 |
to stop the cache updates for some time. |
7 |
|
8 |
The changes can be also reviewed on GitHub, particularly if you want |
9 |
to see the big diff rather than the 30 individual changes: |
10 |
https://github.com/gentoo/gentoo/pull/24065 |
11 |
|
12 |
The highlights are: |
13 |
|
14 |
1. A new distutils_pep517_install function is introduced that carries |
15 |
the "core" PEP 517 functionality (previously inline |
16 |
in distutils-r1_python_compile). This is mostly an internal change, |
17 |
except that it can be used to install additional packages required |
18 |
for tests (right now isort & pip need it). New isort revision |
19 |
is included. |
20 |
|
21 |
2. Some deprecated stuff that is no longer used in ::gentoo is removed. |
22 |
Since it causes failures in global scope, there's little risk |
23 |
of accidentally reintroducing its use. |
24 |
|
25 |
3. python-any-r1 + python-r1 any-of API is now much more verbose. |
26 |
It is explaining why a particular implementations is selected |
27 |
or rejected. In additional to that, a new python_has_version() |
28 |
wrapper is introduced that serves as a verbose alternative |
29 |
to has_version() for use in python_check_deps(). This particularly |
30 |
applies to USE=doc via distutils_enable_sphinx. (requested by soap) |
31 |
|
32 |
Screenshot: https://pbs.twimg.com/media/FK1wBkFXIAElWm7?format=jpg |
33 |
|
34 |
4. build_sphinx regression when Sphinx is not available for the current |
35 |
Python version is fixed. It was broken by PEP 517 changes. |
36 |
|
37 |
5. More complex inline Python invocations now use heredoc syntax |
38 |
instead of `-c` (thanks to arthurzam for the suggestion!). This |
39 |
improves readability a lot. |
40 |
|
41 |
6. python_optimize is also more verbose now. |
42 |
|
43 |
7. python_gen* now accept stdlib versions in additional to exact |
44 |
interpreter names. The primary use is replacing backport deps like: |
45 |
|
46 |
$(python_gen_cond_dep ... python3_7 pypy3) |
47 |
|
48 |
with more maintanable: |
49 |
|
50 |
$(python_gen_cond_dep ... 3.7) |
51 |
|
52 |
The big difference is that the latter doesn't need to be updated |
53 |
every time PyPy3 switches to a newer stdlib version. |
54 |
|
55 |
8. The eclasses now issue a QA warning if the ebuild has been updated |
56 |
recently (i.e. in 2022, through looking up the Copyright line) |
57 |
and PYTHON_COMPAT still lists old implementations. (requested |
58 |
by sam). |
59 |
|
60 |
9. Minimum tomli dep is raised to aid people who don't update their |
61 |
systems often enough. |
62 |
|
63 |
-- |
64 |
Best regards, |
65 |
Michał Górny |
66 |
|
67 |
|
68 |
Michał Górny (30): |
69 |
distutils-r1.eclass: Split backend getting code into a function |
70 |
distutils-r1.eclass: Get wheel name from the backend |
71 |
distutils-r1.eclass: Create distutils_pep517_install helper |
72 |
dev-python/isort: Switch to PEP 517 build |
73 |
python-r1.eclass: Remove deprecated python_gen_usedep |
74 |
python-any-r1.eclass: Move EPYTHON validity check to python_setup() |
75 |
python-utils-r1.eclass: Add function to run python_check_deps() |
76 |
python-any-r1.eclass: Explain the reason for interpreter choice |
77 |
python-utils-r1.eclass: Report _python_run_check_deps verbosely |
78 |
python-utils-r1.eclass: Inline python_is_installed |
79 |
distutils-r1.eclass: Fix has_version for distutils_enable_sphinx |
80 |
python-utils-r1.eclass: Add a verbose python_has_version() wrapper |
81 |
distutils-r1.eclass: Use python_has_version in ...enable_sphinx |
82 |
python-utils-r1.eclass: Fix sphinx_build for non-autodoc case |
83 |
python-utils-r1.eclass: Remove deprecated python_export |
84 |
python-utils-r1.eclass: Remove python_wrapper_setup |
85 |
python-single-r1.eclass: Inline & simplify USE-deps in gen_cond_dep |
86 |
python-r1.eclass: Improve comment for USE-dep generation |
87 |
python-utils-r1.eclass: Remove python_is_python3 |
88 |
python-single-r1.eclass: Remove PYTHON_MULTI_USEDEP |
89 |
distutils-r1.eclass: Use heredoc instead of "python -c" |
90 |
python-utils-r1.eclass: Use heredoc instead of "python -c" |
91 |
python-utils-r1.eclass: Remove old phase check from python_optimize |
92 |
python-utils-r1.eclass: Add status messages to python_optimize |
93 |
python-utils-r1.eclass: Support matching impls by stdlib version |
94 |
dev-python/jaraco-text: Use python_gen_cond_dep w/ stdlib ver |
95 |
python-any-r1.eclass: Do not test EPYTHON twice |
96 |
python-utils-r1.eclass: Add QA check for obsolete PYTHON_COMPAT |
97 |
dev-libs/libwacom: Use python_has_version for verbose output |
98 |
distutils-r1.eclass: Add min version to tomli dep |
99 |
|
100 |
dev-libs/libwacom/libwacom-1.11.ebuild | 6 +- |
101 |
dev-libs/libwacom/libwacom-1.12.ebuild | 6 +- |
102 |
dev-python/isort/isort-5.10.1-r1.ebuild | 65 +++++ |
103 |
.../jaraco-text/jaraco-text-3.7.0-r1.ebuild | 2 +- |
104 |
eclass/distutils-r1.eclass | 215 ++++++++++------- |
105 |
eclass/python-any-r1.eclass | 62 ++--- |
106 |
eclass/python-r1.eclass | 97 ++------ |
107 |
eclass/python-single-r1.eclass | 68 +----- |
108 |
eclass/python-utils-r1.eclass | 227 +++++++++++------- |
109 |
eclass/tests/python-utils-r1.sh | 5 - |
110 |
10 files changed, 382 insertions(+), 371 deletions(-) |
111 |
create mode 100644 dev-python/isort/isort-5.10.1-r1.ebuild |
112 |
|
113 |
-- |
114 |
2.35.1 |