Skip to content

Proposal: Transition matplotlib-pyodide to Maintenance-Only Mode #65

Open
@ryanking13

Description

@ryanking13

Background

matplotlib is a critical library for Python users, and many want to use it with Pyodide. To meet this demand, matplotlib-pyodide was introduced early in Pyodide's history (originating in the predecessor project, Iodide).

The project benefited initially from @ mdboom (not linking intentionally as he doesn't work at Pyodide anymore), Pyodide creator and Matplotlib contributor, who developed a Matplotlib backend for Pyodide. However, the current Pyodide core team lacks the deep Matplotlib expertise required to maintain this backend effectively.

This lack of expertise has become a bottleneck, especially during major updates like upgrading NumPy v2. For example, while @agriyakhetarpal has made significant progress on this upgrade, updating and testing matplotlib-pyodide remains a significant challenge.

Proposal

I propose moving matplotlib-pyodide to maintenance-only mode, with the following changes:

Limit New Features:

Only address critical compatibility issues with Matplotlib (e.g., #15). No new feature additions.

Remove Non-Essential, Unmaintainable Features:

  • Font support: Currently relies on bundling a separate .ttf file in the Pyodide distribution, which is problematic without a clear solution.
  • html5_canvas_backend: Developed during a GSoC project (details here), but it is no longer actively developed or well-understood. The default wasm_backend will remain. (cc: @madhur-tandon)

By removing these features, we aim to reduce maintenance costs. Alternatively, we could exclude these features from the test suite to avoid blocking releases due to broken tests.

Revisit Maintenance Mode if a Maintainer Emerges:

If a reliable maintainer with sufficient expertise volunteers, we can revoke maintenance-only status.

Additional Context

Tools using the IPython kernel (e.g., JupyterLite) typically use their own Matplotlib backend and do not depend on matplotlib-pyodide. So I believe it would not affect users who use matplotlib in Jupyter-like kernels.

WDYT?

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is neededrequest for commentInviting voices by users, contributors, maintainers, and anyone else interested to express thoughts

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions