-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Develop a way to figure out the maximal list of projects that _may_ be compatible with WASI #42
Comments
pypa/trove-classifiers#129 adds Trove classifiers for declaring WebAssembly support on PyPI. They will eventually show up at https://pypi.org/classifiers/ . |
92 tasks
91 tasks
90 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:
We can calculate layers 1 and 2 easily thanks to https:/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.
The text was updated successfully, but these errors were encountered: