support schedule data in parsable format

This change converts the Ocata schedule to a YAML file and introduces
the templates needed to render it to a table in the restructuredtext
file so it can be published to HTML again. This is a prerequisite for
also generating an ICS file for the schedule.

Change-Id: I905b47b5b98b6d442c197e0291c44746aaf52bbb
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2017-01-04 10:02:41 -05:00
parent 5b8eec5a48
commit d04e017155
5 changed files with 190 additions and 84 deletions

View File

@ -0,0 +1,34 @@
.. -*- mode: rst -*-
.. This template renders a schedule table using the list-table
directive. Named weeks ("R-x") include their names. Weeks before
the official start of the cycle are normally not named, but may be
included for reference (for example, to indicate where the cycle
begins relative to a summit or PTG).
.. list-table::
:header-rows: 1
:widths: 15 5 30 30
- * Week
*
* Cross-project events
* Project-specific events
{%- for c in data['cycle'] %}
- * {{format_date(c['start'])}} - {{format_date(c['end'])}}
* {{c['name']}}
{%- if not c['x-project'] %}
*
{%- else -%}
{%- for e in c['x-project'] %}
{% if loop.first %}*{% else %} {% endif %} | :ref:`{{e}}`
{%- endfor -%}
{%- endif -%}
{%- if not c['project-specific'] %}
*
{%- else -%}
{%- for e in c['project-specific'] %}
{% if loop.first %}*{% else %} {% endif %} | :ref:`{{e}}`
{%- endfor -%}
{%- endif -%}
{%- endfor -%}

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
import datetime
import os
import sys
@ -7,7 +8,10 @@ import sys
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['openstack_releases.sphinxext']
extensions = [
'openstack_releases.sphinxext',
'sphinxcontrib.datatemplates',
]
config_generator_config_file = 'config-generator.conf'
@ -61,3 +65,19 @@ latex_documents = [
'%s Documentation' % project,
'OpenStack Foundation', 'manual'),
]
def format_date(s, fmt='%b %d'):
# This function is used in schedule_table.tmpl
d = datetime.datetime.strptime(s, '%Y-%m-%d')
return d.strftime(fmt)
def builder_inited(app):
# Make format_date visible in the template context.
app.builder.templates.environment.globals['format_date'] = format_date
def setup(app):
app.info('initializing from conf.py')
app.connect('builder-inited', builder_inited)

View File

@ -4,89 +4,9 @@
31 October 2016 - 24 February 2017 (16 weeks)
+-------------------+---------------------------+-----------------------------+
| Week | Cross-project events | Project-specific events |
+============+======+===========================+=============================+
| Oct 03-07 | | :ref:`n-release` | |
| | +---------------------------+-----------------------------+
| | | :ref:`o-goals-research` | |
+------------+------+---------------------------+-----------------------------+
| Oct 10-14 | | | |
+------------+------+---------------------------+-----------------------------+
| Oct 17-21 | | | |
+------------+------+---------------------------+-----------------------------+
| Oct 24-28 | | :ref:`o-design-summit` | |
+------------+------+---------------------------+-----------------------------+
| Oct 31-04 | R-16 | | |
+------------+------+---------------------------+-----------------------------+
| Nov 07-11 | R-15 | | :ref:`o-glance-spec-prop` |
+------------+------+---------------------------+-----------------------------+
| Nov 14-18 | R-14 | :ref:`o-1` | :ref:`o-nova-spec-freeze` |
| | +---------------------------+-----------------------------+
| | | :ref:`o-goals-ack` | :ref:`o-manila-spec-frz1` |
| | +---------------------------+-----------------------------+
| | | | :ref:`o-key-spec-prop` |
+------------+------+---------------------------+-----------------------------+
| Nov 21-25 | R-13 | | :ref:`o-glance-spec-freeze` |
| | | +-----------------------------+
| | | | :ref:`o-trove-spec-prop` |
+------------+------+---------------------------+-----------------------------+
| Nov 28-02 | R-12 | | |
+------------+------+---------------------------+-----------------------------+
| Dec 05-09 | R-11 | | |
+------------+------+---------------------------+-----------------------------+
| Dec 12-16 | R-10 | :ref:`o-2` | :ref:`o-trove-spec-freeze` |
| | +---------------------------+-----------------------------+
| | | :ref:`o-mf` | :ref:`o-cinder-nddeadline` |
| | +---------------------------+-----------------------------+
| | | | :ref:`o-cinder-spec-freeze` |
| | | +-----------------------------+
| | | | :ref:`o-key-spec-freeze` |
| | | +-----------------------------+
| | | | :ref:`o-manila-spec-frz2` |
+------------+------+---------------------------+-----------------------------+
| Dec 19-23 | R-9 | | :ref:`o-manila-drv-freeze` |
+------------+------+---------------------------+-----------------------------+
| Dec 26-30 | R-8 | | :ref:`o-key-feature-prop` |
+------------+------+---------------------------+-----------------------------+
| Jan 02-06 | R-7 | :ref:`o-extra-atcs` | |
+------------+------+---------------------------+-----------------------------+
| Jan 09-13 | R-6 | | |
+------------+------+---------------------------+-----------------------------+
| Jan 16-20 | R-5 | :ref:`o-final-lib` | :ref:`o-trove-client-soft` |
| | +---------------------------+-----------------------------+
| | | | :ref:`o-trove-guest-req` |
| | | +-----------------------------+
| | | | :ref:`o-horizon-ff` |
+------------+------+---------------------------+-----------------------------+
| Jan 23-27 | R-4 | :ref:`o-3` | :ref:`o-key-feature-freeze` |
| | +---------------------------+-----------------------------+
| | | :ref:`o-ff` | :ref:`p-ptl-nomination` |
| | +---------------------------+-----------------------------+
| | | :ref:`o-final-clientlib` | |
| | +---------------------------+-----------------------------+
| | | :ref:`o-soft-sf` | |
| | +---------------------------+-----------------------------+
| | | :ref:`o-rf` | |
| | +---------------------------+-----------------------------+
| | | :ref:`o-goals-complete` | |
+------------+------+---------------------------+-----------------------------+
| Jan 30-03 | R-3 | :ref:`o-rc1` | :ref:`p-ptl-election` |
| | +---------------------------+-----------------------------+
| | | :ref:`o-hard-sf` | |
+------------+------+---------------------------+-----------------------------+
| Feb 06-10 | R-2 | | |
+------------+------+---------------------------+-----------------------------+
| Feb 13-17 | R-1 | :ref:`o-finalrc` | |
+------------+------+---------------------------+-----------------------------+
| Feb 20-24 | R+0 | :ref:`p-ptg0` | |
| | +---------------------------+-----------------------------+
| | | :ref:`o-release` | |
+------------+------+---------------------------+-----------------------------+
| Feb 27-03 | R+1 | | |
+------------+------+---------------------------+-----------------------------+
| Mar 06-10 | R+2 | :ref:`o-trailing` | |
+------------+------+---------------------------+-----------------------------+
.. datatemplate::
:source: schedule.yaml
:template: schedule_table.tmpl
.. note::

