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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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/29] 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: From 5b97d674a713e754cd9c317798bfb197b2a31cdb 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 14/29] 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 7da065ca..2e399cac 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 672b006766406dc38eaae9e78a729eb42fed82b6 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 15/29] 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 4563341ab6b0982564efca3b32a685f66c585cbc 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 16/29] 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 d5ca1f23f7b1e502843ae6ff737465ece50e9067 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 17/29] 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 44cd73cecbf0a0504166d20098cb30c3d3d76a80 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 18/29] 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 57b550080cfc5af90197954992118a3ed198784f 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 19/29] 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 332ec740b5172c530c1ba3e1da40488331b9c7bc 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 20/29] 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 9633c5899c5a5c22f056f9dd280f3c095c9ab399 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 21/29] 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 42d4f512c394523fca8debd339d1e3810aa8df9e 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 22/29] 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 26debc50ea582cd8c960f1cc94c0c1b125e63755 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 23/29] 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 9944cca139b77fa28aabf3993852009cc4f5a8f9 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 24/29] 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 0f87dd44e6969f1246ade4620add12bf33156825 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 25/29] 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: From 791203fe979ed112a1fb083f2c3370585ca1cc51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 17 Nov 2021 14:58:16 +0100 Subject: [PATCH 26/29] CI: skip testing arm64 on macos --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index cc16563e..172ab8c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,6 +75,8 @@ skip = "pp* cp310-win32 cp310-manylinux_i686 *-musllinux_*" # Run the package tests using `pytest` test-extras = "test" test-command = "pytest -v {package}/tests" +# Skip trying to test arm64 builds on Intel Macs +test-skip = "*-macosx_arm64 *-macosx_universal2:arm64" [[tool.cibuildwheel.overrides]] # use manylinux2014 for py3.10 From 6bb10bc60690727d8480dc431602427b67ab276a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 17 Nov 2021 15:41:37 +0100 Subject: [PATCH 27/29] Setup.cfg: add more classifiers --- setup.cfg | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/setup.cfg b/setup.cfg index 5a59f87c..eade3901 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,9 +16,12 @@ classifiers = Intended Audience :: Developers Intended Audience :: End Users/Desktop Intended Audience :: Science/Research + Intended Audience :: Education License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3) Natural Language :: English Operating System :: Unix + Operating System :: Microsoft + Operating System :: MacOS Programming Language :: Python Programming Language :: Python :: 3 Programming Language :: Python :: 3 :: Only @@ -26,9 +29,15 @@ classifiers = Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 Topic :: Scientific/Engineering + Topic :: Scientific/Engineering :: GIS + Topic :: Scientific/Engineering :: Hydrology + Topic :: Scientific/Engineering :: Mathematics + Topic :: Scientific/Engineering :: Physics Topic :: Utilities project_urls = + Homepage = https://geostat-framework.org/#gstools Documentation = https://gstools.readthedocs.io Source = https://github.com/GeoStat-Framework/GSTools Tracker = https://github.com/GeoStat-Framework/GSTools/issues From 3d6c7870122dbc68f470d491f9eba237248612f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 17 Nov 2021 15:42:03 +0100 Subject: [PATCH 28/29] CI: use build to build wheels --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 172ab8c7..219f0bb7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,6 +70,8 @@ target-version = [ max-public-methods = 75 [tool.cibuildwheel] +# Switch to using build +build-frontend = "build" # 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` From c462c5094740351b6040e89e60cb2da2739b1af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 17 Nov 2021 15:42:13 +0100 Subject: [PATCH 29/29] update Changelog --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82b9afd4..2f017a28 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,12 @@ All notable changes to **GSTools** will be documented in this file. -## [1.3.4] - Pure Pink ? +## [1.3.4] - Pure Pink - 2021-11 ### Enhancements - add GStools-Core as optional dependency [#215](https://github.com/GeoStat-Framework/GSTools/pull/215) +- provide wheels for Python 3.10 [#211](https://github.com/GeoStat-Framework/GSTools/pull/211) +- provide macOS wheels for Apple Silicon [#211](https://github.com/GeoStat-Framework/GSTools/pull/211) ### Changes - remove unnecessary `dim` argument in Cython code [#216](https://github.com/GeoStat-Framework/GSTools/issues/216) @@ -319,7 +321,8 @@ See: [#197](https://github.com/GeoStat-Framework/GSTools/issues/197) First release of GSTools. -[Unreleased]: https://github.com/GeoStat-Framework/gstools/compare/v1.3.3...HEAD +[Unreleased]: https://github.com/GeoStat-Framework/gstools/compare/v1.3.4...HEAD +[1.3.4]: https://github.com/GeoStat-Framework/gstools/compare/v1.3.3...v1.3.4 [1.3.3]: https://github.com/GeoStat-Framework/gstools/compare/v1.3.2...v1.3.3 [1.3.2]: https://github.com/GeoStat-Framework/gstools/compare/v1.3.1...v1.3.2 [1.3.1]: https://github.com/GeoStat-Framework/gstools/compare/v1.3.0...v1.3.1