Skip to content

Update to support latest versions, including NumPy 2 #546

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 53 commits into from
Feb 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
a89e7f7
Update to support latest versions, including NumPy 2
eriknw Jul 1, 2024
8780495
Don't use numpy 2.0 in CI yet
eriknw Jul 1, 2024
28d0887
bump
eriknw Aug 29, 2024
98b983c
Updates for 9.3.1
jim22k Jan 8, 2025
b9a8724
Fix for JIT_ERROR only in >=9
jim22k Jan 8, 2025
2396bdb
Typo
jim22k Jan 8, 2025
77872b6
Don't install `fast_matrix_market` in Python 3.13
eriknw Jan 19, 2025
35bfde4
Update fmm in optional dependencies too
eriknw Jan 19, 2025
8280d4a
oops typo
eriknw Jan 19, 2025
ee79af3
Also ignore `fast_matrix_market` for macos (does not support osx-arm64)
eriknw Jan 19, 2025
e5cb1f1
allow conda install graphblas 9 in CI
eriknw Jan 19, 2025
cfd8947
Try to better handle random package selection in CI
eriknw Jan 19, 2025
a620137
Update pandas and awkward support for NumPy 2
eriknw Jan 19, 2025
b0c8bde
Handle scipy and numpy 2 in CI
eriknw Jan 19, 2025
1e94a24
Be more lenient when adding suitesparse exceptions
eriknw Jan 19, 2025
cbe2aa2
Better?
eriknw Jan 19, 2025
14ca640
Add pre-commit to check github actions
eriknw Jan 20, 2025
da458f1
Auto-lint other files with prettier and taplo
eriknw Jan 20, 2025
e1bc09b
Handle numpy 2 difference with overflowing uint
eriknw Jan 20, 2025
7b39e77
Handle (de)serialize with UDTs
eriknw Jan 20, 2025
b57bdf6
Use correct arch for jit in tests
jim22k Jan 29, 2025
5c10678
Try to use pytest-forked to investigate crashes
eriknw Feb 2, 2025
a7df0a7
Skip coverage in CI for now
eriknw Feb 2, 2025
08d698b
Add print statements to try to isolate segfaults
eriknw Feb 9, 2025
1410509
`pytest -s` to try to show output of crashing tests
eriknw Feb 9, 2025
5aca4d0
Record (and print) crashing calls
eriknw Feb 10, 2025
9ff77ed
Try to use `sysconfig` for configuring JIT
eriknw Feb 10, 2025
ed994d6
skip test (for now)
eriknw Feb 10, 2025
1449817
Print between recording and where we think we crash
eriknw Feb 10, 2025
9a8f4fd
numba 0.61
eriknw Feb 15, 2025
f6321b2
Sanity check: is the issue with the recorder?
eriknw Feb 15, 2025
1a5f81e
Drop awkward 1.9; more exploration
eriknw Feb 15, 2025
8417bc3
Don't install SuiteSparse:GraphBLAS 9.4 yet; also, burble
eriknw Feb 15, 2025
9bc88dc
remove conda defaults channel
eriknw Feb 15, 2025
548f4ac
and here
eriknw Feb 15, 2025
d32fd0b
oops `sparse` doesn't support Python 3.13 yet
eriknw Feb 15, 2025
621b1fb
Ignore ssjit tests while investigating other things
eriknw Feb 16, 2025
1b73dbe
Wait, what just happened? What if we don't use the burble?
eriknw Feb 16, 2025
dbaf0f8
And what if we turn the recorder back on?
eriknw Feb 16, 2025
30b129f
Clean up
eriknw Feb 16, 2025
eba5070
Re-enable ssjit tests; more stress testing
eriknw Feb 16, 2025
6e3ae5b
Mambaforge has been deprecated
eriknw Feb 16, 2025
e81d39d
Oh, you need to pay for `macos-latest-large`
eriknw Feb 16, 2025
12addc3
better
eriknw Feb 16, 2025
eddba7e
More clear; also, prepare to merge
eriknw Feb 16, 2025
eaa5e82
Skip test_ssjit.py tests for linux w/ wheels and osx
eriknw Feb 17, 2025
dfe1f9a
oops fix
eriknw Feb 17, 2025
63950a3
set `fail_fast` to `false` for pre-commit (b/c we have a lot of hooks!)
eriknw Feb 17, 2025
f8ad5cf
Will this fix the `nodefaults` warning?
eriknw Feb 17, 2025
88ccf4c
More experiments with Python 3.13
eriknw Feb 17, 2025
3232aff
Why is this failing?! Try skipping psg (ssgb?) tests
eriknw Feb 17, 2025
a53bc01
haha, oops; this should fix it
eriknw Feb 17, 2025
50dc265
Undo stress testing
eriknw Feb 17, 2025
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
6 changes: 3 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: 'weekly'
interval: "weekly"
3 changes: 2 additions & 1 deletion .github/workflows/debug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
workflow_dispatch:
inputs:
debug_enabled:
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
description: "Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)"
required: false
default: false