View File

@ -0,0 +1,131 @@
---
start-week: 2016-11-07
release-week: 2017-02-20
cycle:
- end: '2016-11-04'
start: '2016-10-31'
x-project:
- n-release
- o-goals-research
- start: '2016-10-10'
end: '2016-10-14'
- start: '2016-10-17'
end: '2016-10-21'
- start: '2016-10-24'
end: '2016-10-28'
x-project:
- o-design-summit
- start: '2016-10-31'
end: '2016-11-04'
x-project:
- n-release
- end: '2016-11-11'
start: '2016-11-07'
name: R-15
project-specific:
- o-glance-spec-prop
- end: '2016-11-18'
start: '2016-11-14'
name: R-14
x-project:
- o-1
- o-goals-ack
project-specific:
- o-nova-spec-freeze
- o-manila-spec-frz1
- o-key-spec-prop
- end: '2016-11-25'
start: '2016-11-21'
name: R-13
project-specific:
- o-glance-spec-freeze
- o-trove-spec-prop
- end: '2016-12-02'
start: '2016-11-28'
name: R-12
- end: '2016-12-09'
start: '2016-12-05'
name: R-11
x-project:
- o-2
- o-mf
project-specific:
- o-trove-spec-freeze
- o-cinder-nddeadline
- o-cinder-spec-freeze
- o-key-spec-freeze
- o-manila-spec-frz2
- end: '2016-12-16'
start: '2016-12-12'
name: R-10
- end: '2016-12-23'
start: '2016-12-19'
name: R-9
project-specific:
- o-manila-drv-freeze
- end: '2016-12-30'
start: '2016-12-26'
name: R-8
project-specific:
- o-key-feature-prop
- end: '2017-01-06'
start: '2017-01-02'
name: R-7
x-project:
- o-extra-atcs
- end: '2017-01-13'
start: '2017-01-09'
name: R-6
- end: '2017-01-20'
start: '2017-01-16'
name: R-5
x-project:
- o-final-lib
project-specific:
- o-trove-client-soft
- o-trove-guest-req
- o-horizon-ff
- end: '2017-01-27'
start: '2017-01-23'
name: R-4
x-project:
- o-3
- o-ff
- o-final-clientlib
- o-soft-sf
- o-rf
- o-goals-complete
project-specific:
- o-key-feature-freeze
- p-ptl-nomination
- end: '2017-02-03'
start: '2017-01-30'
name: R-3
x-project:
- o-rc1
- o-hard-sf
project-specific:
- p-ptl-election
- end: '2017-02-10'
start: '2017-02-06'
name: R-2
- end: '2017-02-17'
start: '2017-02-13'
name: R-1
x-project:
- o-finalrc
- end: '2017-02-24'
start: '2017-02-20'
name: R+0
x-project:
- o-release
- p-ptg0
- end: '2017-03-03'
start: '2017-02-27'
name: R+1
- end: '2017-03-10'
start: '2017-03-06'
name: R+2
x-project:
- o-trailing

View File

@ -37,6 +37,7 @@ console_scripts =
sphinxext =
sphinx<1.4
oslosphinx
sphinxcontrib.datatemplates
[build_sphinx]
source-dir = doc/source