summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Vagelpohl <jens@plyp.com>2022-11-13 11:42:53 +0100
committerJens Vagelpohl <jens@plyp.com>2022-11-13 11:42:53 +0100
commitcfed1fcde83b26cb410ceb01720a5751ad49f704 (patch)
treea7fed0d7025725da550d2919809c0b3add3ee79f
parent778801576143685de2fb90727b207dd639248dee (diff)
downloadzope-i18nmessageid-cfed1fcde83b26cb410ceb01720a5751ad49f704.tar.gz
- Add support for building arm64 wheels on macOS.
-rw-r--r--.github/workflows/tests.yml112
-rw-r--r--.meta.toml2
-rw-r--r--CHANGES.rst2
-rw-r--r--appveyor.yml8
4 files changed, 84 insertions, 40 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 70629a7..4899b9f 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -117,9 +117,9 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
###
@@ -134,7 +134,7 @@ jobs:
echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
@@ -154,31 +154,57 @@ jobs:
pip install -U pip
pip install -U setuptools wheel twine cffi
- - name: Build zope.i18nmessageid (Python 3.10 on MacOS)
+ - name: Build zope.i18nmessageid (macOS x86_64, Python 3.8+)
if: >
startsWith(runner.os, 'Mac')
- && startsWith(matrix.python-version, '3.10')
+ && !(startsWith(matrix.python-version, 'pypy')
+ || matrix.python-version == '2.7'
+ || matrix.python-version == '3.5'
+ || matrix.python-version == '3.6'
+ || matrix.python-version == '3.7')
env:
- _PYTHON_HOST_PLATFORM: macosx-11-x86_64
+ MACOSX_DEPLOYMENT_TARGET: 10.9
+ _PYTHON_HOST_PLATFORM: macosx-10.9-x86_64
+ ARCHFLAGS: -arch x86_64
+ run: |
+ # Next, build the wheel *in place*. This helps ccache, and also lets us cache the configure
+ # output (pip install uses a random temporary directory, making this difficult).
+ python setup.py build_ext -i
+ python setup.py bdist_wheel
+ - name: Build zope.i18nmessageid (macOS arm64, Python 3.8+)
+ if: >
+ startsWith(runner.os, 'Mac')
+ && !(startsWith(matrix.python-version, 'pypy')
+ || matrix.python-version == '2.7'
+ || matrix.python-version == '3.5'
+ || matrix.python-version == '3.6'
+ || matrix.python-version == '3.7')
+ env:
+ MACOSX_DEPLOYMENT_TARGET: 11.0
+ _PYTHON_HOST_PLATFORM: macosx-11.0-arm64
+ ARCHFLAGS: -arch arm64
run: |
# Next, build the wheel *in place*. This helps ccache, and also lets us cache the configure
# output (pip install uses a random temporary directory, making this difficult).
python setup.py build_ext -i
python setup.py bdist_wheel
- # Also install it, so that we get dependencies in the (pip) cache.
- pip install -U 'faulthandler; python_version == "2.7" and platform_python_implementation == "CPython"'
- pip install .[test]
-
- name: Build zope.i18nmessageid (all other versions)
if: >
!startsWith(runner.os, 'Mac')
- || !startsWith(matrix.python-version, '3.10')
+ || startsWith(matrix.python-version, 'pypy')
+ || matrix.python-version == '2.7'
+ || matrix.python-version == '3.5'
+ || matrix.python-version == '3.6'
+ || matrix.python-version == '3.7'
run: |
# Next, build the wheel *in place*. This helps ccache, and also lets us cache the configure
# output (pip install uses a random temporary directory, making this difficult).
python setup.py build_ext -i
python setup.py bdist_wheel
- # Also install it, so that we get dependencies in the (pip) cache.
+
+ - name: Install zope.i18nmessageid and dependencies
+ run: |
+ # Install to collect dependencies into the (pip) cache.
pip install -U 'faulthandler; python_version == "2.7" and platform_python_implementation == "CPython"'
pip install .[test]
@@ -186,8 +212,32 @@ jobs:
run: |
ls -l dist
twine check dist/*
- - name: Upload zope.i18nmessageid wheel
- uses: actions/upload-artifact@v2
+ - name: Upload zope.i18nmessageid wheel (macOS x86_64)
+ if: >
+ startsWith(runner.os, 'Mac')
+ uses: actions/upload-artifact@v3
+ with:
+ name: zope.i18nmessageid-${{ runner.os }}-${{ matrix.python-version }}.whl
+ path: dist/*x86_64.whl
+ - name: Upload zope.i18nmessageid wheel (macOS arm64)
+ if: >
+ startsWith(runner.os, 'Mac')
+ && !(startsWith(matrix.python-version, 'pypy')
+ || matrix.python-version == '2.7'
+ || matrix.python-version == '3.5'
+ || matrix.python-version == '3.6'
+ || matrix.python-version == '3.7')
+ uses: actions/upload-artifact@v3
+ with:
+ # The arm64 wheel is uploaded with a different name just so it can be
+ # manually downloaded when desired. The wheel itself *cannot* be tested
+ # on the GHA runner, which uses x86_64 architecture.
+ name: zope.i18nmessageid-${{ runner.os }}-${{ matrix.python-version }}-arm64.whl
+ path: dist/*arm64.whl
+ - name: Upload zope.i18nmessageid wheel (all other platforms)
+ if: >
+ !startsWith(runner.os, 'Mac')
+ uses: actions/upload-artifact@v3
with:
name: zope.i18nmessageid-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/*whl
@@ -233,9 +283,9 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
###
@@ -250,7 +300,7 @@ jobs:
echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
@@ -258,7 +308,7 @@ jobs:
${{ runner.os }}-pip-
- name: Download zope.i18nmessageid wheel
- uses: actions/download-artifact@v2
+ uses: actions/download-artifact@v3
with:
name: zope.i18nmessageid-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
@@ -310,9 +360,9 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
###
@@ -327,7 +377,7 @@ jobs:
echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
@@ -335,7 +385,7 @@ jobs:
${{ runner.os }}-pip-
- name: Download zope.i18nmessageid wheel
- uses: actions/download-artifact@v2
+ uses: actions/download-artifact@v3
with:
name: zope.i18nmessageid-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
@@ -361,9 +411,9 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
###
@@ -378,7 +428,7 @@ jobs:
echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
@@ -386,7 +436,7 @@ jobs:
${{ runner.os }}-pip-
- name: Download zope.i18nmessageid wheel
- uses: actions/download-artifact@v2
+ uses: actions/download-artifact@v3
with:
name: zope.i18nmessageid-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
@@ -414,9 +464,9 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
###
@@ -431,7 +481,7 @@ jobs:
echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
- name: pip cache
- uses: actions/cache@v2
+ uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip_manylinux-${{ matrix.image }}-${{ matrix.python-version }}
@@ -468,14 +518,14 @@ jobs:
bash .manylinux.sh
- name: Upload zope.i18nmessageid wheels
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v3
with:
path: wheelhouse/*whl
name: manylinux_${{ matrix.image }}_wheels.zip
- name: Restore pip cache permissions
run: sudo chown -R $(whoami) ${{ steps.pip-cache.outputs.dir }}
- name: Publish package to PyPI
- uses: pypa/gh-action-pypi-publish@v1.4.1
+ uses: pypa/gh-action-pypi-publish@release/v1
if: >
github.event_name == 'push'
&& startsWith(github.ref, 'refs/tags')
diff --git a/.meta.toml b/.meta.toml
index a971dac..f74e092 100644
--- a/.meta.toml
+++ b/.meta.toml
@@ -2,7 +2,7 @@
# https://github.com/zopefoundation/meta/tree/master/config/c-code
[meta]
template = "c-code"
-commit-id = "b4dd6f9ffd3d6a2cde7dc70512c62d4c7ed22cd6"
+commit-id = "57e4030390098babcc18db626cc426388394c231"
[python]
with-appveyor = true
diff --git a/CHANGES.rst b/CHANGES.rst
index 2361fcd..a8ab3d3 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -5,6 +5,8 @@
5.11 (unreleased)
=================
+- Add support for building arm64 wheels on macOS.
+
5.1.0 (2022-11-06)
==================
diff --git a/appveyor.yml b/appveyor.yml
index ee3371e..992ec50 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -9,21 +9,13 @@ environment:
secure: aoZC/+rvJKg8B5GMGIxd1VZ0Oxtmc0lPMiqT2wHP5qBRoZf6tEB7n9u7uCIifcAX1IWsLCRF7DKWvvCQTFJL5HcQvXFQSnEuXvdMT/utFFx9eCCy+Cu+WuWkasGCG+gx9uhMTe01mixi8yujgVj894Xjdv5YyNH2dPeqV5kInTzYrOmKZs1FTvKTlYZNHyYWRnYhyaLBn4FmmeuXuFcd5o05jkaa2dnerW85F3sr7mWbCgL4GpEQ59rYX34Cl4EdEXw+IViTyFWJuZp+k9GCUnzxAmA+vlfoSbZ6JfvTLaU=
matrix:
- - python: 27
- python: 27-x64
- - python: 35
- python: 35-x64
- - python: 36
- python: 36-x64
- - python: 37
- python: 37-x64
- - python: 38
- python: 38-x64
- - python: 39
- python: 39-x64
- - python: 310
- python: 310-x64
- - python: 311
- python: 311-x64
install: