Skip to content

Compiled wheels for Python 3.15 alpha to avoid severe CI slowdown #21229

Description

@pomponchik

Hi, thanks for maintaining mypy.

I'm running mypy in CI across several Python versions, including Python 3.15 alpha, and noticed a very large slowdown only on the newer interpreter where pip falls back to the pure-Python wheel.

Project context:

  • OS in the slow job: ubuntu-latest on GitHub Actions
  • Python version: 3.15.0-alpha.1
  • mypy version tested: 1.20.1
  • CI command: mypy --strict skelet and mypy tests --exclude tests/typing
  • The same CI matrix also runs Python 3.8 through 3.14 and 3.14t

What I observed:

  • On Python 3.14 and 3.14t, mypy==1.20.1 installs compiled wheels and runs quickly.
  • On Python 3.15.0-alpha.1, pip installs the pure-Python py3-none-any wheel.
  • The Python 3.15 alpha job is much slower than the other jobs, while the checked code and mypy commands are the same.

I also checked wheel selection with pip. For Python 3.14 free-threaded, a compiled wheel exists:

mypy-1.20.1-cp314-cp314t-manylinux2014_x86_64...

But for Python 3.15 alpha, pip falls back to:

mypy-1.20.1-py3-none-any.whl

This makes mypy noticeably slower in CI. In my project, moving from an older pure-Python mypy wheel to a compiled wheel reduced typing-related CI time dramatically on Python 3.14. The remaining slow job is now Python 3.15.0-alpha.1.

Would it be possible to publish compiled wheels for Python 3.15 alpha, for example cp315 Linux wheels, while Python 3.15 is still in alpha/beta? That would make it practical to keep testing projects against upcoming Python versions without paying the pure-Python mypy performance cost.

I understand that alpha Python support may be more maintenance work, so even a note about whether such wheels are planned would be helpful.

Thanks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions