diff --git a/.github/workflows/ci-wheels.yml b/.github/workflows/ci-wheels.yml index 09d13ade..357cae46 100644 --- a/.github/workflows/ci-wheels.yml +++ b/.github/workflows/ci-wheels.yml @@ -26,21 +26,33 @@ concurrency: jobs: build_bdist: - name: "Build bdist ${{ matrix.arch }} ${{ matrix.os }}" - runs-on: ${{ matrix.os }} + name: "Build ${{ matrix.os }} (${{ matrix.arch }}) wheels" + runs-on: ${{ matrix.os }}-latest strategy: fail-fast: false matrix: - # TBD: extend to support osx and windows - os: [ubuntu-latest] - arch: [auto64] + # TBD: extend to support windows + os: ["ubuntu", "macos"] + arch: ["x86_64", "arm64"] + exclude: + - os: ubuntu + arch: arm64 + include: + - os: ubuntu + incdir: /usr/include/udunits2 + libdir: /usr/lib64 + xml_path: /usr/share/udunits/udunits2.xml + - os: macos + incdir: /usr/local/Cellar/udunits/2.2.28/include + libdir: /usr/local/Cellar/udunits/2.2.28/lib + xml_path: /usr/local/Cellar/udunits/2.2.28/share/udunits/udunits2-common.xml steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - - name: "Building bdist" + - name: "Building ${{ matrix.os }} (${{ matrix.arch }}) wheels" uses: pypa/cibuildwheel@v2.8.0 env: CIBW_SKIP: "cp36-* cp37-* pp* *-musllinux*" @@ -48,13 +60,16 @@ jobs: CIBW_BUILD_FRONTEND: build CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 CIBW_BEFORE_BUILD_LINUX: yum install -y udunits2-devel + CIBW_BEFORE_BUILD_MACOS: brew install udunits + # https://cibuildwheel.readthedocs.io/en/stable/faq/#apple-silicon + CIBW_TEST_SKIP: "*_arm64" CIBW_TEST_REQUIRES: pytest CIBW_TEST_COMMAND: > python -c 'import cf_units; print(f"cf-units v{cf_units.__version__}")' && python -m pytest --pyargs cf_units - UDUNITS2_INCDIR: /usr/include/udunits2 - UDUNITS2_LIBDIR: /usr/lib64 - UDUNITS2_XML_PATH: /usr/share/udunits/udunits2.xml + UDUNITS2_INCDIR: ${{ matrix.incdir }} + UDUNITS2_LIBDIR: ${{ matrix.libdir }} + UDUNITS2_XML_PATH: ${{ matrix.xml_path }} CIBW_ENVIRONMENT_PASS_LINUX: UDUNITS2_INCDIR UDUNITS2_LIBDIR UDUNITS2_XML_PATH - uses: actions/upload-artifact@v3 @@ -135,4 +150,3 @@ jobs: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }} print_hash: true - diff --git a/MANIFEST.in b/MANIFEST.in index 9fdd77f3..312f34cb 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,9 +1,13 @@ -include *.txt -include *.md -recursive-include cf_units *.py *.pxd *.pyx *.c -include cf_units/etc/site.cfg.template -include CHANGES COPYING COPYING.LESSER INSTALL -exclude cf_units/etc/site.cfg -graft requirements +# Top-level files +include CHANGES COPYING COPYING.LESSER INSTALL README.md prune .github -exclude cf_units/_version.py +exclude .gitignore + +# Files required for conda package management +recursive-include requirements * + +# Files required to build docs +recursive-include docs * +prune docs/build + +exclude cf_units/etc/site.cfg \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 375f17ff..81ed8b86 100644 --- a/setup.cfg +++ b/setup.cfg @@ -41,7 +41,7 @@ install_requires = numpy # udunits2 cannot be installed with pip, and it is expected to be # installed separately. -packages = find: +packages = find_namespace: python_requires = >=3.8 zip_safe = False