bytecodealliance / bytecodealliance/componentize-py
Use `wasm-pkg-tools` to pull interface and world definitions from well-known registries
- Dominant language
- Rust
- Stars
- 277
- Forks
- 51
- Avg merge
- 12h 10m
- Merged PRs (30d)
- 10
Description
[`wasm-pkg-tools`](https://github.com/bytecodealliance/wasm-pkg-tools) provides tools for downloading published WIT definitions (in binary form) from registries, including [default registries](https://github.com/bytecodealliance/wasm-pkg-tools#default-fallback-registries). Ideally, if a `componentize-py` user targets a world that's been published to such a registry, e.g. `wasi:cli/command@0.2.0`, they shouldn't need to provide any WIT files (nor, in the case of WASI worlds, even specify the registry). Instead, `componentize-py` should use `wasm-pkg-tools` to query any available registries and download the world and interface definitions automatically.
In short, we should add a new option for specifying one or more registries (and use the default registries otherwise), plus another option to disable using the default registries if desired. I imagine we'll still want to prioritize using local WIT files if provided.
Contributor guide
Research direction
Trace componentize-py's current WIT and world-resolution entry point, then review how wasm-pkg-tools queries default and explicitly supplied registries. Done means published worlds such as wasi:cli/command@0.2.0 can be resolved without local WIT files, custom registries and disabling defaults are supported, and local WIT files retain priority; add or run coverage for these cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust, wasm
- Domain
- build-system, cli, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100