The final beta snapshot planned for the 3.6 release cycle is scheduled to be 
tagged today within the next 12 hours.  We then begin the Release Candidate 
stage, the final days leading up to 3.6.0, with the release candidate scheduled 
to be tagged in about 2 weeks.  As I have noted previously, with the tagging 
today and release of beta 4, *all* non-critical bug fixes for 3.6.0 should now 
have been checked in.  From the b4 tag on, *only* release critical and doc 
fixes should be pushed for the release candidate.  A reminder from the 
Developer's Guide regarding the Release Candidate stage of the release cycle:

"A branch preparing for an RC release can only have bugfixes applied that have 
been reviewed by other core developers. Generally, these issues must be severe 
enough (e.g. crashes) that they deserve fixing before the final release. All 
other issues should be deferred to the next development cycle, since stability 
is the strongest concern at this point.  You cannot skip the peer review during 
an RC, no matter how small! Even if it is a simple copy-and-paste change, 
everything requires peer review from a core developer."

A goal for this release has been to have no changes between the release 
candidate and the final release other than the tag itself.  Remember that every 
time we make a change at this point, it puts a burden on and adds risk to our 
testing efforts and, more importantly, the efforts of our third-party package 
developers, downstream distributors, and end users helping us ensure that 3.6.0 
will be a high-quality release.  I think everyone has been doing a great job so 
far in exercising good judgement about what is appropriate at each stage of our 
release cycle.  Thank you!  Now, after b4, unless a code change addresses a 
truly release critical issue, please target bug fixes for 3.6.1 and, of course, 
continue to target new features for 3.7.

This raises the issue of what process to follow for changes to the 3.6 branch 
following the b4 tag and up to the final 3.6.0 release.  During the last 
feature release cycle (3.5.0), we tried something a little bit different: 
having a 3.5 branch open during the beta phase and then using a special 
Bitbucket repo with pull requests for changes in the release candidate phase.  
This was intended to ease the burden on us release managers trying to cherry 
pick a set of fixes into the RC and/or final releases while allowing the 3.5 
branch to remain open to everyone for 3.5.1 changes.  My sense is that, while 
we all appreciated keeping the branch open for bug fixes, many of us were new 
to the Bitbucket PR process and found it more confusing than expected.  So for 
3.6.0, I am trying to avoid going down that route.  But I do need your help.  
First, throughout the release cycle I have tried to set expectations that the 
release candidate will be exactly what it says, a candidate for final release
 , and thus there should be at most a *very* small number of release critical 
fixes and final doc updates going in after b4 and with the goal of no changes 
after rc1.  Second, by keeping the rc phase changes to a minimum, I have also 
tried to keep the release candidate phase shorter so that we all can move on to 
focus on the next feature release and on  maintenance releases for 3.6 
(schedules for both will be proposed soon).  Also, 3.6.0 is the last feature 
release cycle using our current development workflow.  Sometime after the 3.6.0 
release, we will be phasing in our revised development workflow (thanks to 
Brett and crew!) and with it will come the opportunity for greater flexibility 
throughout the release cycle, with new tools like pull requests workflows and 
continuous integration testing.  So I don't think it makes sense to spend a lot 
of time tweaking our current process just for the final weeks of one release.

Therefore, what I am planning to do and asking you to do is:

1. Sometime after 1800 UTC today when we are ready to start the 3.6.0b4 tagging 
and release manufacturing process, I will send an email announcement.

2. Following that b4 tag notification and until rc1 is tagged on 2016-12-05 (in 
about two weeks), the 3.6 branch will *temporarily* be open only for fixes 
appropriate for 3.6.0, e.g. reviewed release critical items and final doc 
changes.  Don't forget to mark such items as "release blocker" in the bug 
tracker.

3. Hold off pushing changes that are not 3.6.0 release critical until after rc1 
is tagged.  You can continue to push bug fixes as appropriate to other open 
branches if you are willing to back port them to the 3.6 branch, as necessary, 
after rc1 is tagged.  Or, if you prefer to follow the normal development flow, 
take a bugfix holiday for the next two weeks and just hold off pushing any 
changes that affect 3.6.1 until after rc1 is tagged.  With those (hopefully) 
small inconveniences to you, we won't have to go through a special Bitbucket PR 
process and it will ensure that our 3.6 buildbots continue to test what's going 
into 3.6.0.

4. Once rc1 is tagged, the 3.6 branch will again be open for the usual 
maintenance-release-appropriate changes destined for 3.6.1.  Any emergency 
fixes that might arise after rc1 and prior to 3.6.0 will be approved and merged 
from the 3.6 branch into the 3.6.0 release by me.  I'm really hoping we won't 
have to do that!

I hope that you find the process for the few remaining weeks leading up to the 
3.6.0 release to not be too burdensome.  Please contact me if you have any 
questions about the 3.6.0 schedule or about whether a change is appropriate at 
this point in the 3.6.0 cycle.

To recap, the remaining milestones for 3.6.0:

2016-11-21, ~1800 UTC: 3.6.0 beta 4 (important bug fixes and doc fixes)

2016-11-21 to 2016-12-05: 3.6 branch open *only* for 3.6.0 release critical and 
doc fixes

2016-12-05 (2 weeks from now) 3.6.0 release candidate 1 (3.6.0 code freeze, 
release critical bug fixes, doc fixes; 3.6 branch reopens for 3.6.1)

2016-12-16 3.6.0 release (3.6.0rc1 plus any necessary emergency fixes)

Thank you all again for your efforts so far on 3.6.  Beethoven and I are 
looking forward to celebrating 3.6.0 on 12-16!

--Ned

http://cpython-devguide.readthedocs.io/en/latest/devcycle.html#release-candidate-rc

https://www.python.org/dev/peps/pep-0494/

--
Ned Deily
n...@python.org -- []

_______________________________________________
python-committers mailing list
python-committers@python.org
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/

Reply via email to