bytecodealliance / bytecodealliance/componentize-py
Download dependencies automatically
- Langage dominant
- Rust
- Étoiles
- 277
- Forks
- 51
- Merge moyen
- 12 h 10 min
- PR mergées (30 j)
- 10
Description
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).
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par le point d’entrée de componentize-py pour la gestion des dépendances et examinez le pyproject.toml de l’application, la discussion liée de la réunion guest-tooling et le comportement de micropip. Le périmètre initial mentionne l’utilisation de pip avec wasi-sdk-22, cp311 et un répertoire temporaire ; le travail serait considéré comme terminé s’il incluait les dépendances transitives en Pure-Python et une source alternative pour les paquets avec des extensions natives, tandis qu’un mode autonome ultérieur reste un objectif plus vaste.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python, rust, wasm
- Domaine
- build-system, devtools, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100