bytecodealliance / bytecodealliance/componentize-py
Download dependencies automatically
- 主要语言
- Rust
- 星标
- 277
- 派生
- 51
- 平均合并
- 12 小时 10 分钟
- 30 天内合并 PR
- 10
描述
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).
贡献指南
调研方向
从 componentize-py 的依赖处理入口开始,检查应用程序的 pyproject.toml、链接的 guest-tooling 会议讨论以及 micropip 的行为。初始范围提到使用 pip 配合 wasi-sdk-22、cp311 和临时目录;完成标准将包括传递性 Pure-Python 依赖以及原生扩展包的替代源,而后续的自包含模式仍然是一个更大的目标。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python, rust, wasm
- 领域
- build-system, devtools, tooling
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100