Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 71 additions & 47 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,14 @@ jobs:
- "3.12"
- "3.13"
- "3.14"
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, macos-latest, windows-latest, windows-11-arm]
exclude:
- os: macos-latest
python-version: "pypy-3.11"
- os: windows-11-arm
python-version: "pypy-3.11"
- os: windows-11-arm
python-version: "3.10"

steps:
- name: checkout
Expand Down Expand Up @@ -128,27 +132,24 @@ jobs:
echo "dir=$(pip cache dir)" >> $Env:GITHUB_OUTPUT

- name: pip cache (default)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ !startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-default.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
key: ${{ runner.os }}-${{ runner.arch }}-pip-${{ matrix.python-version }}

- name: pip cache (Windows)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-windows.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
key: ${{ runner.os }}-${{ runner.arch }}-pip-${{ matrix.python-version }}


- name: Install Build Dependencies
run: |
pip install -U pip
pip install -U "setuptools >= 78.1.1,< 81" wheel twine
pip install -U "setuptools >= 78.1.1,< 82" wheel twine

- name: Build Acquisition (macOS x86_64)
if: >
Expand Down Expand Up @@ -186,10 +187,17 @@ jobs:
python setup.py build_ext -i
python setup.py bdist_wheel

- name: Create Acquisition sdist
if: >
startsWith(runner.os, 'Linux')
&& matrix.python-version == '3.14'
run: |
python setup.py sdist

- name: Install Acquisition and dependencies
run: |
# Install to collect dependencies into the (pip) cache.
pip install -U pip "setuptools >= 78.1.1,< 81"
pip install -U pip "setuptools >= 78.1.1,< 82"
pip install .[test]

