Migrate to uv, fix Cython for ARM, support Python 3.10-3.14#597
Open
Migrate to uv, fix Cython for ARM, support Python 3.10-3.14#597
Conversation
- Replace pip/requirements.txt/setup.cfg with uv and modern pyproject.toml - Fix Cython 3.x compatibility: move extern declarations from _dice.pxd into _dice.pyx with C name aliasing to resolve name collisions - Add language_level=3 directive to all .pyx files - Replace deprecated pkg_resources with importlib.metadata - Fix zero-length filter divide-by-zero edge case in _dice_x86.py - Update CI: use uv, test Python 3.10-3.14, add ARM Linux runner (ubuntu-24.04-arm), add QEMU aarch64 wheel builds - Native C extensions now build and load on ARM (NEON) and x86
Use int8_t (signed char) for Cython memoryview types instead of char,
since Python's array('b') is always signed char but plain char is
unsigned on ARM Linux. Cast to const char* at C function call sites.
The Azure DevOps account is no longer active. CI has been migrated to GitHub Actions.
Adds mypy and types-setuptools as dev dependencies and a typecheck job to the unit testing workflow, replacing the Azure Pipeline static checks stage.
- Version bump to 0.16.0 reflecting breaking changes (dropped Python 3.8/3.9, Cython 3 requirement, build system migration) - Update README: remove Azure badge, refresh install instructions for uv, update benchmark numbers with ARM results, update test output - Add changelog entry for 0.16.0 - Clean up MANIFEST.in: remove stale _entitymatcher reference, add _multiparty_solving_inner.cpp
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pyproject.toml. Cython 3.x is now the build dependency..pxdextern declarations and.pyxwrapper functions. Fixnogilcontext issues. Addlanguage_level=3directives.charsignedness mismatch on ARM Linux by using explicitint8_tmemoryview types.ubuntu-24.04-arm). Add mypy typecheck job. Wheel builds include Linux aarch64 via QEMU.pkg_resourceswithimportlib.metadata.Benchmark (Apple M1)
Test plan