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
17 changes: 2 additions & 15 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,7 @@ jobs:
else
variant=python-gil
fi
channels=conda-forge,nodefaults
if [[ $pyver == 3.15 ]]; then
# TODO: drop this branch once Python 3.15.0 final is on conda-forge.
# Until then the 3.15 release candidates need `_python_rc`, which only
# the `python_rc` label provides. The label must rank *below*
# conda-forge: it also holds older `python` rc builds (but no 3.15), and
# strict channel priority would then hide conda-forge's 3.15 rc.
channels=conda-forge,conda-forge/label/python_rc,nodefaults
awk '{ print } /^ - conda-forge$/ { print " - conda-forge/label/python_rc" }' \
continuous_integration/environment.yml > environment-ci.yml
else
cp continuous_integration/environment.yml environment-ci.yml
fi
echo "CONDA_CHANNELS=$channels" >> "$GITHUB_ENV"
cp continuous_integration/environment.yml environment-ci.yml
echo " - python=$pyver" >> environment-ci.yml
echo " - $variant" >> environment-ci.yml
cat environment-ci.yml
Expand All @@ -76,7 +63,7 @@ jobs:
with:
auto-update-conda: true
environment-file: environment-ci.yml
channels: ${{ env.CONDA_CHANNELS }}
channels: conda-forge,nodefaults
channel-priority: strict
activate-environment: suitesparse-graphblas
auto-activate-base: false
Expand Down
23 changes: 16 additions & 7 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
- name: Check metadata
run: pipx run twine check dist/*

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: sdist
path: dist/*.tar.gz
Expand All @@ -61,6 +61,10 @@ jobs:
include:
- os: windows-latest
cibw_archs: "auto64"
# No PyPy: NumPy has no wheels for PyPy 8.0, and a NumPy built from source here
# uses MinGW, which warns on import that it is experimental ("CRASHES ARE TO BE
# EXPECTED"), failing the tests.
cibw_skip: "pp*"

# Linux x86_64 manylinux
- os: ubuntu-latest
Expand Down Expand Up @@ -91,7 +95,8 @@ jobs:

# macOS Apple Silicon
# Keep runner version as old as possible: libomp determines minimum macOS version.
- os: macos-14
# macos-14 is retired on 2026-11-02 (and fails jobs during brownouts before then).
- os: macos-15
cibw_archs: "arm64"

# WebAssembly for Pyodide (PEP 783 `pyemscripten_*` wheels). GraphBLAS is built in
Expand Down Expand Up @@ -143,14 +148,16 @@ jobs:
brew fetch --retry libomp && brew reinstall libomp
echo "MACOSX_DEPLOYMENT_TARGET=$(otool -l "$(brew --prefix libomp)/lib/libomp.dylib" | grep minos | awk '{print $2}')" >> "$GITHUB_ENV"

- uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1
- uses: pypa/cibuildwheel@b3395e271a35f73dad77f21802abe9b986dfe299 # v4.3.1
with:
output-dir: wheelhouse
env:
# very verbose
CIBW_BUILD_VERBOSITY: 3

# PyPy is not built by default (since cibuildwheel v3); enable explicitly.
# cibuildwheel v4.3 builds PyPy 8.0, whose ABI tag (`pypy311_pp80`) PyPy 7.3 can't
# install, and NumPy has no wheels for it, so building and testing compile NumPy.
# Free-threaded wheels (cp314t, cp315t) are built and tested by default.
# cibuildwheel v4 dropped cp313t (and its "cpython-freethreading"
# enable option) entirely.
Expand Down Expand Up @@ -190,7 +197,9 @@ jobs:
# Architectures to build specified in matrix
CIBW_ARCHS: ${{ matrix.cibw_archs }}

CIBW_SKIP: "${{ matrix.cibw_skip }}"
# Skip PyPy 3.12 everywhere: no NumPy release builds on it yet (NumPy's bundled
# pythoncapi_compat.h redefines functions that PyPy 3.12 v8.0's headers declare).
CIBW_SKIP: "pp312-* ${{ matrix.cibw_skip }}"

# Use delvewheel on Windows.
# This copies graphblas.dll into the wheel. "repair" in cibuildwheel parlance includes copying any shared
Expand All @@ -208,7 +217,7 @@ jobs:
# `python -m pytest`, because the `pytest` script doesn't work in a Pyodide venv.
CIBW_TEST_COMMAND: "python -m pytest --pyargs suitesparse_graphblas -s -k test_print_jit_config && python -m pytest -v -W error --pyargs suitesparse_graphblas"

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: wheels-${{ matrix.os }}-${{ matrix.cibw_archs }}${{ matrix.arch_note}}
path: wheelhouse/*.whl
Expand All @@ -229,7 +238,7 @@ jobs:
permissions:
id-token: write # for Trusted Publishing (and its attestations)
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
path: dist
merge-multiple: true
Expand All @@ -250,7 +259,7 @@ jobs:
permissions:
id-token: write # for Trusted Publishing (and its attestations)
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
path: dist
merge-multiple: true
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ repos:
hooks:
- id: isort
- repo: https://github.com/asottile/pyupgrade
rev: v3.21.2
rev: v3.22.0
hooks:
- id: pyupgrade
args: [--py311-plus]
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 26.5.1
rev: 26.10.1
hooks:
- id: black
- repo: https://github.com/PyCQA/flake8
Expand Down
Loading