The cursed release of Python 3.11.0b4 is now available

I cannot believe I am writing this, but Python 3.11.b4 is available :scream: :tada: :tada: :tada:

:warning: PLEASE HELP US TO TEST THIS RELEASE :warning:

Due to the modified release schedule and the stability concerns regarding the past beta releases, please, please, please, please, help us to test Python 3.11 by testing this beta releases.

  • if you maintain a library or a third-party package. Test the beta releases!
  • If you have code that you maintain at work/research centre/classroom/whatever. Test the beta releases!
  • If you are a multi-million corporation that uses Python. Test the beta releases!
  • If you are a single-person company that uses Python. Test the beta releases!
  • If you have a bunch of Python scripts. Test the beta releases!
  • If you use Python for work, research, teaching or literally for anything. Test the beta releases!
  • If you …

In summary: no matter who you are of what you do. Test the beta releases!

Is very important for us that we identify all possible things that may break your code before the final release is done and we can only do this if you help us by testing the beta releases and then report anything that doesn’t work!

Credit where credit is due :pray:

Lots of thanks to @tiran, @brandtbucher, @iritkatriel, @markshannon, Dennis Sweeney, @kumaraditya303 and other contributors (sorry if I am missing any names) that worked really hard against time to help me and the release team with the release blockers. They are all awesome and we and the Python community are very lucky to have them in the team :heart:

What happens with the next betas?

As stated in my previous communication we are in a special situation regarding beta releases. As the requirements to continue with the regular schedule are met, we are going to still target the final release of Monday, 2022-10-03.

Python 3.11.0b5 was supposed to be released two days ago, so we are obviously delayed. As we are targeting the regular release schedule, I’m going to try to release 3.11.0b5 on Monday, 2022-07-25.

This is a beta preview of Python 3.11

Python 3.11 is still in development. 3.11.0b4 is the fourth of five planned beta release previews. 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.11 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 (Monday, 2021-08-02). Our goal is have no ABI changes after beta 5 and as few code changes as possible after 3.11.0rc1, the first release candidate. To achieve that, it will be extremely important to get as much exposure for 3.11 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.11 series, compared to 3.10

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

General changes

  • PEP 657 – Include Fine-Grained Error Locations in Tracebacks
  • PEP 654 – Exception Groups and except*
  • PEP 680– tomllib: Support for Parsing TOML in the Standard Library
  • PEP 681– Data Class Transforms
  • bpo-46752– Introduce task groups to asyncio
  • bpo-433030 – Atomic grouping ((?>…)) and possessive quantifiers (*+, ++, ?+, {m,n}+) are now supported in regular expressions.
  • The Faster Cpython Project is already yielding some exciting results. Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.22x speedup on the standard benchmark suite. See Faster CPython for details.

Typing and typing language changes

  • PEP 673 – Self Type
  • PEP 646– Variadic Generics
  • PEP 675– Arbitrary Literal String Type
  • PEP 655– Marking individual TypedDict items as required or potentially-missing

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

The next pre-release of Python 3.11 will be 3.11.0b5, currently scheduled for Monday, 2022-07-25.

More resources

And now for something completely different

The Planck temperature is 1.416784×10**32 K. At this temperature, the wavelength of light emitted by thermal radiation reaches the Planck length. There are no known physical models able to describe temperatures greater than the Planck temperature and a quantum theory of gravity would be required to model the extreme energies attained. Hypothetically, a system in thermal equilibrium at the Planck temperature might contain Planck-scale black holes, constantly being formed from thermal radiation and decaying via Hawking evaporation; adding energy to such a system might decrease its temperature by creating larger black holes, whose Hawking temperature is lower.

Rumours say the Planck temperature can be reached in some of the hottest parts of Spain in summer.

We hope you 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.

If you have any questions, please reach out to me or another member of the release team :slight_smile:

Your friendly release team,

Ned Deily @nad Profile - nad - Discussions on Python.org
Steve Dower @steve.dower Profile - steve.dower - Discussions on Python.org
Pablo Galindo Salgado @pablogsal Profile - pablogsal - Discussions on Python.org

14 Likes

BSD-style checksum format hashes for the release artefacts:

SHA256 (python-3.11.0b4-embed-arm64.zip) = 272c6bb4948c597f6578f64c2b15a70466c5dfb49f9b84dba57a84e59e7bd4ef
SHA256 (python-3.11.0b4-amd64.exe) = a3514b0401e6a85416f3e080586c86ccd9e2e62c8a54b9119d9e6415e3cadb62
SHA256 (python-3.11.0b4-macos11.pkg) = 860647775d4e6cd1a8d71412233df5dbe3aa2886fc16d82a59ab2f625464f2d7
SHA256 (python-3.11.0b4-embed-win32.zip) = 36b81da7986f8d59be61adb452681dbd3257ebb90bd89092b2fbbd9356e06425
SHA256 (python-3.11.0b4-arm64.exe) = ad0d1429682ba1edc0c0cf87f68a3d1319b887b715da70a91db41d02be4997a4
SHA256 (python-3.11.0b4-embed-amd64.zip) = 66e6bb44c36da36ecc1de64efdb92f52ba3a19221dba2a89e22e39f715bd205b
SHA256 (Python-3.11.0b4.tar.xz) = 1d93b611607903e080417c1a9567f5fbbf5124cc5c86f4afbba1c8fd34c5f6fb
SHA256 (python-3.11.0b4.exe) = 6febc152711840337f53e2fd5dc12bb2b1314766f591129282fd372c855fa877
SHA256 (Python-3.11.0b4.tgz) = 257e753db2294794fa8dec072c228f3f53fd541a303de9418854b3c2512ccbec

Is it possible to get a copy of the Windows launcher (py.exe) for the 3.11.0b4 release, that I can test standalone, without needing to install it? I briefly installed 3.11.0b4 and started getting weird “Cannot create process” errors from the launcher (which impacted 3.10 as well as 3.11, so it’s clearly the launcher rather than Python). I didn’t have time to diagnose then, so I uninstalled 3.11 and reinstalled the 3.10 launcher, but I’d like to get the 3.11 launcher for testing, to see if I can pinpoint the issue further (what I have right now isn’t enough to raise a maningful bug report).

If there’s no other option, I can build my own copy of the launcher, but it would be quicker for me if it’s available somewhere.

Edit: Never mind, I built the launcher myself and reproduced the issue. Filed here. I’m in the process of doing git bisect to pinpoint the problem now.

2 Likes

Seems you’ve found a good option, but for future reference you can get the MSI from https://www.python.org/ftp/python/3.11.0/win32b4/launcher.msi (I’m sure you can calculate the next release’s location) and running that directly should install it normally.

Caveats: it’ll go into your AppData folder, so if you’ve got an all users install already (under C:\Windows) then that one will still take priority. If you already had a per-user install, this will upgrade it.

1 Like

Thanks @steve.dower. I was looking for something that didn’t need installing, though, as I wanted to test without impacting my whole system. I guess I can look up the command line to unpack a MSI and just take py.exe from that. But as I say, I ended up building (which isn’t too hard).

One other thought, while I have your attention :wink: - is there a command line way of just building the lancher? build.bat is pretty fast even building everything, but just building the launcher would be nice. I assume there’s some MSBuild invocation that will do it, but I’m not very familiar with command line MSVC stuff much beyond cl

You’ll need MSBuild on PATH, but then msbuild PCbuild/pylauncher.vcxproj should be enough. Check its output for where the executable goes, but it should be PCbuild/win32/py.exe

We only ever ship a 32-bit build, as that runs on all platforms, though the x64 and ARM64 builds can work (with /p:Platform=x64 added)