Skip to content

Releases: GraphBLAS/python-suitesparse-graphblas

10.5.1.1

Choose a tag to compare

@eriknw eriknw released this 17 Oct 02:13
e23e85d

Highlights

  • Python 3.15: wheels for CPython 3.15 and free-threaded 3.15t (#157, #159)
  • WebAssembly wheels for Pyodide (PEP 783 pyemscripten, Python 3.13 and 3.14), so
    await micropip.install("suitesparse-graphblas") works in Pyodide 314 (Python 3.14) and
    0.29.4+ (Python 3.13), and in JupyterLite. GraphBLAS runs single-threaded there. (#158)
  • Memory-safety fixes: NumPy ≥ 2.5 allocates array data with a different allocator, so
    serialize_matrix/serialize_vector and binread could abort on free-threaded 3.15 or
    under PYTHONMALLOC=debug. Arrays that share memory with GraphBLAS now carry a NumPy
    memory handler (NEP 49) that matches the GraphBLAS allocator (including GraphBLAS ≥ 10.4
    memory arenas) that frees them. (#157)

suitesparse_graphblas.utils (#157)

  • New give_buffer(...): a context manager that hands an array's data to a GraphBLAS
    function that takes ownership (e.g. GxB_Matrix_pack_CSR, GxB_Vector_load). It copies
    when GraphBLAS can't own the data, and commits only if GraphBLAS actually took it.
  • New empty(...): allocates an array that GraphBLAS can always take ownership of.
  • New can_unclaim_buffer(array, arena=None).
  • claim_buffer and claim_buffer_2d take an optional arena argument.
  • Behavior change: unclaim_buffer now raises ValueError when GraphBLAS can't safely
    own the data: a view, a read-only array, an object dtype, or memory from another allocator
    (e.g. NumPy-allocated arrays with memory_manager="c", or a custom NumPy memory handler).
    Use give_buffer, or check can_unclaim_buffer first.

Other fixes

  • initialize() raises if GraphBLAS fails to initialize, instead of continuing silently. (#157)
  • binread allocates with GraphBLAS's allocator instead of libc malloc, and reads iso
    matrices correctly. binwrite restores the matrix if writing fails. (#157)

Platform and packaging changes

  • macOS arm64 wheels now require macOS 15 (previously 14), because GitHub is retiring
    its macOS 14 runners. (#159)
  • PyPy wheels now target PyPy 8.0 (pypy311_pp80). PyPy 7.3 can't install them and will
    build from the sdist. Windows PyPy wheels are no longer built. (#159)
  • Wheels no longer include build-only .c/.h sources, so they are smaller. (#158)
  • Releases are now published with PyPI Trusted Publishing instead of an API token. (#157)

Maintenance

cibuildwheel 4.3. GitHub Actions are pinned to commit SHAs with least-privilege permissions,
and actionlint/zizmor/pysentry checks were added. pytest is stricter (warnings are errors),
and new memory tests run under PYTHONMALLOC=debug. suitesparse.sh now stops at the first
failure and uses the CMake option names GraphBLAS honors (GRAPHBLAS_COMPACT,
GRAPHBLAS_JITINIT). (#157, #158, #159)

10.5.1.0

Choose a tag to compare

@eriknw eriknw released this 17 Sep 18:33
1434ec8

Update to SuiteSparse:GraphBLAS 10.5.1 #155

10.5.0.1

Choose a tag to compare

@eriknw eriknw released this 26 Aug 15:20
0ca0f0f

Update cmake config options and ensure SuiteSparse:GraphBLAS is compiled with OpenMP support.

10.5.0.0

Choose a tag to compare

@eriknw eriknw released this 25 Aug 16:33
96bb9a6

Update to SuiteSparse:GraphBLAS 10.5.0 #153

10.4.1.0

Choose a tag to compare

@eriknw eriknw released this 11 Aug 16:08
b1623b3

Update to SuiteSparse:GraphBLAS 10.4.1 #152

10.4.0.0

Choose a tag to compare

@eriknw eriknw released this 09 Aug 04:48
eca0261

Update to SuiteSparse:GraphBLAS 10.4.0 (#151)

10.3.1.0

Choose a tag to compare

@eriknw eriknw released this 27 Mar 22:36
292dc06
  • Update to SuiteSparse:GraphBLAS 10.3.1 (#142)
  • Add support for Python 3.14
  • Drop support for Python 3.9 and 3.10

10.1.1.0

Choose a tag to compare

@eriknw eriknw released this 14 Sep 19:54
4e49ec4
  • Update to SuiteSparse:GraphBLAS 10.1.1 (#141)

10.0.1.1

Choose a tag to compare

@eriknw eriknw released this 17 Mar 02:38
74c45cc
  • Update to SuiteSparse:GraphBLAS 10.0.1 (#132
    • Fix minor issue that prevented publishing 10.0.1.0 to PyPI (#140)

10.0.1.0

Choose a tag to compare

@eriknw eriknw released this 17 Mar 01:25
e22b23f
  • Update to SuiteSparse:GraphBLAS 10.0.1 (#139)