From 2d833e1dfe21c8a7a47456bc4f4d301b7a880705 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Wed, 3 Feb 2016 14:58:21 -0500 Subject: [PATCH] skeleton version of newton schedule Add a tool to produce the schedule table, and add a table for newton's schedule based on when the summit is and the three week period we have for mitaka between the release and the newton summit. Change-Id: I4a4a16426b00c5f21a10d0ce9de221d588ee5fe5 Signed-off-by: Doug Hellmann --- doc/source/newton/index.rst | 5 +- doc/source/newton/schedule.rst | 215 +++++++++++++++++++++++++++++++++ doc/source/ocata/index.rst | 8 +- doc/source/ocata/schedule.rst | 149 +++++++++++++++++++++++ tools/list_weeks.py | 74 ++++++++++++ 5 files changed, 448 insertions(+), 3 deletions(-) create mode 100644 doc/source/newton/schedule.rst create mode 100644 doc/source/ocata/schedule.rst create mode 100755 tools/list_weeks.py diff --git a/doc/source/newton/index.rst b/doc/source/newton/index.rst index 75ccfd8615..42fe2ca6ff 100644 --- a/doc/source/newton/index.rst +++ b/doc/source/newton/index.rst @@ -4,7 +4,10 @@ Projected Release Date: -Release schedule: +.. toctree:: + :maxdepth: 1 + + schedule .. deliverable:: :series: newton diff --git a/doc/source/newton/schedule.rst b/doc/source/newton/schedule.rst new file mode 100644 index 0000000000..dc3b84f997 --- /dev/null +++ b/doc/source/newton/schedule.rst @@ -0,0 +1,215 @@ +========================= + Newton release schedule +========================= + ++-------------------+---------------------------+-----------------------------+ +| Week | Cross-project events | Project-specific events | ++============+======+===========================+=============================+ +| Apr 04-08 | | :ref:`m-release` | | ++------------+------+---------------------------+-----------------------------+ +| Apr 11-15 | R-26 | | | ++------------+------+---------------------------+-----------------------------+ +| Apr 18-22 | R-25 | | | ++------------+------+---------------------------+-----------------------------+ +| Apr 25-29 | R-24 | :ref:`n-design-summit` | | ++------------+------+---------------------------+-----------------------------+ +| May 02-06 | R-23 | | | ++------------+------+---------------------------+-----------------------------+ +| May 09-13 | R-22 | | | ++------------+------+---------------------------+-----------------------------+ +| May 16-20 | R-21 | | | ++------------+------+---------------------------+-----------------------------+ +| May 23-27 | R-20 | | | ++------------+------+---------------------------+-----------------------------+ +| May 30-03 | R-19 | | | ++------------+------+---------------------------+-----------------------------+ +| Jun 06-10 | R-18 | | | ++------------+------+---------------------------+-----------------------------+ +| Jun 13-17 | R-17 | | | ++------------+------+---------------------------+-----------------------------+ +| Jun 20-24 | R-16 | | | ++------------+------+---------------------------+-----------------------------+ +| Jun 27-01 | R-15 | | | ++------------+------+---------------------------+-----------------------------+ +| Jul 04-08 | R-14 | | | ++------------+------+---------------------------+-----------------------------+ +| Jul 11-15 | R-13 | | | ++------------+------+---------------------------+-----------------------------+ +| Jul 18-22 | R-12 | | | ++------------+------+---------------------------+-----------------------------+ +| Jul 25-29 | R-11 | | | ++------------+------+---------------------------+-----------------------------+ +| Aug 01-05 | R-10 | | | ++------------+------+---------------------------+-----------------------------+ +| Aug 08-12 | R-9 | | | ++------------+------+---------------------------+-----------------------------+ +| Aug 15-19 | R-8 | | | ++------------+------+---------------------------+-----------------------------+ +| Aug 22-26 | R-7 | | | ++------------+------+---------------------------+-----------------------------+ +| Aug 29-02 | R-6 | | | ++------------+------+---------------------------+-----------------------------+ +| Sep 05-09 | R-5 | | | ++------------+------+---------------------------+-----------------------------+ +| Sep 12-16 | R-4 | | | ++------------+------+---------------------------+-----------------------------+ +| Sep 19-23 | R-3 | | | ++------------+------+---------------------------+-----------------------------+ +| Sep 26-30 | R-2 | | | ++------------+------+---------------------------+-----------------------------+ +| Oct 03-07 | R-1 | | | ++------------+------+---------------------------+-----------------------------+ +| Oct 10-14 | R+0 | :ref:`n-release` | | ++------------+------+---------------------------+-----------------------------+ +| Oct 10-14 | R+1 | | | ++------------+------+---------------------------+-----------------------------+ +| Oct 17-21 | R+2 | | | ++------------+------+---------------------------+-----------------------------+ +| Oct 24-28 | R+3 | :ref:`o-design-summit` | | ++------------+------+---------------------------+-----------------------------+ + +Cross-project events +==================== + +.. _n-design-summit: + +Newton Design Summit +-------------------- + +`Planning in Austin `__ + + +.. _n-1: + +newton-1 milestone +------------------ + +XXX is the newton-1 milestone window for projects following the +`release:cycle-with-milestones`_ model. + +.. _release:cycle-with-milestones: http://governance.openstack.org/reference/tags/release_cycle-with-milestones.html + +.. _n-2: + +newton-2 milestone +------------------ + +XXX is the newton-2 milestone window for projects following the +`release:cycle-with-milestones`_ model. + +.. _n-final-lib: + +Final release for non-client libraries +-------------------------------------- + +Libraries that are not client libraries (Oslo and others) should issue their +final release during this week. That allows to give time for last-minute +changes before feature freeze. + +.. _n-3: + +newton-3 milestone +------------------ + +XXX is the newton-3 milestone window for projects following the +`release:cycle-with-milestones`_ model. + +.. _n-ff: + +Feature freeze +-------------- + +The newton-3 milestone marks feature freeze for projects following the +`release:cycle-with-milestones`_ model. No featureful patch should be landed +after this point. Exceptions may be granted by the project PTL. + +.. _n-final-clientlib: + +Final release for client libraries +---------------------------------- + +Client libraries should issue their final release during this week, to match +feature freeze. + +.. _n-soft-sf: + +Soft StringFreeze +----------------- + +You are no longer allowed to accept proposed changes containing modifications +in user-facing strings. Such changes should be rejected by the review team +and postponed until the next series development opens (which should happen +when RC1 is published). + +.. _n-rc1: + +RC1 target week +--------------- + +The week of XXX is the target date for projects following the +`release:cycle-with-milestones`_ model to issue their first release candidate. + +.. _n-hard-sf: + +Hard StringFreeze +----------------- + +This happens when the RC1 for the project is tagged. At this point, ideally +no strings are changed (or added, or removed), to give translator time to +finish up their efforts. + +.. _n-finalrc: + +Final RCs and intermediary releases +----------------------------------- + +The week of XXX is the last week to issue release candidates +or intermediary releases before release week. On release week only +final-release-critical releases will be accepted (at the discretion of the +release team). + +.. _n-release: + +Newton release +-------------- + +The Newton coordinated release will happen on XXX. + + +Project-specific events +======================= + +Elections +--------- + +.. _o-ptl-nomination: + +Ocata cycle PTLs self-nomination +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Project team lead candidates for the Ocata cycle should announce their +candidacy during this week. + +.. _o-ptl-election: + +Ocata cycle PTLs election +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Election week for Project team leads (where an election must be held to +determine the winner). + +.. _o-tc-nomination: + +TC member self-nomination +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Candidates for the partial Technical Committee member renewal should announce +their candidacy during this week. + +.. _o-tc-election: + +TC member election +^^^^^^^^^^^^^^^^^^ + +Election for partially renewing Technical Committee members will happen +during this week. diff --git a/doc/source/ocata/index.rst b/doc/source/ocata/index.rst index ff6e699978..8f8d7a8970 100644 --- a/doc/source/ocata/index.rst +++ b/doc/source/ocata/index.rst @@ -2,9 +2,13 @@ Ocata ======== -Projected Release Date: +Projected Release Date: TBD + +.. toctree:: + :maxdepth: 1 + + schedule -Release schedule: .. deliverable:: :series: ocata diff --git a/doc/source/ocata/schedule.rst b/doc/source/ocata/schedule.rst new file mode 100644 index 0000000000..05878f0de0 --- /dev/null +++ b/doc/source/ocata/schedule.rst @@ -0,0 +1,149 @@ +======================== + Ocata release schedule +======================== + +Cross-project events +==================== + +.. _o-design-summit: + +Ocata Design Summit +-------------------- + +`Planning in Barcelona `__ + + +.. _o-1: + +ocata-1 milestone +------------------ + +XXX is the ocata-1 milestone window for projects following the +`release:cycle-with-milestones`_ model. + +.. _release:cycle-with-milestones: http://governance.openstack.org/reference/tags/release_cycle-with-milestones.html + +.. _o-2: + +ocata-2 milestone +------------------ + +XXX is the ocata-2 milestone window for projects following the +`release:cycle-with-milestones`_ model. + +.. _o-final-lib: + +Final release for non-client libraries +-------------------------------------- + +Libraries that are not client libraries (Oslo and others) should issue their +final release during this week. That allows to give time for last-minute +changes before feature freeze. + +.. _o-3: + +ocata-3 milestone +------------------ + +XXX is the ocata-3 milestone window for projects following the +`release:cycle-with-milestones`_ model. + +.. _o-ff: + +Feature freeze +-------------- + +The ocata-3 milestone marks feature freeze for projects following the +`release:cycle-with-milestones`_ model. No featureful patch should be landed +after this point. Exceptions may be granted by the project PTL. + +.. _o-final-clientlib: + +Final release for client libraries +---------------------------------- + +Client libraries should issue their final release during this week, to match +feature freeze. + +.. _o-soft-sf: + +Soft StringFreeze +----------------- + +You are no longer allowed to accept proposed changes containing modifications +in user-facing strings. Such changes should be rejected by the review team +and postponed until the next series development opens (which should happen +when RC1 is published). + +.. _o-rc1: + +RC1 target week +--------------- + +The week of XXX is the target date for projects following the +`release:cycle-with-milestones`_ model to issue their first release candidate. + +.. _o-hard-sf: + +Hard StringFreeze +----------------- + +This happens when the RC1 for the project is tagged. At this point, ideally +no strings are changed (or added, or removed), to give translator time to +finish up their efforts. + +.. _o-finalrc: + +Final RCs and intermediary releases +----------------------------------- + +The week of XXX is the last week to issue release candidates +or intermediary releases before release week. On release week only +final-release-critical releases will be accepted (at the discretion of the +release team). + +.. _o-release: + +Ocata release +-------------- + +The Ocata coordinated release will happen on XXX. + + +Project-specific events +======================= + +Elections +--------- + +.. _p-ptl-nomination: + +P cycle PTLs self-nomination +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Project team lead candidates for the Ocata cycle should announce their +candidacy during this week. + +.. _p-ptl-election: + +Ocata cycle PTLs election +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Election week for Project team leads (where an election must be held to +determine the winner). + +.. _p-tc-nomination: + +TC member self-nomination +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Candidates for the partial Technical Committee member renewal should announce +their candidacy during this week. + +.. _p-tc-election: + +TC member election +^^^^^^^^^^^^^^^^^^ + +Election for partially renewing Technical Committee members will happen +during this week. diff --git a/tools/list_weeks.py b/tools/list_weeks.py new file mode 100755 index 0000000000..c78192a9f6 --- /dev/null +++ b/tools/list_weeks.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python + +from __future__ import print_function + +import argparse +import datetime + + +parser = argparse.ArgumentParser() +parser.add_argument( + 'previous_release', + help='date of previous release, YYYY-MM-DD', +) +parser.add_argument( + 'next_release', + help='date of upcoming release, YYYY-MM-DD', +) +parser.add_argument( + 'summit', + help='date of upcoming summit after the release, YYYY-MM-DD', +) +args = parser.parse_args() + + +previous_release_date = datetime.datetime.strptime( + args.previous_release, '%Y-%m-%d') +next_release_date = datetime.datetime.strptime( + args.next_release, '%Y-%m-%d') +summit_date = datetime.datetime.strptime( + args.summit, '%Y-%m-%d') + +week = datetime.timedelta(weeks=1) +work_week = datetime.timedelta(days=4) + +# Build the list of Mondays leading up to the release. +weeks = [] +current = previous_release_date +while current < next_release_date: + current += week + weeks.append(current) + +n_weeks = len(weeks) + +# Add the list of Mondays following the release leading up to the +# summit. +while current <= summit_date: + weeks.append(current) + current += week + +print(''' ++-------------------+---------------------------+-----------------------------+ +| Week | Cross-project events | Project-specific events | ++============+======+===========================+=============================+ +''', end='') + +week_fmt = ''' +| {:<10} | {:<4} |{:<27}|{:<29}| ++------------+------+---------------------------+-----------------------------+ +'''.strip() + + +def show_week(week, name): + date_range = '{:%b %d}-{:%d}'.format( + week, + week + work_week, + ) + print(week_fmt.format(date_range, name, '', '')) + + +# Print the date for the previous release +show_week(previous_release_date, '') + +for n, week in enumerate(weeks, 1): + show_week(week, 'R{:<+3d}'.format(n - n_weeks))