microsoft / microsoft/vscode-python-web-wasm
Develop a way to figure out the maximal list of projects that _may_ be compatible with WASI
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 100
- Fork
- 15
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia esaminando il progetto pypi-data e la query sqlite3 documentata per le pure wheels. Il lavoro comprende la risoluzione delle dipendenze per i WASI wheel tags, l’introspezione e gli imports delle wheel, pytest su WASI e i classifiers PyPI proposti; è considerato completato quando viene prodotto un approccio documentato alla compatibilità tra i sei livelli indicati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python, wasm
- Ambito
- tooling, web-dev
- 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