Skip to content

Commit 8d4e26e

Browse files
committed
pyproject: use pip wheel for building wheels
Apparently you aren't supposed to invoke `setup.py` directly any more. We add a `build-system` section to `pyproject.toml` to invoke setuptools and we replace `setup.py bdist_wheel` invocations with `python -m pip wheel`. This should automagically use the new build-system settings to build the wheel. This enables us to avoid complexity around installing additional packages since the build frontend will do it for us.
1 parent 2ae0312 commit 8d4e26e

4 files changed

Lines changed: 14 additions & 66 deletions

File tree

.github/workflows/wheel.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ jobs:
7878
- name: Install Dependencies
7979
run: |
8080
/Applications/Xcode_13.2.1.app/Contents/Developer/usr/bin/pip3 install --user --require-hashes -r ci/requirements.macoswheels.txt
81-
/Applications/Xcode_13.2.1.app/Contents/Developer/usr/bin/pip3 install --user wheel
8281
if: ${{ matrix.py == 'cp38-*' && matrix.arch == 'arm64' }}
8382

8483
- name: Build Wheel
@@ -88,7 +87,7 @@ jobs:
8887

8988
- name: Build Wheel
9089
run: |
91-
/Applications/Xcode_13.2.1.app/Contents/Developer/usr/bin/python3 setup.py bdist_wheel
90+
/Applications/Xcode_13.2.1.app/Contents/Developer/usr/bin/python3 -m pip wheel -w dist .
9291
env:
9392
_PYTHON_HOST_PLATFORM: 'macosx-11.0-arm64'
9493
ARCHFLAGS: '-arch arm64'
@@ -125,14 +124,9 @@ jobs:
125124

126125
- uses: actions/checkout@v4
127126

128-
- name: Install Dependencies
129-
shell: bash
130-
run: |
131-
python -m pip install --require-hashes -r ci/requirements.txt
132-
133127
- name: Build Wheel
134128
run: |
135-
python setup.py bdist_wheel
129+
python -m pip wheel -w dist .
136130
137131
- name: Upload Wheel
138132
uses: actions/upload-artifact@v3

ci/build-manylinux-wheel.sh

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -15,64 +15,6 @@ if [ -e /tmp/wheels ]; then
1515
exit 1
1616
fi
1717

18-
cat > /tmp/requirements.txt << EOF
19-
cffi==1.14.5 \
20-
--hash=sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813 \
21-
--hash=sha256:04c468b622ed31d408fea2346bec5bbffba2cc44226302a0de1ade9f5ea3d373 \
22-
--hash=sha256:06d7cd1abac2ffd92e65c0609661866709b4b2d82dd15f611e602b9b188b0b69 \
23-
--hash=sha256:06db6321b7a68b2bd6df96d08a5adadc1fa0e8f419226e25b2a5fbf6ccc7350f \
24-
--hash=sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06 \
25-
--hash=sha256:0f861a89e0043afec2a51fd177a567005847973be86f709bbb044d7f42fc4e05 \
26-
--hash=sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea \
27-
--hash=sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee \
28-
--hash=sha256:1bf1ac1984eaa7675ca8d5745a8cb87ef7abecb5592178406e55858d411eadc0 \
29-
--hash=sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396 \
30-
--hash=sha256:24a570cd11895b60829e941f2613a4f79df1a27344cbbb82164ef2e0116f09c7 \
31-
--hash=sha256:24ec4ff2c5c0c8f9c6b87d5bb53555bf267e1e6f70e52e5a9740d32861d36b6f \
32-
--hash=sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73 \
33-
--hash=sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315 \
34-
--hash=sha256:293e7ea41280cb28c6fcaaa0b1aa1f533b8ce060b9e701d78511e1e6c4a1de76 \
35-
--hash=sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1 \
36-
--hash=sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49 \
37-
--hash=sha256:3c3f39fa737542161d8b0d680df2ec249334cd70a8f420f71c9304bd83c3cbed \
38-
--hash=sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892 \
39-
--hash=sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482 \
40-
--hash=sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058 \
41-
--hash=sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5 \
42-
--hash=sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53 \
43-
--hash=sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045 \
44-
--hash=sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3 \
45-
--hash=sha256:681d07b0d1e3c462dd15585ef5e33cb021321588bebd910124ef4f4fb71aef55 \
46-
--hash=sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5 \
47-
--hash=sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e \
48-
--hash=sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c \
49-
--hash=sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369 \
50-
--hash=sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827 \
51-
--hash=sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053 \
52-
--hash=sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa \
53-
--hash=sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4 \
54-
--hash=sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322 \
55-
--hash=sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132 \
56-
--hash=sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62 \
57-
--hash=sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa \
58-
--hash=sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0 \
59-
--hash=sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396 \
60-
--hash=sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e \
61-
--hash=sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991 \
62-
--hash=sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6 \
63-
--hash=sha256:cc5a8e069b9ebfa22e26d0e6b97d6f9781302fe7f4f2b8776c3e1daea35f1adc \
64-
--hash=sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1 \
65-
--hash=sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406 \
66-
--hash=sha256:df5052c5d867c1ea0b311fb7c3cd28b19df469c056f7fdcfe88c7473aa63e333 \
67-
--hash=sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d \
68-
--hash=sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c
69-
pycparser==2.20 \
70-
--hash=sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0 \
71-
--hash=sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705
72-
EOF
73-
74-
${PYPATH}/bin/python -m pip install -r /tmp/requirements.txt
75-
7618
mkdir -p /tmp/wheels
7719

7820
${PYPATH}/bin/python -m pip wheel -v /project -w /tmp/wheels --no-deps

docs/news.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ Changes
8282
* Added CI coverage for newer Anaconda Python versions.
8383
* Packages used in CI have been upgraded to latest versions. This should
8484
nominally only impact developers of this project and not end-users.
85+
* ``pyproject.toml`` now declares a ``[build-system]`` section saying to build
86+
with setuptools.
87+
* CI now builds wheels with pip instead of ``setup.py`` directly.
8588

8689
0.21.0 (released 2023-04-16)
8790
============================

pyproject.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
1+
[build-system]
2+
requires = [
3+
"cffi==1.16.0",
4+
"setuptools==68.2.2",
5+
"wheel==0.41.2",
6+
]
7+
# Need to use legacy backend because setup_zstd.py breaks build isolation.
8+
build-backend = "setuptools.build_meta:__legacy__"
9+
110
[tool.black]
211
line-length = 80

0 commit comments

Comments
 (0)