Python release cycle is faster!

Introduction

Just about a month and a half ago, the news that Python creator Guido van Rossum quit Dropbox, where he worked for six and a half years, came in. .. It is said that he will not change jobs and will retire as it is. 63 years old. Thank you for your hard work for a long time. Already over a year ago, I was absent from Python's BDFL (* Benevolent Dictator For Life *), and it doesn't have a big impact on Python development, but I'm a little lonely.

He started making Python in December 1989, exactly 30 years ago. He wanted to program his hobby on Christmas holidays, so he decided to create an interpreted language, and that became Python today.

Python, which was released as 0.9.0 in 1991, was also upgraded, 2.0 was released in 2000, and 3.0 was released in 2008. Python2 and Python3 are being developed in parallel, and at present 2.7.17 and 3.8.0 Have come up to. Support for Python2 will end at the end of this year, so only Python3 will be maintained and upgraded in the future. However, the cycle of this release will change! I came up with the story, so I will write a little about it.

The original story is a PEP (Python Enhancement Proposal) called PEP 602 --Annual Release Cycle for Python.

Release cycle so far

When I write out 3.1.0 or later, which has a stable release interval, it looks like this.

Version Release Date
3.1 2009-06-27
3.2 2011-02-20
3.3 2012-09-29
3.4 2014-03-16
3.5 2015-09-13
3.6 2016-12-23
3.7 2018-06-27
3.8 2019-10-14

There are some differences, but at first glance, it seems that they are released in a cycle of about one and a half years. And since the development of a certain version started when the beta of the previous version came out, it took almost two years from the start of development as a whole. This is a bit too long, so a new release cycle proposal has been proposed and adopted.

New release cycle

First of all, the highlight of this release cycle is "** every year ** a new version of Python is released". A new version will be released in October every year, instead of the one-and-a-half-year cycle. Therefore, the scheduling is like this.

Phase period
development of 5 months (overlap with previous β / RC period)
α version 7 months
Beta version Three months
RC version Two months

Development overlaps with the previous version, and the period of α + β + RC is just 12 months, so it can be released every year. In other words, as soon as the official version of the previous version comes out, the next version of α will come out! Up until now, it's been more than half a year since the previous release, so this is pretty amazing.

It may be difficult to understand, so it looks like this in the figure. スクリーンショット 2019-12-15 9.22.37.png

And the support period after the release is also clearly decided and it will be like this.

Python 3.9 looks like this

The schedule for Python 3.9 is already set in PEP-596 and looks like this.

3.9 Development started: 2019-06-04 (completed) 3.9.0 alpha 1: 2019-11-19 (completed) 3.9.0 alpha 2: 2019-12-16 3.9.0 alpha 3: 2020-01-14 3.9.0 alpha 4: 2020-02-17 3.9.0 alpha 5: 2020-03-16 3.9.0 alpha 6: 2020-04-13 3.9.0 beta 1: 2020-05-18 (No new features added after this) 3.9.0 beta 2: 2020-06-08 3.9.0 beta 3: 2020-06-29 3.9.0 beta 4: 2020-07-20 3.9.0 candidate 1: 2020-08-10 3.9.0 candidate 2: 2020-09-14 3.9.0 final: 2020-10-05

As you can see, the first alpha version is already out. And, until now, there were only four α versions, but now there are six, which seems to make up for the shortening of the development period. I think it's a good change to have an agile approach, in which features are gradually added while being released as an alpha version and used.

Summary

Here's a summary of the new release cycle introduced in Python 3.9. I'm glad that the cycle is shortened and new functions can be used in a timely manner.

Recommended Posts

Python release cycle is faster!
Python is easy
What is python
Python is instance
Which is faster, Python shuffle or sample?
What is Python
python int is infinite
@ Is faster than dot
[Python] What is Pipeline ...
[Python] What is virtualenv
[Small story] In Python, i = i + 1 is slightly faster than i + = 1.
Python round is not strictly round
[Python] Debugging is more efficient!
How Python __dict__ is used
Python is painful. But use
Python is an adult language
Python list is not a list
[Python] * args ** What is kwrgs?
Faster loading of Python images
Identity and equivalence Python is and ==
What is a python map?
Python Basic Course (1 What is Python)
[Python competition professional memo] LRU cache is faster than programmatic memoization
What is Python? What is it used for?
[Python] What is a zip function?
[Python] What is a with statement?
Python Note: About comparison using is
ppa: jonathonf / python-3.6 is now private
Difference between == and is in python
Golang vs. Python – Is Golang Better Than Python?
Python is UnicodeEncodeError in CodeBox docker
[Python] What is @? (About the decorator)
Which is better, PyPy or Python?
sympy.Mul is much faster than sympy.prod
Python for statement ~ What is iterable ~
What to do with PYTHON release?
Today's python error: image is blank
Faster Fibonacci sequence calculations (Python version)
What is the python underscore (_) for?
Determining which OS is running Python
Python> What is an extended slice?
Python in is also an operator
Python code that makes DNA sequences complementary strands Which method is faster?