Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

@pomponchik

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions