bytecodealliance / bytecodealliance/componentize-py
Download dependencies automatically
- Lingua principale
- Rust
- Stelle
- 277
- Fork
- 51
- Merge medio
- 12h 10m
- PR unite (30g)
- 10
Descrizione
Per [yesterday's Python guest tooling](https://github.com/bytecodealliance/meetings/pull/152) meeting, we'd like `componentize-py` to download any dependencies found in the application's `pyproject.toml` (including transitive dependencies), placing them in a temporary directory for use while building the component.
Similar to [micropip](https://micropip.pyodide.org/en/stable/project/api.html), `componentize-py` should grab any pure Python packages from PyPI, only looking to an alternative repo for packages with native extensions. We (i.e. the Bytecode Alliance) will need to maintain this repo and populate it with WASI builds of popular projects until WASI wheels are standardized and published upstream to PyPI.
To start with, `componentize-py` could shell out to e.g. `pip --install --platform wasi-sdk-22 --abi cp311 --root `, but eventually we'd like to make it fully self-contained (i.e. not require Python or `pip` to be installed).
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia dal punto di ingresso di componentize-py per la gestione delle dipendenze ed esamina il pyproject.toml dell'applicazione, la discussione collegata della riunione guest-tooling e il comportamento di micropip. L'ambito iniziale menziona l'uso di pip con wasi-sdk-22, cp311 e una directory temporanea; il lavoro sarebbe considerato completato includendo le dipendenze transitive Pure-Python e una fonte alternativa per i pacchetti con estensioni native, mentre una modalità autonoma successiva rimane un obiettivo più ampio.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python, rust, wasm
- Ambito
- build-system, devtools, tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100