If you plan to remove deprecated APIs from Python 3.14, please do it now

Hello,

As Python 3.14.0a1 is approaching, on behalf of the early Python testers in the Fedora Linux community, we’d like to ask you to remove the deprecated bits of Python as soon as possible (or don’t remove them in 3.14 at all).

For years, we’re testing new Pythons in Fedora Linux and report hundreds of failures to the projects and CPython bug tracker.
This works best if the breaking changes land in Python early in the release cycle and are smoothened out with each next released alpha/beta version.

As an example, with Python 3.13 we managed to build Cython just weeks after the 3.13.0a1 release and kept building it successfully for the whole preview year.
That was extremely important, as Cython is a crucial component needed to build hundreds of other packages.

The fact that there were no new breaking removals later in the development cycle helped build the trust of the projects maintainers and encouraged them to deal with the issues earlier (the argument: “alphas keep removing things all the time, there’s no point in fixing my project before it gets stabilized” lost its significance). It also reduced stress on the early testers - including yours truly - side.

We’d like to stress that if you don’t need to remove a deprecated bit, it’s completely fine to keep it there for this and next releases. The less breaking changes in Python, the happier we are.

Currently, we’ve identified two functions with a deprecation scheduled for Python 3.14:
pkgutil.get_loader and pkgutil.find_loader.

15 Likes

There’s also this list: What’s New In Python 3.13 — Python 3.13.0 documentation (Pending Removal in Python 3.14).

1 Like

I think we removed most of the things soon after the main branch became 3.14 in May.

There’s an open PR for this (python/cpython#119656), I’ll give it a nudge (cc @picnixz).

2 Likes

This section is outdated, I wrote PR gh-125575 to update it. The list is pending removals is way shorter, most deprecated functions were already removed in alpha1 (hopefully).

It is approved but remains unmerged. Could you please get it into 3.14.0a2 or postpone it to 3.15/3.26?

It was on my TODO list of things for 3.14.0a2, but I just merged it. Thanks!

1 Like

I went through the docs and found three more which were planned for removal in 3.14. We decided to postpone them for later releases. The docs have been updated:

2 Likes

There is an open PR to remove urllib.request.URLopener and FancyURLopener: PR gh-125739.

1 Like

This has been merged and will be in alpha 2.

5 Likes