Expand All @@ -29,6 +29,7 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- name: Setup conda env
run: |
source "$CONDA/etc/profile.d/conda.sh"
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/imports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
pyver: ${{ steps.pyver.outputs.selected }}
steps:
- name: RNG for os
uses: ddradar/choose-random-action@v2.0.2
uses: ddradar/choose-random-action@v3.0.0
id: os
with:
contents: |
Expand All @@ -26,27 +26,32 @@ jobs:
1
1
- name: RNG for Python version
uses: ddradar/choose-random-action@v2.0.2
uses: ddradar/choose-random-action@v3.0.0
id: pyver
with:
contents: |
3.10
3.11
3.12
3.13
weights: |
1
1
1
1
test_imports:
needs: rngs
runs-on: ${{ needs.rngs.outputs.os }}
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# python-version: ["3.10", "3.11", "3.12"]
# python-version: ["3.10", "3.11", "3.12", "3.13"]
# os: ["ubuntu-latest", "macos-latest", "windows-latest"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: ${{ needs.rngs.outputs.pyver }}
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: "3.10"
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/publish_pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Publish to PyPI
on:
push:
tags:
- '20*'
- "20*"

jobs:
build_and_deploy:
Expand All @@ -17,6 +17,7 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
Expand All @@ -35,7 +36,7 @@ jobs:
- name: Check with twine
run: python -m twine check --strict dist/*
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@v1.8.11
uses: pypa/gh-action-pypi-publish@v1.9.0
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
193 changes: 140 additions & 53 deletions .github/workflows/test_and_build.yml

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions .github/zizmor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
rules:
use-trusted-publishing:
# TODO: we should update to use trusted publishing
ignore:
- publish_pypi.yml
excessive-permissions:
# It is probably good practice to use narrow permissions
ignore:
- debug.yml
- imports.yml
- publish_pypi.yml
- test_and_build.yml
template-injection:
# We use templates pretty heavily
ignore:
- test_and_build.yml
92 changes: 62 additions & 30 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ ci:
autoupdate_commit_msg: "chore: update pre-commit hooks"
autofix_commit_msg: "style: pre-commit fixes"
skip: [pylint, no-commit-to-branch]
fail_fast: true
fail_fast: false
default_language_version:
python: python3
python: python3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
rev: v5.0.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
Expand All @@ -25,6 +25,10 @@ repos:
- id: check-ast
- id: check-toml
- id: check-yaml
- id: check-executables-have-shebangs
- id: check-vcs-permalinks
- id: destroyed-symlinks
- id: detect-private-key
- id: debug-statements
- id: end-of-file-fixer
exclude_types: [svg]
Expand All @@ -33,72 +37,68 @@ repos:
- id: name-tests-test
args: ["--pytest-test-first"]
- repo: https://github.com/abravalheri/validate-pyproject
rev: v0.16
rev: v0.23
hooks:
- id: validate-pyproject
name: Validate pyproject.toml
# I don't yet trust ruff to do what autoflake does
- repo: https://github.com/PyCQA/autoflake
rev: v2.2.1
rev: v2.3.1
hooks:
- id: autoflake
args: [--in-place]
# We can probably remove `isort` if we come to trust `ruff --fix`,
# but we'll need to figure out the configuration to do this in `ruff`
- repo: https://github.com/pycqa/isort
rev: 5.13.2
rev: 6.0.0
hooks:
- id: isort
# Let's keep `pyupgrade` even though `ruff --fix` probably does most of it
- repo: https://github.com/asottile/pyupgrade
rev: v3.15.0
rev: v3.19.1
hooks:
- id: pyupgrade
args: [--py310-plus]
- repo: https://github.com/MarcoGorelli/auto-walrus
rev: v0.2.2
rev: 0.3.4
hooks:
- id: auto-walrus
args: [--line-length, "100"]
- repo: https://github.com/psf/black
rev: 24.1.1
rev: 25.1.0
hooks:
- id: black
- id: black-jupyter
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.2.1
rev: v0.9.6
hooks:
- id: ruff
args: [--fix-only, --show-fixes]
# Let's keep `flake8` even though `ruff` does much of the same.
# `flake8-bugbear` and `flake8-simplify` have caught things missed by `ruff`.
- repo: https://github.com/PyCQA/flake8
rev: 7.0.0
rev: 7.1.2
hooks:
- id: flake8
additional_dependencies: &flake8_dependencies
# These versions need updated manually
- flake8==7.0.0
- flake8-bugbear==24.1.17
- flake8-simplify==0.21.0
- repo: https://github.com/asottile/yesqa
rev: v1.5.0
hooks:
- id: yesqa
additional_dependencies: *flake8_dependencies
args: ["--config=.flake8"]
additional_dependencies:
&flake8_dependencies # These versions need updated manually
- flake8==7.1.2
- flake8-bugbear==24.12.12
- flake8-simplify==0.21.0
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
rev: v2.4.1
hooks:
- id: codespell
types_or: [python, rst, markdown]
additional_dependencies: [tomli]
files: ^(graphblas|docs)/
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.2.1
rev: v0.9.6
hooks:
- id: ruff
- repo: https://github.com/sphinx-contrib/sphinx-lint
rev: v0.9.1
rev: v1.0.0
hooks:
- id: sphinx-lint
args: [--enable, all, "--disable=line-too-long,leaked-markup"]
Expand All @@ -110,9 +110,39 @@ repos:
- id: pyroma
args: [-n, "10", .]
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: "v0.9.0.6"
rev: "v0.10.0.1"
hooks:
- id: shellcheck
- id: shellcheck
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.5.1
hooks:
- id: prettier
- repo: https://github.com/ComPWA/taplo-pre-commit
rev: v0.9.3
hooks:
- id: taplo-format
- repo: https://github.com/rhysd/actionlint
rev: v1.7.7
hooks:
- id: actionlint
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.31.1
hooks:
- id: check-dependabot
- id: check-github-workflows
- id: check-readthedocs
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
- repo: https://github.com/woodruffw/zizmor-pre-commit
rev: v1.3.1
hooks:
- id: zizmor
- repo: meta
hooks:
- id: check-hooks-apply
- id: check-useless-excludes
- repo: local
hooks:
# Add `--hook-stage manual` to pre-commit command to run (very slow)
Expand All @@ -126,9 +156,9 @@ repos:
args: [graphblas/]
pass_filenames: false
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
rev: v5.0.0
hooks:
- id: no-commit-to-branch # no commit directly to main
- id: no-commit-to-branch # no commit directly to main
#
# Maybe:
#
Expand All @@ -145,8 +175,10 @@ repos:
# additional_dependencies: [tomli]
#
# - repo: https://github.com/PyCQA/bandit
# rev: 1.7.4
# rev: 1.8.2
# hooks:
# - id: bandit
# args: ["-c", "pyproject.toml"]
# additional_dependencies: ["bandit[toml]"]
#
# blacken-docs, blackdoc prettier, mypy, pydocstringformatter, velin, flynt, yamllint
# blacken-docs, blackdoc, mypy, pydocstringformatter, velin, flynt
6 changes: 6 additions & 0 deletions .yamllint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
extends: default
rules:
document-start: disable
line-length: disable
truthy: disable
14 changes: 7 additions & 7 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ educational level, family status, culture, or political belief.

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information, such as physical or electronic
- The use of sexualized language or imagery
- Personal attacks
- Trolling or insulting/derogatory comments
- Public or private harassment
- Publishing other's private information, such as physical or electronic
addresses, without explicit permission
* Other unethical or unprofessional conduct
- Other unethical or unprofessional conduct

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
Expand Down Expand Up @@ -52,7 +52,7 @@ that is deemed necessary and appropriate to the circumstances. Maintainers are
obligated to maintain confidentiality with regard to the reporter of an
incident.

This Code of Conduct is adapted from the [Numba Code of Conduct][numba], which is based on the [Contributor Covenant][homepage],
This Code of Conduct is adapted from the [Numba Code of Conduct][numba], which is based on the [Contributor Covenant][homepage],
version 1.3.0, available at
[https://contributor-covenant.org/version/1/3/0/][version],
and the [Swift Code of Conduct][swift].
Expand Down
Loading
Loading