Python 3.14.0 alpha 5

Here comes the antepenultimate alpha.

https://www.python.org/downloads/release/python-3140a5/

This is an early developer preview of Python 3.14

Major new features of the 3.14 series, compared to 3.13

Python 3.14 is still in development. This release, 3.14.0a5, is the fifth of seven planned alpha releases.

Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process.

During the alpha phase, features may be added up until the start of the beta phase (2025-05-06) and, if necessary, may be modified or deleted up until the release candidate phase (2025-07-22). Please keep in mind that this is a preview release and its use is not recommended for production environments.

Many new features for Python 3.14 are still being planned and written. Among the new major new features and changes so far:

The next pre-release of Python 3.14 will be the penultimate alpha, 3.14.0a6, currently scheduled for 2025-03-14.

More resources

And now for something completely different

2025-01-29 marked the start of a new lunar year, the Year of the Snake :snake: (and the Year of Python?).

For centuries, π was often approximated as 3 in China. Some time between the years 1 and 5 CE, astronomer, librarian, mathematician and politician Liu Xin (劉歆) calculated π as 3.154.

Around 130 CE, mathematician, astronomer, and geographer Zhang Heng (張衡, 78–139) compared the celestial circle with the diameter of the earth as 736:232 to get 3.1724. He also came up with a formula for the ratio between a cube and inscribed sphere as 8:5, implying the ratio of a square’s area to an inscribed circle is √8:√5. From this, he calculated π as √10 (~3.162).

Third century mathematician Liu Hui (刘徽) came up with an algorithm for calculating π iteratively: calculate the area of a polygon inscribed in a circle, then as the number of sides of the polygon is increased, the area becomes closer to that of the circle, from which you can approximate π.

This algorithm is similar to the method used by Archimedes in the 3rd century BCE and Ludolph van Ceulen in the 16th century CE (see 3.14.0a2 release notes), but Archimedes only went up to a 96-sided polygon (96-gon). Liu Hui went up to a 192-gon to approximate π as 157/50 (3.14) and later a 3072-gon for 3.14159.

Liu Hu wrote a commentary on the book The Nine Chapters on the Mathematical Art which included his π approximations.

In the fifth century, astronomer, inventor, mathematician, politician, and writer Zu Chongzhi (祖沖之, 429–500) used Liu Hui’s algorithm to inscribe a 12,288-gon to compute π between 3.1415926 and 3.1415927, correct to seven decimal places. This was more accurate than Hellenistic calculations and wouldn’t be improved upon for 900 years.

Happy Year of the Snake!

Enjoy the new release

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 organisation contributions to the Python Software Foundation.

Regards from a remarkably snowless Helsinki,

Your release team,
Hugo van Kemenade @hugovk
Ned Deily @nad
Steve Dower @steve.dower
Łukasz Langa @ambv

15 Likes

WASI build at Release CPython 3.14.0a5 w/ WASI SDK 24 · brettcannon/cpython-wasi-build · GitHub.

2 Likes

Note: this release initially contained source tarballs that didn’t match the final v3.14.0a5 Git tag. Around 2025-02-12 0815 UTC, I replaced the source tarballs with the correct versions.

This happened because this release took three attempts due to a bug that failed the Windows PGO builds, and I accidentally uploaded the source tarballs from the second attempt. Sorry for any confusion!

3 Likes

The sigstore verificacion fails:

jcea@jcea:/tmp/ram$ sigstore verify identity --bundle Python-3.14.0a5.tgz.sigstore --cert-identity hugo@python.org --cert-oidc-issuer https://github.com/login/oauth Python-3.14.0a5.tgz
[14:05:43] ERROR    FAIL: Python-3.14.0a5.tgz                       _cli.py:1082
           ERROR    Signature is invalid for input                  errors.py:41
                    For detailed error information, run sigstore                
                    with the `--verbose` flag.                                  
1 Like

Thanks, I purged the CDN cache and they verify now:

$ ls -l --size=bytes Python-3.14.0a5.t*
.rw-r--r-- hugo wheel 22859900  Wed Feb 12 16:38:11 2025 Python-3.14.0a5.tar.xz
.rw-r--r-- hugo wheel     5131  Wed Feb 12 16:38:15 2025 Python-3.14.0a5.tar.xz.sigstore
.rw-r--r-- hugo wheel 29710072  Wed Feb 12 16:38:08 2025 Python-3.14.0a5.tgz
.rw-r--r-- hugo wheel     5083  Wed Feb 12 16:38:14 2025 Python-3.14.0a5.tgz.sigstore

$ python3 -m sigstore verify identity --cert-identity hugo@python.org --cert-oidc-issuer https://github.com/login/oauth --bundle Python-3.14.0a5.tar.xz.sigstore Python-3.14.0a5.tar.xz
OK: Python-3.14.0a5.tar.xz

$ python3 -m sigstore verify identity --cert-identity hugo@python.org --cert-oidc-issuer https://github.com/login/oauth --bundle Python-3.14.0a5.tgz.sigstore Python-3.14.0a5.tgz
OK: Python-3.14.0a5.tgz

I just re-downloaded the files and I can confirm that the verification works fine now.

I am worried about republishing a new corrected revision of Python keeping the same version number. There are people out there, like myself this morning, with a defective 3.14.0a5. I think that republishing is a mistake. I would feel better yanking 3.14.0a5 and publishing 3.14.0a6.

For your consideration.

5 Likes

Thanks for the feedback, noted. Because it had already taken a long time to fix the bugs and restart three builds, we decided it was okay for an alpha. I’ll be more careful next time (and hopefully there’ll be no need for restarts!) and in any case we’d likely do a new release for beta and later.

6 Likes