Skip to content

Nightly wheels and WASM/pyodide builds #234

Open
@oscarbenjamin

Description

@oscarbenjamin

CC @agriyakhetarpal

See also:
scientific-python/upload-nightly-action#111

We should upload nightly wheels after each merge to main to the scientific-python nightly wheels index:
https://anaconda.org/scientific-python-nightly-wheels

That is useful for downstream testing e.g. in SymPy. It would also make it possible to have the latest main branches of python-flint and SymPy available for testing in SymPy Live:
https://live.sympy.org/

We should also build and test python-flint in WASM with pyodide in CI. There already are WASM builds of python-flint in pyodide:
https://pyodide.org/en/stable/usage/packages-in-pyodide.html

Those can be used in the browser e.g. at:
https://pyodide.org/en/stable/console.html

>>> import flint
>>> x = flint.fmpz_poly([0, 1])
>>> p = x**2 + 2*x + 1
>>> p
x^2 + 2*x + 1
>>> p.factor()
(1, [(x + 1, 2)])

It looks like cibuildwheel could build these with --platform pyodide:
https://cibuildwheel.pypa.io/en/stable/options/

We would first need emscripten builds of GMP, MPFR and FLINT. The build recipes for those can be found in the pyodide repo e.g.:
https://github.com/pyodide/pyodide/tree/main/packages/flint

Probably a separate CI workflow should be used for making and testing pyodide wheels because we can't upload them to PyPI and the build commands and CI setup would be a bit different. We can upload the WASM wheels to the nightly wheels index though and the final release versions are already built in pyodide.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions