-
Notifications
You must be signed in to change notification settings - Fork 260
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1381 from effigies/py313
Add broad testing for Python 3.13
- Loading branch information
Showing
7 changed files
with
144 additions
and
97 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -113,31 +113,49 @@ jobs: | |
fail-fast: false | ||
matrix: | ||
os: ['ubuntu-latest', 'windows-latest', 'macos-13', 'macos-latest'] | ||
python-version: ["3.9", "3.10", "3.11", "3.12"] | ||
architecture: ['x64', 'x86', 'arm64'] | ||
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"] | ||
architecture: ['x86', 'x64', 'arm64'] | ||
dependencies: ['full', 'pre'] | ||
include: | ||
# Basic dependencies only | ||
- os: ubuntu-latest | ||
python-version: 3.9 | ||
python-version: "3.9" | ||
architecture: 'x64' | ||
dependencies: 'none' | ||
# Absolute minimum dependencies | ||
- os: ubuntu-latest | ||
python-version: 3.9 | ||
python-version: "3.9" | ||
architecture: 'x64' | ||
dependencies: 'min' | ||
# NoGIL | ||
- os: ubuntu-latest | ||
python-version: '3.13-dev' | ||
dependencies: 'dev' | ||
exclude: | ||
# x86 for Windows + Python<3.12 | ||
- os: ubuntu-latest | ||
architecture: x86 | ||
# Use ubuntu-latest to cover the whole range of Python. For Windows | ||
# and OSX, checking oldest and newest should be sufficient. | ||
- os: windows-latest | ||
python-version: "3.10" | ||
- os: windows-latest | ||
python-version: "3.11" | ||
- os: windows-latest | ||
python-version: "3.12" | ||
- os: macos-13 | ||
python-version: "3.10" | ||
- os: macos-13 | ||
python-version: "3.11" | ||
- os: macos-13 | ||
python-version: "3.12" | ||
- os: macos-latest | ||
python-version: "3.10" | ||
- os: macos-latest | ||
python-version: "3.11" | ||
- os: macos-latest | ||
python-version: "3.12" | ||
|
||
## Unavailable architectures | ||
# x86 is available for Windows | ||
- os: ubuntu-latest | ||
architecture: x86 | ||
- os: macos-latest | ||
architecture: x86 | ||
- python-version: '3.12' | ||
- os: macos-13 | ||
architecture: x86 | ||
# arm64 is available for macos-14+ | ||
- os: ubuntu-latest | ||
|
@@ -149,6 +167,8 @@ jobs: | |
# x64 is not available for macos-14+ | ||
- os: macos-latest | ||
architecture: x64 | ||
|
||
## Reduced support | ||
# Drop pre tests for macos-13 | ||
- os: macos-13 | ||
dependencies: pre | ||
|
@@ -167,25 +187,37 @@ jobs: | |
with: | ||
submodules: recursive | ||
fetch-depth: 0 | ||
- name: Install the latest version of uv | ||
uses: astral-sh/setup-uv@v4 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
if: "!endsWith(matrix.python-version, '-dev')" | ||
if: "!endsWith(matrix.python-version, 't')" | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
architecture: ${{ matrix.architecture }} | ||
allow-prereleases: true | ||
- name: Set up Python ${{ matrix.python-version }} | ||
if: endsWith(matrix.python-version, '-dev') | ||
uses: deadsnakes/[email protected] | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
nogil: true | ||
if: endsWith(matrix.python-version, 't') | ||
run: | | ||
echo "UV_PYTHON=${IMPL}-${VERSION}-${OS%-*}-${ARCH}-${LIBC}" >> $GITHUB_ENV | ||
source $GITHUB_ENV | ||
uv python install $UV_PYTHON | ||
env: | ||
IMPL: cpython | ||
VERSION: ${{ matrix.python-version }} | ||
# uv expects linux|macos|windows, we can drop the -* but need to rename ubuntu | ||
OS: ${{ matrix.os == 'ubuntu-latest' && 'linux' || matrix.os }} | ||
# uv expects x86, x86_64, aarch64 (among others) | ||
ARCH: ${{ matrix.architecture == 'x64' && 'x86_64' || | ||
matrix.architecture == 'arm64' && 'aarch64' || | ||
matrix.architecture }} | ||
# windows and macos have no options, gnu is the only option for the archs | ||
LIBC: ${{ matrix.os == 'ubuntu-latest' && 'gnu' || 'none' }} | ||
- name: Display Python version | ||
run: python -c "import sys; print(sys.version)" | ||
- name: Install tox | ||
run: | | ||
python -m pip install --upgrade pip | ||
python -m pip install tox tox-gh-actions | ||
uv tool install -v tox --with=git+https://github.com/effigies/tox-gh-actions@abiflags --with=tox-uv | ||
- name: Show tox config | ||
run: tox c | ||
- name: Run tox | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
# Auto-generated by tools/update_requirements.py | ||
-r requirements.txt | ||
sphinx | ||
matplotlib>=1.5.3 | ||
matplotlib>=3.5 | ||
numpydoc | ||
texext | ||
tomli; python_version < '3.11' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,16 @@ | ||
# Auto-generated by tools/update_requirements.py | ||
numpy ==1.20 | ||
packaging ==17 | ||
importlib_resources ==1.3; python_version < '3.9' | ||
# This file was autogenerated by uv via the following command: | ||
# uv pip compile --resolution lowest-direct --python 3.9 -o min-requirements.txt pyproject.toml | ||
importlib-resources==5.12.0 | ||
# via nibabel (pyproject.toml) | ||
numpy==1.22.0 | ||
# via nibabel (pyproject.toml) | ||
packaging==20.0 | ||
# via nibabel (pyproject.toml) | ||
pyparsing==3.2.0 | ||
# via packaging | ||
six==1.16.0 | ||
# via packaging | ||
typing-extensions==4.6.0 | ||
# via nibabel (pyproject.toml) | ||
zipp==3.20.2 | ||
# via importlib-resources |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
# Auto-generated by tools/update_requirements.py | ||
numpy >=1.20 | ||
packaging >=17 | ||
importlib_resources >=1.3; python_version < '3.9' | ||
numpy >=1.22 | ||
packaging >=20 | ||
importlib_resources >=5.12; python_version < '3.12' | ||
typing_extensions >=4.6; python_version < '3.13' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters