Repository navigation
Conversation
- The release workflow builds Pyodide wheels with cibuildwheel (CIBW_PLATFORM: pyodide), one per Pyodide ABI (cp313, cp314, cp315), uploaded to PyPI with the others; the PR tests build and test them too. - ffibuild.py: no limited API (abi3) under Emscripten. A Pyodide wheel is tied to one Pyodide version anyway, and Pyodide 315 names abi3 extensions _xorfilter.abi3-"wasm32-emscripten".so (quotes in SOABI_PLATFORM), which Python cannot import. Native builds are unchanged. - tests: draw the keys with randrange instead of sample(range(1 << 62)), whose len() overflows a 32-bit ssize_t (WebAssembly).
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.
Publishes WebAssembly wheels for Pyodide, so that
micropip.install("pyfusefilter")works in the browser. PyPI accepts these wheels (PEP 783pyemscripten_*_wasm32platform tags). The runtime dependencies,cffiandxxhash, are both available in Pyodide.Changes
wheels.yml: abuild_pyodidejob (cibuildwheel 4.3.5,CIBW_PLATFORM: pyodide), whose wheels are uploaded to PyPI with the others. One wheel per Pyodide ABI:cp313-cp313-pyemscripten_2025_0_wasm32(Pyodide 0.28, 0.29)cp314-cp314-pyemscripten_2026_0_wasm32(Pyodide 314)cp315-cp315-pyemscripten_2026_5_wasm32pytests.yml: a Pyodide job, so pull requests build and test the WebAssembly wheels.pyproject-cibuildwheel.toml:[tool.cibuildwheel.pyodide]runs the tests withpython -m pytest(in a Pyodide venv, thepytestscript starts with a shebang to a shell script, which macOS cannot run).pyfusefilter/ffibuild.py: no limited API (abi3) under Emscripten. In Pyodide 315,SOABI_PLATFORMholds literal quotes, so setuptools named the extension_xorfilter.abi3-"wasm32-emscripten".so, which Python cannot import. A Pyodide wheel is tied to one Pyodide version anyway, so abi3 gains nothing there. Native builds still produce_xorfilter.abi3.so.tests/test_fuse8.py,tests/test_fuse16.py:sample(range(1 << 62), size)callslen()on the range, which overflows a 32-bitssize_t(WebAssembly). The keys are drawn withrandrangeinstead.Checked
_xorfilter.abi3.so, and the tests pass (30 passed).