• [gentoo-dev] [Python] The big plans for May: Python 3.13 by default, Py

    From =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to All on Tue Mar 18 12:40:01 2025
    Hello, everyone.

    It seems that everything looks good enough to keep our yearly switchover
    around May. Which means that around 2025-05-01, we are going to:

    1. Change the default Python target from CPython 3.12 to 3.13,

    2. Remove the support for Python 3.10 and PyPy 3.10 (pypy3 target).

    Mid-May we also expect Python 3.14.0b1, and therefore Python 3.14 target
    being introduced.


    == Python 3.13 switch ==

    Once again, please test your packages against Python 3.13 and add it to
    the COMPAT. Overall, looks like the porting is at roughly 76% right
    now, and from my little sprint yesterday, it looks like in many cases
    the packages simply work already with 3.13 and just need to be tested
    and marked.

    As usual, the lists and graphs can be found on qa-reports:

    https://qa-reports.gentoo.org/output/gpyutils/312-to-313.txt https://qa-reports.gentoo.org/output/gpyutils/312-to-313.svg

    and for pending stabilizations:

    https://qa-reports.gentoo.org/output/gpyutils/312-to-313-stablereq.txt https://qa-reports.gentoo.org/output/gpyutils/312-to-313-stablereq.svg

    There's also the more general impl matrix at:

    https://qa-reports.gentoo.org/output/python-pkg-impls.txt

    While porting, please also remember to switch packages using distutils-
    r1 to use PEP517 builds, as the pre-PEP517 world is falling apart.

    I'm going to submit the news item for review shortly.


    == Python 3.10 and PyPy 3.10 removal ==

    PyPy3.11 has been released recently, and the porting is mostly done.
    There are still a handful of packages that work with PyPy3.10 only:

    https://qa-reports.gentoo.org/output/gpyutils/pypy310-to-pypy311.txt

    However, they seem low priority — probably most of them have gotten
    marked for pypy3 by accident, and may never have been actually tested.
    Feel free to test/port them, but I think there will be no harm if they
    lose PyPy3 support entirely for the time being.

    Given that the main reason for keeping CPython 3.10 target was to be
    able to compare results between CPython and PyPy, the release of
    PyPy3.11 allows us to remove the target. On top of that, some major
    projects (Sphinx and IPython) have removed upstream support for 3.10
    already, and well, with all their reverse dependencies things are
    already falling apart.

    So, we're going to remove 3.10 targets while switching the default to
    3.13. As usual, dev-lang/python:3.10 will remain available for
    local/venv use, for as long as we can (i.e. until upstream EOL, then
    until it breaks hard). We may also keep dev-lang/pypy:3.10 for a while,
    unless upstream discontinues it before the switchover.


    == Python 3.14 beta ==

    PEP 745 [1] sets the beta 1 release date for 2025-05-06. As customary,
    at this point we will add new target support to the eclass, and start
    porting the initial packages. We're not syncing this with the other
    switches, since new COMPATs will appear gradually anyway.

    [1] https://peps.python.org/pep-0745/

    --
    Best regards,
    Michał Górny


    -----BEGIN PGP SIGNATURE-----

    iQFGBAABCgAwFiEEx2qEUJQJjSjMiybFY5ra4jKeJA4FAmfZW1ISHG1nb3JueUBn ZW50b28ub3JnAAoJEGOa2uIyniQO140IAJIwl8JlIIWh1PSJVRPbXCVJlEkfkvgr H6pRD18W3EGP1tg/ux21iTVGOYaolyyYLsBcjglmzMbubeBJg8RJwVEpOtoBFIRR jhEm0uUZfvwiWLturrjJr5c8IvEu+5pvvSr0qkQbcJDR+itXlIS6QOsTWSrkcHmO Um/68zyDM+DinpFcoZCui2biqNohhIf0FciDVyiGd1D5AIH99H4qISK1cIzTPSPn Oi7QSPrBke17FreC0QU4lBoi2N/UkMUo5dzbMk3DmAvqdtklg2wBzg+YKZg/w6zP zsm14EVOVSCFa0uzu1U9fUT65wO29DOkY9AfXQ+MwnePSNYpP+qD808=
    =8U/D
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)