Develop a way to figure out the maximal list of projects that _may_ be compatible with WASI

Aperta
#42 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python, wasm
Ambito
tooling, web-dev

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.

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:

  1. All projects on PyPI
  2. Projects on PyPI that have a pure Python wheel
  3. Projects who only have dependencies that are pure Python wheels
  4. Importation of the top-level project succeeds
  5. Test suite passes
  6. 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.

Lingua principale
Python
Stelle
100
Fork
15
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/vscode-python-web-wasm

Tutte le issue di microsoft/vscode-python-web-wasm

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.