rustworkx icon indicating copy to clipboard operation
rustworkx copied to clipboard

Add Pixi workflow to verify Pyodide build works

Open IvanIsCoding opened this issue 9 months ago • 1 comments

Follow up of #1447. After the parent PR is merged, the diff of this PR will be smaller. True diff: https://github.com/IvanIsCoding/rustworkx/compare/pyodide-rayon...IvanIsCoding:rustworkx:pixi-pyodide

This uses pixi to run the Pyodide build. This is still higly experimental. It is related to #1416 and #1420 in the sense that pixi is to conda what uv is to pypi.

The Github Action workflow I created does the following:

  • Installs Python 3.12.7 from Conda via Pixi. Python needs to be pinned
  • Installs Emscripten 3.1.58. This is also pinned. Newer versions are required to build with Python 3.13 but that is not on Conda at the moment.
  • Installs Node.js
  • Installs Rust 1.86. Generally we'd use nightly rust, but Conda does not offer that. So I had to use the RUSTC_BOOTSTRAP trick to enable nightly features on a compiler. Of course that is terrible, but the version is pinned so essentially it is like using a pinned nightly compiler
  • Installs a pinned version of https://github.com/pyodide/pyodide-build
  • The Pyodide CLI installs the tools to build for 0.27.6, which maps to Python 3.12
  • Compiles the code with Rust and Emscripten

There are no tests at the moment but as long as we build, recipes like https://github.com/pyodide/pyodide-recipes/pull/90 should catch some obvious test failures.

IvanIsCoding avatar May 13 '25 23:05 IvanIsCoding

Pull Request Test Coverage Report for Build 18793296589

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 94.186%

Totals Coverage Status
Change from base Build 18781234584: 0.0%
Covered Lines: 18272
Relevant Lines: 19400

💛 - Coveralls

coveralls avatar May 13 '25 23:05 coveralls