Move micropip to a separate repo in the org
See original GitHub issueContinuing with the effort of making the code base more approachable (https://github.com/pyodide/pyodide/issues/2014), I would propose to move micropip to a separate repo in the Pyodide org.
Advantages
- mich faster iteration cycle to change anything in micropip. CI should take minutes not an hour as currently.
- for new contributors, it’s also much easier to start since it’s a pure Python package they don’t need to deal with the rest of the build system.
- can update micropip for a given Pyodide release by loading the pure Python wheel from PyPi with
pyodide.loadPackage
. The release schedule of micropip can become independent from Pyodide. - there are several other projects in this space (e.g. emscripten-forge, https://github.com/ethanhs/python-wasm) and this would make it easier to reuse and contribute back fixes if necessary. There is still the FFI question which is more difficult, but right now even if emscripten-forge wanted to support installing Pyodide packages (and assuming binary compatibility) they have no other way short of vendoring it. Similarly, I’m hoping this could encourage some of the micropip related fixes from JupyterLite to be contributed upstream.
Advantages
- a bit more setup work, but we have done this for a lot of packages now, so it’s mostly copy-pasting
- makes it harder to make large changes across different components of Pyodide, though I think micropip is pretty stable now and there are rarely PRs that need to change both the internals and micropip at the same time.
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:5 (5 by maintainers)
Top Results From Across the Web
Micropip API — Version 0.21.3 - Pyodide
Install the given package and all of its dependencies. See loading packages for more information. If a package is not found in the...
Read more >Migrate Repositories from/to one Organisation to another
Migrate repo from BitBucket to GitHub, including all branches and commits. Can also use this to migrate a repository from one Organization to...
Read more >Pyodide - Read the Docs
While micropip.install is written in Python and pyodide. ... The micropip package was moved to a separate repository pyodide/micropip.
Read more >A First Look at PyScript: Python in the Web Browser
The micropip module and the implicit loop variable, ... Otherwise, the browser will refuse to fetch data from a different origin (protocol, ...
Read more >Identification of functionally distinct macrophage ... - eLife
https://cdn.elifesciences.org/articles/58686/elife-58686-fig1-data1-v1. ... Movies showing localisation and movement of cells labelled using ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
I approve of this proposal. The idea of updating micropip more often than Pyodide is particularly exciting.
One thought is that we should consider having a way to override or patch
_compat_in_pyodide
in case something has to change in that file.micropip
uses the following four internals:API.loadBinaryFile
API.loadDynlib
API.repodata_packages
API.repodata_info
We should mark these to note that they are used by micropip. We might want to add some specific functions to pyodide to get
repodata_packages
andrepodata_info
. Also,loadDynlib
takes a boolean as the second parameter, maybe we should change it to an options object for forwards compatibility.I created https://github.com/pyodide/micropip and this will be resolved with https://github.com/pyodide/pyodide/pull/3122