diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7da065ca..760d97bf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,12 +46,19 @@ 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: arm64 } + - { os: macos-latest, arch: universal2 } steps: - uses: actions/checkout@v2 @@ -59,11 +66,9 @@ jobs: fetch-depth: '0' - name: Build wheels - uses: pypa/cibuildwheel@v1.11.1.post1 + uses: pypa/cibuildwheel@v2.2.2 env: - CIBW_BUILD: cp36-* cp37-* cp38-* cp39-* - CIBW_TEST_EXTRAS: test - CIBW_TEST_COMMAND: pytest -v {project}/tests + CIBW_ARCHS: ${{ matrix.cfg.arch }} with: output-dir: dist @@ -78,7 +83,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 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 diff --git a/pyproject.toml b/pyproject.toml index e701830c..219f0bb7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,3 +68,19 @@ target-version = [ max-statements = 80 max-attributes = 25 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` +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 +select = "cp310-*" +manylinux-x86_64-image = "manylinux2014" 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