microsoft / microsoft/vscode-python-web-wasm
Develop a way to figure out the maximal list of projects that _may_ be compatible with WASI
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 100
- Forks
- 15
- PR merge metrics
- No merged PRs in 30d
Description
We are after a list of potential projects that could work with Python under WASI. There's essentially 6 layers to this, each one more specific than the previous, but all accurate for what they claim:
- All projects on PyPI
- Projects on PyPI that have a pure Python wheel
- Projects who only have dependencies that are pure Python wheels
- Importation of the top-level project succeeds
- Test suite passes
- Projects declare their support
We can calculate layers 1 and 2 easily thanks to https://github.com/sethmlarson/pypi-data (although with slightly outdated data). We can calculate layer 2 with sqlite3 pypi.db 'SELECT DISTINCT package_name FROM wheels WHERE python = "py3" OR python = "py2.py3" ORDER BY package_
name ASC' > project_with_pure_wheels.txt.
Layer 3 requires writing a resolver which can resolve for a specific environment and only for specific wheel tags (which helps out with lock files, but it's still work). Layer 4 probably can be automated with introspection inside wheel files and importing module(s) based on what's found in them (luckily WASI is sandboxed, so this should actually be a safe operation). Layer 5 will either have to be some crazy set of heuristics or we accept it as being a per-project thing (plus being able to actually run pytest under WASI). And for layer 6, I have opened https://discuss.python.org/t/do-we-want-classifiers-for-webassembly-on-pypi/22712 to discuss it with the community.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the pypi-data project and the documented sqlite3 query for pure wheels. The work spans dependency resolution for WASI wheel tags, wheel introspection and imports, pytest under WASI, and the proposed PyPI classifiers; done means producing a documented compatibility approach across the six stated layers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, wasm
- Domain
- tooling, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100