- name: Check Acquisition build
Expand All @@ -199,7 +207,7 @@ jobs:
- name: Upload Acquisition wheel (macOS x86_64)
if: >
startsWith(runner.os, 'Mac')
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
# The x86_64 wheel is uploaded with a different name just so it can be
# manually downloaded when desired. The wheel itself *cannot* be tested
Expand All @@ -210,18 +218,33 @@ jobs:
if: >
startsWith(runner.os, 'Mac')
&& !startsWith(matrix.python-version, 'pypy')
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: Acquisition-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/*arm64.whl
- name: Upload Acquisition wheel (all other platforms)
if: >
!startsWith(runner.os, 'Mac')
uses: actions/upload-artifact@v4
- name: Upload Acquisition wheel (Windows)
if: startsWith(runner.os, 'Windows')
uses: actions/upload-artifact@v7
with:
name: Acquisition-${{ runner.os }}-${{ matrix.python-version }}-${{ runner.arch }}.whl
path: dist/*whl

- name: Upload Acquisition wheel (Linux)
if: startsWith(runner.os, 'Linux')
uses: actions/upload-artifact@v7
with:
name: Acquisition-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/*whl

- name: Upload Acquisition sdist
if: >
startsWith(runner.os, 'Linux')
&& matrix.python-version == '3.14'
uses: actions/upload-artifact@v7
with:
name: Acquisition.tar.gz
path: dist/*gz

test:
needs: build-package
runs-on: ${{ matrix.os }}
Expand All @@ -235,10 +258,14 @@ jobs:
- "3.12"
- "3.13"
- "3.14"
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, macos-latest, windows-latest, windows-11-arm]
exclude:
- os: macos-latest
python-version: "pypy-3.11"
- os: windows-11-arm
python-version: "pypy-3.11"
- os: windows-11-arm
python-version: "3.10"

steps:
- name: checkout
Expand Down Expand Up @@ -269,31 +296,35 @@ jobs:
echo "dir=$(pip cache dir)" >> $Env:GITHUB_OUTPUT

- name: pip cache (default)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ !startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-default.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
key: ${{ runner.os }}-${{ runner.arch }}-pip-${{ matrix.python-version }}

- name: pip cache (Windows)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-windows.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
key: ${{ runner.os }}-${{ runner.arch }}-pip-${{ matrix.python-version }}

- name: Download Acquisition wheel
uses: actions/download-artifact@v4
- name: Download Acquisition wheel (Linux/macOS)
if: "!startsWith(runner.os, 'Windows')"
uses: actions/download-artifact@v8
with:
name: Acquisition-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/

- name: Download Acquisition wheel (Windows)
if: startsWith(runner.os, 'Windows')
uses: actions/download-artifact@v8
with:
name: Acquisition-${{ runner.os }}-${{ matrix.python-version }}-${{ runner.arch }}.whl
path: dist/
- name: Install Acquisition
run: |
pip install -U wheel "setuptools >= 78.1.1,< 81"
pip install -U wheel "setuptools >= 78.1.1,< 82"
pip install -U coverage[toml]
pip install -U 'cffi; platform_python_implementation == "CPython"'
# Unzip into src/ so that testrunner can find the .so files
Expand Down Expand Up @@ -369,25 +400,21 @@ jobs:
echo "dir=$(pip cache dir)" >> $Env:GITHUB_OUTPUT

- name: pip cache (default)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ !startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-default.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
key: ${{ runner.os }}-${{ runner.arch }}-pip-${{ matrix.python-version }}

- name: pip cache (Windows)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-windows.outputs.dir }}
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-
key: ${{ runner.os }}-${{ runner.arch }}-pip-${{ matrix.python-version }}

- name: Download Acquisition wheel
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: Acquisition-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
Expand Down Expand Up @@ -447,22 +474,19 @@ jobs:
echo "dir=$(pip cache dir)" >> $Env:GITHUB_OUTPUT

- name: pip cache (default)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ !startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-default.outputs.dir }}
key: ${{ runner.os }}-pip_manylinux-${{ matrix.image }}-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-

- name: pip cache (Windows)
uses: actions/cache@v4
uses: actions/cache@v5
if: ${{ startsWith(runner.os, 'Windows') }}
with:
path: ${{ steps.pip-cache-windows.outputs.dir }}
key: ${{ runner.os }}-pip_manylinux-${{ matrix.image }}-${{ matrix.python-version }}
restore-keys: |
${{ runner.os }}-pip-


- name: Update pip
run: pip install -U pip
Expand All @@ -485,7 +509,7 @@ jobs:
bash .manylinux.sh

- name: Upload Acquisition wheels
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
path: wheelhouse/*whl
name: manylinux_${{ matrix.image }}_wheels.zip
Expand All @@ -509,7 +533,7 @@ jobs:

steps:
- name: Download all wheel artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
path: dist/
pattern: '*'
Expand All @@ -526,7 +550,7 @@ jobs:
# PyPy wheels shouldn't be uploaded, remove them if present
find dist/ -name "*pypy*" -type f -delete || true
find dist/ -name "*none-any*" -type f -delete || true
# Wheels for the no-yet-supported future Python version need to go
# Wheels for the not-yet-supported future Python version need to go
find dist/ -name "*3.15*" -type f -delete || true
find dist/ -name "*cp315*" -type f -delete || true
# For Linux, we only want the manylinux wheels
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,6 @@ lib64
log/
parts/
pyvenv.cfg
share/
testing.log
var/
3 changes: 2 additions & 1 deletion .meta.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code
[meta]
template = "c-code"
commit-id = "f62d8bab"
commit-id = "2c0272ea"

[python]
with-windows = true
Expand All @@ -11,6 +11,7 @@ with-sphinx-doctests = false
with-future-python = false
with-macos = false
with-docs = false
with-free-threaded-python = false

[tox]
use-flake8 = true
Expand Down
5 changes: 3 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
minimum_pre_commit_version: '3.6'
repos:
- repo: https://github.com/pycqa/isort
rev: "7.0.0"
rev: "8.0.1"
hooks:
- id: isort
- repo: https://github.com/hhatto/autopep8
Expand All @@ -12,14 +12,15 @@ repos:
- id: autopep8
args: [--in-place, --aggressive, --aggressive]
- repo: https://github.com/asottile/pyupgrade
rev: v3.21.0
rev: v3.21.2
hooks:
- id: pyupgrade
args: [--py310-plus]
- repo: https://github.com/isidentical/teyit
rev: 0.4.3
hooks:
- id: teyit
language_version: python3.13
- repo: https://github.com/PyCQA/flake8
rev: "7.3.0"
hooks:
Expand Down
4 changes: 4 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ Change log
6.3 (unreleased)
----------------

- Add support for automatically building and publishing Windows/ARM64 wheels.

- Add support for automatically building and publishing source distributions.


6.2 (2025-11-16)
----------------
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -83,3 +83,7 @@ source = [

[tool.setuptools.dynamic]
readme = {file = ["README.rst", "CHANGES.rst"]}

[tool.zest-releaser]
create-wheel = false
upload-pypi = false
4 changes: 0 additions & 4 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code

[zest.releaser]
create-wheel = no

[flake8]
doctests = 1

Expand Down
4 changes: 2 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ envlist =

[testenv]
deps =
setuptools >= 78.1.1,< 81
setuptools >= 78.1.1,< 82
setenv =
pure: PURE_PYTHON=1
!pure-!pypy3: PURE_PYTHON=0
Expand Down Expand Up @@ -53,7 +53,7 @@ deps =
twine
build
check-manifest
check-python-versions >= 0.20.0
check-python-versions >= 0.24.2
wheel
commands_pre =
commands =
Expand Down
Loading