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.
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.
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.
And the support period after the release is also clearly decided and it will be 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.
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