Monday, August 30, 2021

Python 3.9.7 and 3.8.12 are now available


Python 3.9.7

Python 3.9.7 is the newest major stable release of the Python programming language, and it contains many new features and optimizations. There’s been 187 commits since 3.9.6 which is a similar amount compared to 3.8 at the same stage of the release cycle. See the change log for details.

On macOS, we encourage you to use the universal2 binary installer variant whenever possible. The legacy 10.9+ Intel-only variant will not be provided for Python 3.10 and the universal2 variant will become the default download for 3.9.8. You may need to upgrade third-party components, like pip, to later versions. You may experience differences in behavior in IDLE and other Tk-based applications due to using the newer version of Tk. As always, if you encounter problems when using this installer variant, please check for existing reports and for opening new issues.

The next Python 3.9 maintenance release will be 3.9.8, currently scheduled for 2021-11-01.

The Second Security-Only Release of Python 3.8

Security content in this release contains four fixes. There are also four additional fixes for bugs that might have lead to denial-of-service attacks. Finally, while we’re not providing binary installers anymore, for those users who produce installers, we upgraded the OpenSSL version used to 1.1.1l. Take a look at the change log for details.

According to the release calendar specified in PEP 569, Python 3.8 is now in “security fixes only” stage of its life cycle: 3.8 branch only accepts security fixes and releases of those are made irregularly in source-only form until October 2024. Python 3.8 isn’t receiving regular bug fixes anymore, and binary installers are no longer provided for it. Python 3.8.10 was the last full bugfix release of Python 3.8 with binary installers.

Security releases of 3.7.12 and 3.6.15

Those aren’t ready just yet but are soon to follow.

Similarly to 3.8, Python 3.7 and 3.6 are now in “security fixes only” stage of their life cycle. Python 3.7 will be providing source archives until June 2023 while Python 3.6 ends its life in December 2021.

We hope you enjoy the new releases

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

Tuesday, August 3, 2021

Python 3.10.0rc1 is available

Python 3.10.0 is almost ready. This release, 3.10.0rc1, is the penultimate release preview. You can get it here:

This release, **3.10.0rc1**, is the penultimate release preview.  Entering the release candidate phase, only reviewed code changes which are
clear bug fixes are allowed between this release candidate and the final release. The second candidate and the last planned release preview is
currently planned for 2021-09-06 while the official release is planned for 2021-10-04.

There will be no ABI changes from this point forward in the 3.10 series and the goal is that there will be as few code changes as possible.

Call to action

Core developers: all eyes on the docs now

  • Are all your changes properly documented?
  • Did you notice other changes you know of to have insufficient documentation?

Community members

We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.10 compatibilities during this phase. As always, report any issues to the Python bug tracker.

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.10 series, compared to 3.9

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

  • PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject.
  • PEP 604 – Allow writing union types as X | Y
  • PEP 612 – Parameter Specification Variables
  • PEP 626 – Precise line numbers for debugging and other tools.
  • PEP 618 – Add Optional Length-Checking To zip.
  • bpo-12782: Parenthesized context managers are now officially allowed.
  • PEP 632 – Deprecate distutils module.
  • PEP 613 – Explicit Type Aliases
  • PEP 634 – Structural Pattern Matching: Specification
  • PEP 635 – Structural Pattern Matching: Motivation and Rationale
  • PEP 636 – Structural Pattern Matching: Tutorial
  • PEP 644 – Require OpenSSL 1.1.1 or newer
  • PEP 624 – Remove Py_UNICODE encoder APIs
  • PEP 597 – Add optional EncodingWarning
  • (Hey, fellow core developer, if a feature you find important is missing from this list, let Pablo know.)

The next pre-release, the second release candidate,  will only be released if needed (scheduled for Monday, 2021-09-06). Otherwise, the next release will directly be the final release of Python 3.10.0, which is currently scheduled for Monday, 2021-10-04.

bpo-38605from __future__ import annotations (PEP 563) used to be on this list in previous pre-releases but it has been postponed to Python 3.11 due to some compatibility concerns. You can read the Steering Council communication about it here to learn more.

More resources

And now for something completely different

In quantum physics, the spin is an intrinsic form of angular momentum carried by elementary particles, composite particles, and atomic nuclei. The spin is one of two types of angular momentum in quantum mechanics, the other being orbital angular momentum. The orbital angular momentum operator is the quantum-mechanical counterpart to the classical angular momentum of orbital revolution and appears when there is periodic structure to its wavefunction as the angle varies. For photons, spin is the quantum-mechanical counterpart of the polarization of light; for electrons, the spin has no classical counterpart.

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

Your friendly release team,

Pablo Galindo @pablogsal

Ned Deily @nad

Steve Dower @steve.dower