Skip to content

TODO list to encourage PEP 783 Adoption #290

Description

@ryanking13

This issue lists up the tasks required to encourage and support package maintainers in building and publishing packages for Pyodide once PEP 783 is accepted. The goal is to reduce friction in the build/publish loop and ensure the tooling ecosystem is ready for widespread adoption.

P0

  • Automate Emscripten installation in pyodide-build
    • Update the build system to automatically install and patch the correct Emscripten version.
    • Remove the need for manual setup and simplify configuration for users of cibuildwheel and pyodide-build in CI.
    • In progress Feat/auto activate emsdk #253 (I think someone can take it over to move forward).
  • Revamp Package Build Documentation
  • Integrate auditwheel-emscripten support in cibuildwheel
    • Ensure packages with shared libraries run auditwheel-emscripten after build to function correctly without a lockfile.
  • Expose Alpha ABI configuration
  • Improve Testing Support
    • Create robust documentation and tooling for using pyodide venv combined with pytest or unittest.
    • Ensure compatibility with modern workflow tools like uv.

P1

  • Slim down pyodide-build
    • Reduce mandatory dependencies to make the tool more compact.
    • Make recipe-related dependencies (e.g., yaml, rich) optional.
  • Enhance Cross-Build Support
  • Establish Interim Package Index
  • Maintainer Outreach
    • Initiate communication with key package maintainers to encourage building and publishing Pyodide wheels.
    • @agriyakhetarpal is the one who were doing this quite well.

P2

  • Provide Pre-built Libraries and Headers
    • Offer a repository of pre-built shared libraries and headers.
    • Alleviate the pain point of cross-compiling complex shared libraries for individual package maintainers. Allow maintainers to grep and use these pre-built artifacts during their build process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions