We will hold this against you only shortly, John. Thanks for writing out
the planning.

On Tue, May 31, 2016 at 12:33 PM, John Burwell <john.burw...@shapeblue.com>
wrote:

> All,
>
> Quick correction below: I misquoted the LTS proposal — branches are cut on
> 1 January and 1 _July_ (not June).
>
> I apologize for the mistake,
> -John
>
> >
> john.burw...@shapeblue.com
> www.shapeblue.com
> 53 Chandos Place, Covent Garden, London VA WC2N 4HSUK
> @shapeblue
>
>
> On May 31, 2016, at 12:28 AM, John Burwell <john.burw...@shapeblue.com>
> wrote:
> >
> > All,
> >
> > Over the course of the last 6-8 months, we have attempted to release
> monthly.  We successfully delivered 4.6, 4,7, and 4,8 using this model.  We
> also established a strong set of CM and review principles to improve the
> quality of releases [1].  To support users that are unable to upgrade on a
> monthly basis, we have proposed adding an LTS release cycle that will
> provide an 18 month support window for releases that are cut twice a year
> (January and June).  We are on track for two types of releases — regular
> and LTS releases.
> >
> > Reflecting on the monthly release cycle, we spent at least 8 days a
> month preparing and voting out releases.  This cadence left an average of
> 12 days a month to build features.  In my experience, this cadence impeded
> efforts to build larger features or address large architectural issues.
> Therefore, for regular releases, I propose we elongate the release cycle
> from one (1) month to two (2) months with the following phases:
> >
> >    * Development: 6 weeks (42 days)
> >    * Release Preparation/Test: 1 week (7 days)
> >    * RC Voting: 1 week (7 days)
> >
> > In order to ensure the timeliness of releases and avoid indecision,
> these timeframes would be hard limits.  Therefore, the development phase
> would close at 6 weeks — no exceptions.  Finally, we would only support the
> current and previous regular release.  For example, we would only provide
> support for 4.8 and 4.9 releases until 4.10 is released when 4.8 would
> reach end of life.  This cycle would continue to use the same release
> principles(e.g. master frozen during release preparation/test and RC
> voting, 2 LGTM per PR, etc).  I believe this longer cycle would provide a
> regular, responsive release cycle and enough development time to build
> larger features.
> >
> > Per the LTS proposal [2], LTS branches would be cut from the most recent
> stable release branch as of 1 January and 1 June every year.  Upon
> creation, each LTS branch would go through a 6 week stabilization/test
> process.  Following their initial release, these branches releases receive
> applicable blocker, critical, and CVE fixes for 12 months.  Ideally, defect
> fixes that apply to both LTS and regular releases will be applied to oldest
> LTS release and forward merged.  Additional LTS maintenance releases will
> occur based on an as-needed basis — balancing release frequency and
> stability.
> >
> > Based on these two release cycles, regular and LTS, the release calendar
> for the next twelve (12) months would be as follows:
> >
> >    * LTS 4.9.0_1 (Release Date: 21 August 2016/EOL: 21 April 2018)
> >        * Stabilization/Testing: 1 July - 14 August 2016
> >        * RC Voting: 14-21 August 2016
> >    * 4.10.0 (Release Date: 28 August 2016/EOL: 18 December 2016)
> > * Development: 1 July - 14 August 2016
> > * Testing: 14-21 August 2016
> >        * RC Voting: 21-28 August 2016
> >    * 4.11.0 (Release Date: 23 October 2016/EOL: 12 February 2017)
> >        * Development: 28 August - 9 October 2016
> >        * Testing: 9-16 October 2016
> >        * RC Voting: 16-23 October 2016
> >    * 4.12.0 (Release Date: 18 December 2016/EOL: 2 April 2017)
> >        * Development: 23 October - 4 December 2016
> >        * Testing: 4-11 December 2016
> >        * RC Voting: 11-18 December 2016
> >    * 4.13.0 (Release Date: 12 February 2017/EOL: 4 June 2017)
> >        * Development: 18 December 2016 - 29 January 2017
> >        * Testing: 29 January - 5 February 2017
> > * RC Voting: 5-12 February 2017
> >    * LTS 4.12.0_1 (Release Date: 19 February 2017/EOL: 19 October 2018)
> >        * Stabilization: 1 January - 12 February 2017
> >        * RC Voting: 19 February 2017
> >    * 4.14.0 (Release Date: 2 April 2017/EOL: 30 July 2017)
> > * Development: 12 February - 26 March 2017
> >        * Testing: 26 March - 2 April 2017
> >        * RC Voting: 2-9 April 2017
> >    * 4.15.0 (Release Date: 24 April 2017/ EOL: TBD)
> > * Development: 26 March - 22 May 2017
> > * Testing: 22-29 May 2017
> >        * RC Voting: 29 May - 4 June 2017
> >    * 4.16.0 (Release Date: 30 July 2017/ EOL: TBD)
> > * Development: 4 June - 16 July 2016
> > * Testing: 16-23 July 2016
> > * RC Voting: 23-30 July 2016
> >    * LTS 4.15.0_1 (Release Date: 27 August 2017/ EOL: 27 April 2019)
> > * Development: 1 July - 13 August 2017
> > * Testing: 13-20 August 2017
> > * RC Voting: 20-27 August 2017
> >
> > A few notes/questions regarding this schedule:
> >
> >    1. The 4.10 cycle officially starts on 1 July to synchronize with the
> beginning of an LTS cycle and to ensure that there is ample time for 4.9 to
> be voted out.  Assuming 4.9 releases before 1 July, the 4.10 development
> phase would still end on 14 August 2016 to maintain a regular cadence.
> Therefore, the 4.10 development phase will likely be a 1-2 weeks longer
> than other releases.
> >    2. The calendar lined up neatly to have each phase end on a Sunday.
> This alignment affords developers a weekend to complete any outstanding.
> However, the downside is that votes may close on Sundays.  An alternative
> would be to round up/down to end phases on Fridays.  Personally, I have no
> strong feelings either way.
> >    3. Per the proposal, all minor LTS releases are performed on an
> as-needed basis.  Therefore, it is not possible to plan them in advance.
> >    4. We should schedule regular minor releases for each regular
> release.  Would delivering a minor release for each supported regular
> release make sense?
> >    5. Release numbers assume that we will not release 5.0.0 in the next
> 12 months.  If we were to release 5.0.0, I propose adjust the versions
> without changing the dates.
> >
> > Once we gain agreement on a release schedule, we will be able to update
> the community roadmap [3] based on the release calendar.  Together, this
> information will allow users to plan infrastructure upgrades up to 12
> months in advance.
> >
> > Thanks,
> > -John
> >
> > [1]:
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+principles+for+Apache+CloudStack+4.6+and+up
> > [2]: http://markmail.org/thread/zh43rc6ahs4te46l
> > [3]: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Roadmap
> >
> > john.burw...@shapeblue.com
> > www.shapeblue.com
> > 53 Chandos Place, Covent Garden, London VA WC2N 4HSUK
> > @shapeblue
> >
> >
>
>


-- 
Daan

Reply via email to