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

Offen
#42 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python, wasm
Bereich
tooling, web-dev

Rechercherichtung

Beginne mit der Prüfung des pypi-data-Projekts und der dokumentierten sqlite3-Abfrage für pure wheels. Die Arbeit umfasst die Auflösung von Abhängigkeiten für WASI wheel tags, die Wheel-Introspektion und -Imports, pytest unter WASI sowie die vorgeschlagenen PyPI classifiers; als abgeschlossen gilt die Erstellung eines dokumentierten Kompatibilitätsansatzes über die sechs genannten Ebenen hinweg.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Python
Sterne
100
Forks
15
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/vscode-python-web-wasm

Alle Issues in microsoft/vscode-python-web-wasm

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.