test: validate riscv64 wheel build with RISE personal runners - #3
test: validate riscv64 wheel build with RISE personal runners#3gounthar wants to merge 339 commits into
Conversation
|
Important Review skippedToo many files! This PR contains 295 files, which is 145 over the limit of 150. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (295)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request primarily focuses on enabling and validating Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
The pull request introduces several valuable improvements across the codebase. Key updates include enhancing the f2py module with a __dir__ implementation for better discoverability of allocatable arrays, which is a significant step forward for user experience. Documentation has been refined in multiple areas, such as clarifying GPU tensor interoperability with DLPack and updating build instructions for Windows, making the information more accurate and easier to follow. Type hinting definitions have been refactored for string operations, aligning them with direct numpy imports. Additionally, the build system now supports riscv64 wheels, expanding platform compatibility, and meson-python documentation has been added, providing clear guidance for distributing F2PY extensions. Overall, these changes contribute positively to the project's functionality, documentation, and maintainability.
MAINT: Update main after 2.4.4 release.
Signed-off-by: aaronzuo <anarionzuo@outlook.com>
The value has been set to 50 for more than 20 years. Computers generally have much more memory now than they did 20 years ago, so we should be able to let `re` use the default. Closes numpygh-31104.
MAINT: f2py: Stop setting re._MAXCACHE to 50.
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 7.0.0 to 7.1.0. - [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst) - [Commits](pytest-dev/pytest-cov@v7.0.0...v7.1.0) --- updated-dependencies: - dependency-name: pytest-cov dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…/pytest-cov-7.1.0 MAINT: Bump pytest-cov from 7.0.0 to 7.1.0 in /requirements
MAINT: Fix typos
…plex-long-double-dtype BUG: f2py map complex_long_double to NPY_CLONGDOUBLE
…overflow BUG: fix heap buffer overflow in timedelta to string casts
Bumps [pyrefly](https://github.com/facebook/pyrefly) from 0.57.1 to 0.58.0. - [Release notes](https://github.com/facebook/pyrefly/releases) - [Commits](facebook/pyrefly@0.57.1...0.58.0) --- updated-dependencies: - dependency-name: pyrefly dependency-version: 0.58.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This only covers cursor and claude, copilot has other options. Grok (xAI) generated the list of files to ignore. [skip azp] [skip cirrus] [skip actions]
This reverts commit 901a3dc.
MAINT: Gitignore personal AI config files.
…/pyrefly-0.58.0
Updates the requirements on [gitpython](https://github.com/gitpython-developers/GitPython) and [pyrefly](https://github.com/facebook/pyrefly) to permit the latest version. Updates `gitpython` to 3.1.48 - [Release notes](https://github.com/gitpython-developers/GitPython/releases) - [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES) - [Commits](gitpython-developers/GitPython@3.1.47...3.1.48) Updates `pyrefly` from 0.62.0 to 0.63.0 - [Release notes](https://github.com/facebook/pyrefly/releases) - [Commits](facebook/pyrefly@0.62.0...0.63.0) --- updated-dependencies: - dependency-name: gitpython dependency-version: 3.1.48 dependency-type: direct:production dependency-group: python-deps - dependency-name: pyrefly dependency-version: 0.63.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python-deps ... Signed-off-by: dependabot[bot] <support@github.com>
update openblas to 0.3.33
…/python-deps-b50f3cc0a5 MAINT: Bump the python-deps group in /requirements with 2 updates
Updates the requirements on [gitpython](https://github.com/gitpython-developers/GitPython) and [pyrefly](https://github.com/facebook/pyrefly) to permit the latest version. Updates `gitpython` to 3.1.49 - [Release notes](https://github.com/gitpython-developers/GitPython/releases) - [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES) - [Commits](gitpython-developers/GitPython@3.1.48...3.1.49) Updates `pyrefly` from 0.63.0 to 0.63.1 - [Release notes](https://github.com/facebook/pyrefly/releases) - [Commits](facebook/pyrefly@0.63.0...0.63.1) --- updated-dependencies: - dependency-name: gitpython dependency-version: 3.1.49 dependency-type: direct:production dependency-group: python-deps - dependency-name: pyrefly dependency-version: 0.63.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python-deps ... Signed-off-by: dependabot[bot] <support@github.com>
…/python-deps-e865ef4c29
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.2 to 4.35.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@95e58e9...e46ed2c) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [int128/hide-comment-action](https://github.com/int128/hide-comment-action) from 1.57.0 to 1.58.0. - [Release notes](https://github.com/int128/hide-comment-action/releases) - [Commits](int128/hide-comment-action@d38cf59...392bc21) --- updated-dependencies: - dependency-name: int128/hide-comment-action dependency-version: 1.58.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ithub/codeql-action-4.35.3 MAINT: Bump github/codeql-action from 4.35.2 to 4.35.3
…nt128/hide-comment-action-1.58.0 MAINT: Bump int128/hide-comment-action from 1.57.0 to 1.58.0
This allows downstream packages (mostly ml_dtypes) to register their dtype with something like:
np.dtypes.register_dlpack_dtype((4, 16), np.dtype("bfloat16"))
which will map it for dlpack use (in both directions). The function is idempotent if the dtypes are
identical.
It may raise an error if another dtype is already mappend _from_ a DLPack code, in which case
the path for exporting (to the code) is still registered as it still makes sense (the other reason is that
this just simplifies thread-safety a lot).
Co-authored-by: Tyler Reddy <tyler.je.reddy@gmail.com>
numpy#31378) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
As described in numpy#31254, non-ASCII strings are not handled safely by arrayflags_setitem and PyArray_ToFile. What to do with Unicode strings elsewhere upstream / downstream is a complicated question that has design consequences, so Warren Weckesser suggested reasonable error handling in the bug report comments to provide the user with useful, non-segfaulting execptions. This PR simply implements those recommendations and adds coverage to ensure KeyError / ValueError are properly raised when ecnountered.
[skip azp] [skip cirrus] [skip actions]
DOC: Add forgotten ``register_dlpack_dtype`` to docs
The incomplete sorting before turning sets into lists caused issues with `pytest-xdist` not seeing the same test splits and therefore erroring out immediately (see numpygh-31414). While this seems to happen only on RISC-V, the problem isn't actually RISC-V specific beyond it materializing there, possibly due to different implementation of sorting behavior when tie-breaking on the first sort key. That shouldn't be relied on though, this should be considered a (minor) bug in NumPy. Closes numpygh-31414
MAINT: ensure `_core.sctypes` lists are deterministically ordered
Add manylinux_riscv64 to the wheel build matrix using native riscv64 runners (ubuntu-24.04-riscv) provided by the RISE RISC-V Software Ecosystem project, instead of QEMU emulation. Build time: ~3.5 minutes on native hardware vs ~38 minutes under QEMU. Changes: - Add [ubuntu-24.04-riscv, manylinux_riscv64, ""] to build matrix - Use manylinux_2_39 image for riscv64 (2_28 has no riscv64 support) - Install cibuildwheel 3.4.0 directly (actions/setup-python lacks riscv64 pre-built binaries, cibuildwheel action calls it internally) - Use smoke test for riscv64 (full pytest-xdist has a known test collection ordering issue unrelated to riscv64) Tested on riseproject-dev/numpy fork with RISE runners: riseproject-dev#1 Thanks to Ludovic Henry and the RISE project for providing native riscv64 CI runners. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
/opt/python-3.12/bin no longer exists on the RISE runner after the 2026-04-22 image rebuild. Replace the manual pip install of cibuildwheel with actions/setup-python@v5 and the pypa/cibuildwheel action directly. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
Drop the separate Setup Python step, the split Build wheels / Build wheels (riscv64) steps, and the riscv64-only CIBW_TEST_COMMAND. cibuildwheel handles riscv64 the same as other Linux targets now. Only additions remaining: matrix entry and manylinux-riscv64-image in pyproject.toml. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
pytest-xdist collects bytes_ and str_ in non-deterministic order across workers, causing collection to abort before any test runs. This is not riscv64-specific but surfaces reliably here. A separate fix will address the ordering issue in test_scalar_methods.py. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
Signed-off-by: Bruno Verachten <gounthar@gmail.com>
Signed-off-by: Bruno Verachten <gounthar@gmail.com>
3b5c296 to
83b0f83
Compare
Testing on personal RISE runners instead of riseproject-dev.