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.
Hey there! I am working on a Maturin wheel built for abi3 and wasm32-emscripten-unknown, something which appears to work in Pyodide. I'm coming at this as a Rust developer, not really too knowledgable about Python, so most of what I know about abi3 is from the PyO3 documentation: https://pyo3.rs/v0.14.5/features.html#abi3
My understanding is that abi3 wheels are forwards compatible, meaning an abi3-py39 wheel will work with Python 3.9, 3.10, 3.11, 3.12, and so on. Empirically I can say our abi3-py39 wheel works just fine in Pyodide v0.26.2 (with some recent bugfixes I have recently done to perspective's build).
This PR adds support for abi3 wheels so that they can be added to pyodide-lock.json files. I added some test cases to test_wheel.py, happy to add more tests if needed elsewhere
abi3 is also known as the stable ABI https://docs.python.org/3/c-api/stable.html#stable-abi