Python 3.6.x, 3.7.0, and beyond
Ned Deily, release manager for the Python 3.6 and 3.7 series, opened up the 2017 edition of the Python Language Summit with a look at the release process and where things stand. It was an "abbreviated update" to his talk at last year's summit, he said. He looked to the future for 3.6 and 3.7, but also looked a bit beyond those two.
After a brief review of the Python development life cycle, he noted that 3.7 is in the feature development phase, while 3.6 is now in the maintenance phase. 3.6 was released in December 2016 and the first maintenance release, 3.6.1, was made in March; the next will be made in about a month as he is trying to do maintenance releases on a roughly three-month cadence.
![Ned Deily [Ned Deily]](https://static.lwn.net/images/2017/pls-deily-sm.jpg)
The 3.5 branch is getting close to moving from maintenance mode to "security fixes only" mode. 3.5 release manager Larry Hastings will make that call; Hastings said there would be one more bug-fix release (3.5.4) before that happens. He will announce that it is the last ahead of time and is targeting June or July for that release, unless "something serious, like a zero-day" shows up before then. The 2.7 branch is still in maintenance mode and will be until 2020, when it will be retired, at least from the perspective of the core team, Deily said.
3.6 will remain in bug-fix mode until sometime late in 2018, some time after 3.7 is released. That means 3.6 will get bugs fixed, regressions addressed, and documentation updated, but no new features will be added unless there is a "serious compelling reason" to do so.
In September 2016, development on the 3.7 "branch" (it is really the master branch) began. It will last until January 2018. There are few restrictions on what goes into master over that time, though developers should "try not to break anything too badly". During the 3.6 cycle, new development started earlier than in previous cycles—it overlapped the beta and release candidate period—that seemed to work well and will be done again for 3.7, Deily said. Feature development ends at the release of the first beta (at which point it will pick up for 3.8).
3.7 Alpha releases will start in September and run through January. By the end of that, all new features should be in and "hopefully documented". The beta phase will run from January to May and only bug and regression fixes will be allowed during that time. At the end of the beta phase, the code is frozen and no more changes are allowed. The idea is that the first release candidate is the same as the final release; it is hoped that there are no problems that necessitate an rc2. The current plan is that 3.7 will be released on June 15, 2018.
The 3.8 work will begin in January. If the usual one-and-a-half year cycle between releases holds, 3.8 will be released in early 2020.
The key things that developers should focus on now are 3.6 bug fixes and documentation, 3.7 features and documenting them, and completing the GitHub migration and to the new development workflow. He reminded everyone that all of the changes for 3.7 should be fully complete by around the time of next year's PyCon (which will be held in May in Cleveland, Ohio).
Deily noted that 3.6 was a "great release" and thanked all of the contributors. One of the factors that made it such a good release was that a development sprint was held for it that was "incredibly productive". But, that sprint was organized at the last minute, so it wasn't possible to include everyone, he said. It was also right at the end of the development cycle, which caused the code cutoff to be pushed back a week or two to incorporate the changes; if there will be a sprint for 3.7, he suggested that it be done earlier in the cycle.
Guido van Rossum wanted to discuss what the 2.7 end-of-life date should be. He had said it would be supported until 2020, but never really pinned down a date in that year and now "people are freaking out for some reason". As he remembered, the plan was to set a date when it got closer—apparently, now is that time. In the end, Van Rossum settled on PyCon 2020 for the end of maintenance for 2.7; it is simply a "symbolic thing", since nothing actually happens on that date, as one attendee noted.
Since there was some mention of 3.8 in the session, Brett Cannon asked if that meant that Deily would be taking on the release manager role for 3.8 as well. Deily was quick to say that was definitely not the case. A release manager is needed, but not right away; if someone was chosen by January 2018, or even PyCon 2018, that would probably be just fine. He suggested that those interested talk it over with one of the other release managers to get an idea of what was needed.
[I would like to thank the Linux Foundation for travel assistance to
Portland for the summit.]
Index entries for this article | |
---|---|
Conference | Python Language Summit/2017 |