-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: migrate repository to uv
& simplify Pyodide build
#899
Conversation
uv
uv
& simplify Pyodide build
633b719
to
50f90b2
Compare
less JupyterLite tooling than anticipated
We do not build custom distro anymore
@@ -5,7 +5,7 @@ | |||
"appUrl": "./lab", | |||
"litePluginSettings": { | |||
"@jupyterlite/pyodide-kernel-extension:kernel": { | |||
"pyodideUrl": "/static/pyodide/pyodide.js" | |||
"pyodideUrl": "https://cdn.jsdelivr.net/pyodide/dev/full/pyodide.js" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For now we must use the dev
version (rolling release pointing to pyodide@main
) because it is the only distro over a public CDN which already includes pyodide/pyodide#5183 and pyodide/pyodide#5184.
As soon as we get a Pyodide release with clingo
and vega-datasets
included, we'll pin that version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks
How to test this PR?
git checkout
this branch, then executemake
. Everything should work without any further action (linting, tests, typechecks, doc-gen).Running all the
make
targets still takes a while, becausemypy
andpytype
are really slow and generating the Jupyter Book output also requires patience, given that we execute all notebooks on the fly to generate the HTML bundle.Note
Please make sure you have
uv
installed and available on yourPATH
.You can refer to the installation instructions here: https://docs.astral.sh/uv/getting-started/installation/
CHANGELOG
draco
module source undersrc/
.github/workflows/test.yml
CI flowDockerfile
slimmer (~2x image build performance improvement)[project.optional-dependencies]
inpyproject.toml
, allowingpip install draco
to pull only core dependenciespip install 'draco[server]'
: will include FastAPI depspip install 'draco[renderer]'
: will include deps to render chart specspip install 'draco[learn]'
: will includescikit-learn
enablingdraco.learn.train_model
clingo
andvega-datasets
are now members of the official Pyodide distribution (available through https://cdn.jsdelivr.net/pyodide//full/)Pyodide Build Simplifications
The complexity of the current Pyodide build pipeline stems from the fact that
clingo
is an impure Python package (depends oncffi
) without an official recipe for it in the Pyodide repo. In parallel to this PR I am opening PRs against https://github.com/pyodide/pyodide to include packages we need into their official build. This way, we can dramatically reduce the code we maintain in this repo responsible for WASM builds.Foreign PRs
vega-datasets
package pyodide/pyodide#5183clingo
package pyodide/pyodide#5184Closes
Closes #895
Closes #884