From 1b19ebb53147b503236099f3f32f6259ef3e23bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 11 Oct 2021 07:07:50 +0200 Subject: [PATCH 01/13] CIBW: add support for py3.10; use CIBWv2 --- .github/workflows/main.yml | 6 +----- pyproject.toml | 7 +++++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b2321d97..fb1ff70e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,11 +59,7 @@ jobs: fetch-depth: '0' - name: Build wheels - uses: pypa/cibuildwheel@v1.11.1.post1 - env: - CIBW_BUILD: cp36-* cp37-* cp38-* cp39-* - CIBW_TEST_EXTRAS: test - CIBW_TEST_COMMAND: pytest -v {project}/tests + uses: pypa/cibuildwheel@v2.1.3 with: output-dir: dist diff --git a/pyproject.toml b/pyproject.toml index e701830c..32dede29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,3 +68,10 @@ target-version = [ max-statements = 80 max-attributes = 25 max-public-methods = 75 + +[tool.cibuildwheel] +# Disable building PyPy wheels on all platforms +skip = "pp*" +# Run the package tests using `pytest` +test-extras: "test" +test-command = "pytest -v {package}/tests" From 89a483d7b9298da4ceb9da20812f52879a43f2ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 11 Oct 2021 07:16:37 +0200 Subject: [PATCH 02/13] CI: fix old typo --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fb1ff70e..2e399cac 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v2 - name: Set up Python 3.8 - uses: actions\setup-python@v2 + uses: actions/setup-python@v2 with: python-version: 3.8 @@ -82,7 +82,7 @@ jobs: fetch-depth: '0' - name: Set up Python ${{ matrix.python-version }} - uses: actions\setup-python@v2 + uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} From 48457d7aed998de7b4c6b43e8532c374ce6b4579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 11 Oct 2021 07:21:37 +0200 Subject: [PATCH 03/13] pyproject: fix typo --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 32dede29..5294fc59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,5 +73,5 @@ target-version = [ # Disable building PyPy wheels on all platforms skip = "pp*" # Run the package tests using `pytest` -test-extras: "test" +test-extras = "test" test-command = "pytest -v {package}/tests" From acb521acc70d34f8521c5e24adf99f6ab3b843cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 20 Oct 2021 13:27:00 +0200 Subject: [PATCH 04/13] CI: add py3.10 to sdist test --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2e399cac..0b099b91 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -74,7 +74,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: [3.6, 3.7, 3.8, 3.9] + python-version: [3.6, 3.7, 3.8, 3.9, 3.10] steps: - uses: actions/checkout@v2 From 596ffd6557feeb5c23af1c325c611bd29dfb7f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 21 Oct 2021 13:13:39 +0200 Subject: [PATCH 05/13] CIBW: skip 32bit builds for py3.10 like numpy --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5294fc59..fa28a375 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,8 +70,8 @@ target-version = [ max-public-methods = 75 [tool.cibuildwheel] -# Disable building PyPy wheels on all platforms -skip = "pp*" +# Disable building PyPy wheels on all platforms and 32bit for py3.10 +skip = "pp* cp310-win32 cp310-manylinux_i686" # Run the package tests using `pytest` test-extras = "test" test-command = "pytest -v {package}/tests" From c5aa154cdddd9da0bc0e407cc01943fc83ff830f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 21 Oct 2021 13:29:03 +0200 Subject: [PATCH 06/13] CI: update python version strings --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0b099b91..d531b565 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -74,7 +74,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: [3.6, 3.7, 3.8, 3.9, 3.10] + python-version: ['3.6', '3.7', '3.8', '3.9', '3.10'] steps: - uses: actions/checkout@v2 From 68ea3b5e4ddff872af461940f7ff85a2194fe9dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 8 Nov 2021 14:18:08 +0100 Subject: [PATCH 07/13] CI: use latest cibuildwheel version --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d531b565..d1c9472b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,7 +59,7 @@ jobs: fetch-depth: '0' - name: Build wheels - uses: pypa/cibuildwheel@v2.1.3 + uses: pypa/cibuildwheel@v2.2.2 with: output-dir: dist From 601459b91c264a32f7a898234ca505d07ce4e560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 8 Nov 2021 15:07:57 +0100 Subject: [PATCH 08/13] CI: manylinux2014 for cp310 (like scipy) --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index fa28a375..7196c3dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,3 +75,7 @@ skip = "pp* cp310-win32 cp310-manylinux_i686" # Run the package tests using `pytest` test-extras = "test" test-command = "pytest -v {package}/tests" + +[[tool.cibuildwheel.overrides]] +select = "cp310-*" +manylinux-x86_64-image = "manylinux2014" From 04531fac67cf3c3d0742fed33e5541a7e63f959c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 8 Nov 2021 20:45:44 +0100 Subject: [PATCH 09/13] CI: skip musllinux --- pyproject.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7196c3dd..cc16563e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,12 +70,13 @@ target-version = [ max-public-methods = 75 [tool.cibuildwheel] -# Disable building PyPy wheels on all platforms and 32bit for py3.10 -skip = "pp* cp310-win32 cp310-manylinux_i686" +# Disable building PyPy wheels on all platforms, 32bit for py3.10 and musllinux builds +skip = "pp* cp310-win32 cp310-manylinux_i686 *-musllinux_*" # Run the package tests using `pytest` test-extras = "test" test-command = "pytest -v {package}/tests" [[tool.cibuildwheel.overrides]] +# use manylinux2014 for py3.10 select = "cp310-*" manylinux-x86_64-image = "manylinux2014" From 83ea2865a64d95834f1ad474a2594b1096533e66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 15 Nov 2021 12:39:07 +0100 Subject: [PATCH 10/13] CI: use manylinux1 for cp3.6 wheels --- pyproject.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index cc16563e..11366ff1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,6 +76,11 @@ skip = "pp* cp310-win32 cp310-manylinux_i686 *-musllinux_*" test-extras = "test" test-command = "pytest -v {package}/tests" +[[tool.cibuildwheel.overrides]] +# use manylinux1 for py3.6 +select = "cp36-*" +manylinux-x86_64-image = "manylinux1" + [[tool.cibuildwheel.overrides]] # use manylinux2014 for py3.10 select = "cp310-*" From 6be59f035d6936d6eedda0e086c7995fd58a8d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 16 Nov 2021 16:52:20 +0100 Subject: [PATCH 11/13] CI: auditwheel 4 is smart enough to build manylinux1 compatible wheels for py3.6 --- pyproject.toml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 11366ff1..cc16563e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,11 +76,6 @@ skip = "pp* cp310-win32 cp310-manylinux_i686 *-musllinux_*" test-extras = "test" test-command = "pytest -v {package}/tests" -[[tool.cibuildwheel.overrides]] -# use manylinux1 for py3.6 -select = "cp36-*" -manylinux-x86_64-image = "manylinux1" - [[tool.cibuildwheel.overrides]] # use manylinux2014 for py3.10 select = "cp310-*" From 8948f5f37cb3280951ba6fb7f17491c52ba6ecfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 17 Nov 2021 14:33:11 +0100 Subject: [PATCH 12/13] CI: separate jobs per arch for wheels; add universal2 wheel for macos --- .github/workflows/main.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d1c9472b..a4de129a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,12 +46,18 @@ jobs: python -m isort --check --diff --color . build_wheels: - name: wheels on ${{ matrix.os }} - runs-on: ${{ matrix.os }} + name: wheels for ${{ matrix.cfg.os }} / ${{ matrix.cfg.arch }} + runs-on: ${{ matrix.cfg.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + cfg: + - { os: ubuntu-latest, arch: x86_64 } + - { os: ubuntu-latest, arch: i686 } + - { os: windows-latest, arch: AMD64 } + - { os: windows-latest, arch: x86 } + - { os: macos-latest, arch: x86_64 } + - { os: macos-latest, arch: universal2 } steps: - uses: actions/checkout@v2 @@ -60,6 +66,8 @@ jobs: - name: Build wheels uses: pypa/cibuildwheel@v2.2.2 + env: + CIBW_ARCHS: ${{ matrix.cfg.arch }} with: output-dir: dist From ce25b326db16701273ae7e5e86c8685b6c9b0376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 17 Nov 2021 14:33:46 +0100 Subject: [PATCH 13/13] CI: also add arm64 wheels to be on the safe side --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a4de129a..760d97bf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -57,6 +57,7 @@ jobs: - { os: windows-latest, arch: AMD64 } - { os: windows-latest, arch: x86 } - { os: macos-latest, arch: x86_64 } + - { os: macos-latest, arch: arm64 } - { os: macos-latest, arch: universal2 } steps: