Python language developers to switch to for preparing releases. Major releases of the language will now occur once a year instead of every one and a half years, as was the case before. Therefore, Python 3.9 can be expected in October 2020. The overall development time for a significant release will be 17 months.
Work on the new branch will start five months prior to the release of the next branch, during its transition to the beta testing stage. Then, for seven months, the new branch will be in the alpha release phase, during which new features will be added and bug fixes will be made. After that, for three months, beta versions will be tested, during which the addition of new features will be prohibited and all attention will be focused on fixing bugs. The last two months before the release will see the branch in the release candidate stage, during which final stabilization will occur.
For example, the development of branch 3.9 began on June 4, 2019. The first alpha release was published on October 14, 2019, and the first beta release is expected on May 18, 2020. A release candidate will be formed in August, and the release will occur on October 5.
After the release, the branch will be fully supported for a year and a half, after which corrections addressing vulnerabilities will be made for another three and a half years. In total, the support time will be five years. During the first support phase, bugs will be fixed, and updates will be released approximately every two months with installers prepared for Windows and macOS. In the second phase, releases will be generated as needed to address vulnerabilities and will only be available in source code form.
It is noted that the new development cycle will ensure a predictable transition during the alpha and beta testing phases, as well as provide a clear timeline for release formation. This will allow for the synchronization of product development with new branches of Python. A predictable development cycle will also simplify Python's development planning, and more frequent releases of new branches will accelerate the delivery of new features to users while reducing the volume of changes in each branch (more frequent releases, but fewer new features in each release). Stretching and splitting the alpha testing phase will allow for tracking development dynamics and integrate innovations more smoothly, avoiding rushes before the beta release, during which developers endeavored to finalize innovations at the last moment to prevent them from being postponed for 18 months until the next branch.
Source: opennet.ru
