Python 3.13.0b1 now available

After a little bit of excitement discovering new bugs during the release, it’s done: 3.13.0 beta 1 is released, the 3.13 branch has been created, and features for 3.13 are frozen! The main branch is now 3.14.0a0.

This is a beta preview of Python 3.13

Python 3.13 is still in development. This release, 3.13.0b1, is the first of four beta release previews of 3.13.

Beta release previews are intended to give the wider community the opportunity to test new features and bug fixes and to prepare their projects to support the new feature release.

We strongly encourage maintainers of third-party Python projects to test with 3.13 during the beta phase and report issues found to the Python bug tracker as soon as possible. While the release is planned to be feature complete entering the beta phase, it is possible that features may be modified or, in rare cases, deleted up until the start of the release candidate phase (Tuesday 2024-07-30). Our goal is to have no ABI changes after beta 4 and as few code changes as possible after 3.13.0rc1, the first release candidate. To achieve that, it will be extremely important to get as much exposure for 3.13 as possible during the beta phase.

Please keep in mind that this is a preview release and its use is not recommended for production environments.

Major new features of the 3.13 series, compared to 3.12

Some of the new major new features and changes in Python 3.13 are:

New features

Typing

Removals and new deprecations

  • PEP 594 (Removing dead batteries from the standard library) scheduled removals of many deprecated modules: aifc, audioop, chunk, cgi, cgitb, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu, xdrlib, lib2to3.
  • Many other removals of deprecated classes, functions and methods in various standard library modules.
  • C API removals and deprecations. (Some removals present in alpha 1 were reverted in alpha 2, as the removals were deemed too disruptive at this time.)
  • New deprecations, most of which are scheduled for removal from Python 3.15 or 3.16.

(Hey, fellow core developer, if a feature you find important is missing from this list, let Thomas know.)

For more details on the changes to Python 3.13, see What’s new in Python 3.13. The next pre-release of Python 3.13 will be 3.13.0b2, currently scheduled for 2024-05-28.

More resources

Enjoy the new releases

Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation.

Regards from droopy Amsterdam,

Your release team,
Thomas Wouters @thomas
Łukasz Langa @ambv
Ned Deily @nad
Steve Dower @steve.dower

31 Likes

Wouldn’t it be nice, if there was a github action that created a PR to add beta release to any project test matrix?

I’ve used all-repos for this sort of thing before. To set up:

Then, depending on your workflow matrix, something like this for a dry run:

$ all-repos-sed --dry-run --branch-name add-3.13 --commit-msg "Test Python 3.13" 's~, "3.12"]~, "3.12", "3.13-dev"]~g' -- '*.yml'

Or, if you already use actions/setup-python with allow-prereleases: true:

$ all-repos-sed --dry-run --branch-name add-3.13 --commit-msg "Test Python 3.13" 's~, "3.12"]~, "3.12", "3.13"]~g' -- '*.yml'

If the dry run looks okay, re-run without --dry-run.

1 Like

After successfully dealing with various issues, the 3.13.0b1 updates are available for Fedora Linux.

3 Likes