Skip to content

bump GraalPy versions tested in CI, test graalpy on windows - #6406

Open
davidhewitt wants to merge 8 commits into
PyO3:mainfrom
davidhewitt:graalpy-win
Open

davidhewitt wants to merge 8 commits into
PyO3:mainfrom
davidhewitt:graalpy-win

Conversation

@davidhewitt

Copy link
Copy Markdown
Member

Having some pain over in setuptools-rust in https://github.com/PyO3/setuptools-rust/actions/runs/34587139565/job/103223856532?pr=615 - hopefully bumping this fixes.

@davidhewitt davidhewitt changed the title bump GraalPy versions tested in CI, test graalpy on windows ci: bump GraalPy versions tested in CI, test graalpy on windows Sep 11, 2026
@davidhewitt davidhewitt changed the title ci: bump GraalPy versions tested in CI, test graalpy on windows bump GraalPy versions tested in CI, test graalpy on windows Sep 11, 2026
@codspeed

codspeed Bot commented Sep 11, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 141 untouched benchmarks
⏩ 6 skipped benchmarks1


Comparing davidhewitt:graalpy-win (eaa1e36) with main (9b41992)

Open in CodSpeed

Footnotes

  1. 6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@davidhewitt

Copy link
Copy Markdown
Member Author

@msimacek do you have any experience with pytest for GraalPy on windows? Looks like it's just exciting immediately with code 1 according to the CI log, I need to try to dig, not sure if you've seen similar before.

@msimacek

Copy link
Copy Markdown
Contributor

pytest worked fine for me locally for this PR, but I also tried it on some other packages and ran into an issue that had the same symptom as yours. It could be worked around by turning off pytest's assertion rewriting (it's really weird that assertion rewriting would only be broken on windows, I'll need to look deeper into that). You can try if you get further with --assert=plain argument to pytest.

@davidhewitt

Copy link
Copy Markdown
Member Author

It looks like hypothesis failing to build correctly (worked around in #6411 and fixed in this PR) was the root cause. Thanks for checking!

))
} else if abi.implementation == PythonImplementation::GraalPy {
// Similar for GraalPy on Windows, which ships `python-native.dll`
Ok("python-native".to_string())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also changes the library name when PYO3_USE_RAW_DYLIB=0. When my AI model tested, it broke graalpy because the library name is e.g. python312.lib but the build script requests python-native.lib anyway. I think this is correct only for PYO3_USE_RAW_DYLIB=1.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xref #6410 (comment) - I guess it's the other side of the same hack, where a clause would be needed in that hack to also account for GraalPy.

I guess that means that only one of these PRs will merge successfully because #6410 introduces proper ffi-check for both modes of PYO3_USE_RAW_DYLIB.

I'll have a go at solving the full refactor properly, perhaps after merging #6410 but before merging here? Merging #6410 will unblock the rest of the expanded ffi-check testing in #6389

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants