Skip to content

Commit

Permalink
Update CI configuration to build wheels for Python 3.13
Browse files Browse the repository at this point in the history
  • Loading branch information
avalentino committed Nov 6, 2024
1 parent 13410b6 commit a9fe03e
Show file tree
Hide file tree
Showing 10 changed files with 719 additions and 615 deletions.
44 changes: 38 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,29 @@ jobs:
path: dist/*.tar.gz


lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install lint dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install flake8
if [ -f requirements-lint.txt ]; then pip install -r requirements-lint.txt; fi
- name: Lint (flake8)
run: |
python -m flake8 --count --show-source --statistics tables
build:
name: ${{ matrix.os }} ${{ matrix.python }} ${{ matrix.numpy }} ${{ matrix.name }}
runs-on: ${{ matrix.os }}
Expand All @@ -52,12 +75,15 @@ jobs:
# macos-13 is Intel, macos-latest is Apple Silicon
os: [ubuntu-latest, macos-13, macos-latest, windows-latest]
# Keep in sync with ``project.classifiers`` in ``pyproject.toml``.
python: ['3.10', '3.11', '3.12']
python: ['3.10', '3.11', '3.12', '3.13']
numpy: ['numpy']
include:
- os: ubuntu-latest
python: '3.12'
numpy: 'numpy>=2.1.dev0'
numpy: 'numpy>=2.2.dev0'
- os: ubuntu-latest
python: '3.12'
numpy: 'numpy<2'

steps:
- uses: actions/checkout@v4
Expand All @@ -71,16 +97,18 @@ jobs:
auto-update-conda: true
channels: conda-forge
channel-priority: strict
- name: Install compilers
if: runner.os != 'Linux'
run: |
conda install c-compiler cxx-compiler
- name: Install dependencies
run: |
# Keep in sync with
# "Prerequisites" in User's Guide,
# ``build-system.requires`` in ``pyproject.toml``.
conda install -q setuptools pip wheel build packaging numpy cython bzip2 hdf5 lzo
conda install -q bzip2 hdf5 lzo zlib pip
python -m pip install --require-hashes -r requirements.txt
python -m pip install --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple '${{ matrix.numpy }}'
# Keep in sync with ``project.optional-dependencies.doc`` in ``pyproject.toml``.
# conda install sphinx sphinx_rtd_theme numpydoc ipython
- name: Get source distribution
uses: actions/download-artifact@v4
with:
Expand Down Expand Up @@ -116,11 +144,15 @@ jobs:
auto-update-conda: true
channels: conda-forge
channel-priority: strict
- name: Install compilers
if: runner.os != 'Linux'
run: |
conda install c-compiler cxx-compiler
- name: Install dependencies
run: |
# Keep in sync with "Prerequisites" in User's Guide,
# ``build-system.requires`` in ``pyproject.toml``.
conda install setuptools pip wheel build packaging py-cpuinfo "numpy>=2" cython numexpr bzip2 hdf5 lzo 'typing_extensions>=4.4.0' c-blosc2
conda install bzip2 hdf5 lzo zlib blosc c-blosc2 pip setuptools wheel packaging py-cpuinfo "numpy>=2" cython numexpr 'typing_extensions>=4.4.0'
- name: Get source distrubtion
uses: actions/download-artifact@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/requirements/build-requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ pip>=24.0.0
tomli>=1.1.0
wheel
build
cython>=3.0.10
cython>=3.0.11
# deps not resolved
importlib-metadata>=4.6
60 changes: 30 additions & 30 deletions .github/workflows/requirements/build-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#
# This file is autogenerated by pip-compile with Python 3.12
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# pip-compile --allow-unsafe --generate-hashes build-requirements.in
# pip-compile --allow-unsafe --generate-hashes .github/workflows/requirements/build-requirements.in
#
build==1.2.1 \
--hash=sha256:526263f4870c26f26c433545579475377b2b7588b6f1eac76a001e873ae3e19d \
--hash=sha256:75e10f767a433d9a86e50d83f418e83efc18ede923ee5ff7df93b6cb0306c5d4
# via -r build-requirements.in
build==1.2.2.post1 \
--hash=sha256:1d61c0887fa860c01971625baae8bdd338e517b836a2f70dd1f7aa3a6b2fc5b5 \
--hash=sha256:b36993e92ca9375a219c99e606a122ff365a760a2d4bba0caa09bd5278b608b7
# via -r .github/workflows/requirements/build-requirements.in
cython==3.0.11 \
--hash=sha256:0b1d1f6f94cc5d42a4591f6d60d616786b9cd15576b112bc92a23131fcf38020 \
--hash=sha256:0e25f6425ad4a700d7f77cd468da9161e63658837d1bc34861a9861a4ef6346d \
Expand Down Expand Up @@ -75,38 +75,38 @@ cython==3.0.11 \
--hash=sha256:eeb6860b0f4bfa402de8929833fe5370fa34069c7ebacb2d543cb017f21fb891 \
--hash=sha256:f3953d2f504176f929862e5579cfc421860c33e9707f585d70d24e1096accdf7 \
--hash=sha256:f988f7f8164a6079c705c39e2d75dbe9967e3dacafe041420d9af7b9ee424162
# via -r build-requirements.in
importlib-metadata==8.2.0 \
--hash=sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369 \
--hash=sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d
# via -r build-requirements.in
# via -r .github/workflows/requirements/build-requirements.in
importlib-metadata==8.5.0 \
--hash=sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b \
--hash=sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7
# via -r .github/workflows/requirements/build-requirements.in
packaging==24.1 \
--hash=sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 \
--hash=sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124
# via build
pyproject-hooks==1.1.0 \
--hash=sha256:4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965 \
--hash=sha256:7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2
pyproject-hooks==1.2.0 \
--hash=sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8 \
--hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913
# via build
tomli==2.0.1 \
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
--hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f
# via -r build-requirements.in
tomli==2.0.2 \
--hash=sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38 \
--hash=sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed
# via -r .github/workflows/requirements/build-requirements.in
wheel==0.44.0 \
--hash=sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f \
--hash=sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49
# via -r build-requirements.in
zipp==3.19.2 \
--hash=sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19 \
--hash=sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c
# via -r .github/workflows/requirements/build-requirements.in
zipp==3.20.2 \
--hash=sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350 \
--hash=sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
pip==24.2 \
--hash=sha256:2cd581cf58ab7fcfca4ce8efa6dcacd0de5bf8d0a3eb9ec927e07405f4d9e2a2 \
--hash=sha256:5b5e490b5e9cb275c879595064adce9ebd31b854e3e803740b72f9ccf34a45b8
# via -r build-requirements.in
setuptools==72.1.0 \
--hash=sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1 \
--hash=sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec
# via -r build-requirements.in
pip==24.3.1 \
--hash=sha256:3790624780082365f47549d032f3770eeb2b1e8bd1f7b2e02dace1afa361b4ed \
--hash=sha256:ebcb60557f2aefabc2e0f918751cd24ea0d56d8ec5445fe1807f1d2109660b99
# via -r .github/workflows/requirements/build-requirements.in
setuptools==75.3.0 \
--hash=sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd \
--hash=sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686
# via -r .github/workflows/requirements/build-requirements.in
Loading

0 comments on commit a9fe03e

Please sign in to comment.