Python is switching to an annual release cycle
Python has picked up its pace! New major versions of the programming language will now be released every year, as opposed to the previous cycle of one and a half years. The change will affect the upcoming major version, Python 3.9, which will be moved forward by six months.
Following discussions within the community, Python BDFL and steering council member Brett Cannon has announced the acceptance of PEP 602, and thereby the move to a faster annual release cycle for major language versions. The announcement was issued via the Python mailing list on behalf of the Python steering council.
Acceptance is dependent upon further modifications to PEP 602 by Python core developer Łukasz Langa, who first proposed the PEP in June 2019. The planned changes are the lengthening of beta phases from two to three months, as well as the doubling of release candidate phases to two months.
When put into effect, the change will also affect the upcoming version Python 3.9. It is set to be released on October 5, 2020, according to PEP 602—around one year after Python 3.8, which was made available last month. Python 3.9 was originally scheduled to arrive in April 2021 in accordance with the current 18-month release cycle.
Steering council expects positive effects
The steering council believes the updated release cycle will offer some benefits to the community as well as the core developers.
The consistency should help users in preparing for RCs and knowing when to start testing the beta. Another expected advantage is that it will improve the coordination of related releases with the final Python version. Core developers will be able to plan ahead more easily, while new features will be available sooner to developers and community alike.
Along with the annual release cycle, other changes have been implemented to accommodate users who cannot update every year.
Deprecations will now last two releases—or two years—compared to the current 18 months. Additionally, the stable ABI has been cleaned for better targeting by extension modules. This should make it easier to support newer Python versions.
And that’s not all: discussions around PEP 387 will resume to work on a clearer backwards compatibility policy.
Brett Cannon’s mailing list announcement provides more details on the acceptance of PEP 602.