Python 3.10.0rc1 is now available

This is the first release candidate of Python 3.10

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-38605: from __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 theoretical physics, quantum chromodynamics (QCD) is the theory of the strong interaction between quarks and gluons, the fundamental particles that make up composite hadrons such as the proton, neutron, and pion. The QCD analog of electric charge is a property called color. Gluons are the force carrier of the theory, just as photons are for the electromagnetic force in quantum electrodynamics. There are three kinds of charge in QCD (as opposed to one in quantum electrodynamics or QED) are usually referred to as β€œcolor charge” by loose analogy to the three kinds of color (red, green and blue) perceived by humans. Other than this nomenclature, the quantum parameter β€œcolor” is completely unrelated to the everyday, familiar phenomenon of color.