--- /dev/null
+#!/usr/bin/env python
+
+import sys
+import datetime
+
+months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
+ 'August', 'September', 'October', 'November', 'December']
+
+print '<table>'
+def row(*cells, **kw):
+ tr = kw.get('tr','tr')
+ print ' <tr>'
+ for cell in cells:
+ print ' <%s>%s</%s>' % (tr,cell,tr)
+ print ' </tr>'
+row('Estimated date', 'Type', 'Name', 'Comments', tr = 'th')
+
+if len(sys.argv) > 1:
+ f = open(sys.argv[1])
+else: f = open('Schedule')
+now = None
+current = 'UNKNOWN'
+for line in f:
+ if line[0] == '#': continue # comment
+ if line[0] == '=':
+ date,current = line[1:].strip().split()
+ now = datetime.date(*tuple([int(i) for i in date.split('-')]))
+ continue
+ if line[0] == '+':
+ incr,type,desc = line[1:].strip().split(None,2)
+ now = now + datetime.timedelta(int(incr))
+ else:
+ print 'dunna understand code', line[0]
+ sys.exit(1)
+ name = current + '.d' + str(now).replace('-','')
+ date = '%s %s %s' % (now.day,months[now.month-1],now.year)
+ if type == 'ck':
+ category = 'checkpoint'
+ elif type == 'rc':
+ category = 'candidate'
+ else:
+ current = name = type
+ category = 'release'
+ row(date, category, name, desc)
+print '</table>'
<h2>Upcoming Releases</h2>
<table>
-
-<tr>
-<th>Release</th>
-<th>Est. Date?</th>
-<th>
-Goals
-</th>
-</tr>
-
-<tr>
-<td>1.0.1.d200809XX</td>
-<td>23 September 2008</td>
-<td>
-Candidate checkpoint release for 1.1.0.
-</td>
-</tr>
-
-<tr>
-<td>1.1.0</td>
-<td>30 September 2008</td>
-<td>
-New features, bug fixes, documentation updates.
-Prioritization of work items and initial checkins are occuring now.
-</td>
-</tr>
-
-<tr>
-<td>1.1.0.d200810XX</td>
-<td>21 October 2008</td>
-<td>
-Candidate checkpoint release for 1.1.1.
-</td>
-</tr>
-
-<tr>
-<td>1.1.1</td>
-<td>28 October 2008</td>
-<td>
-Critical bug fixes for 1.1.0.
-</td>
-</tr>
-
-<tr>
-<td>1.1.1.d200811XX</td>
-<td>17 November 2008</td>
-<td>
-Candidate checkpoint release for 1.2.0.
-</td>
-</tr>
-
-<tr>
-<td>1.2.0</td>
-<td>24 November 2008</td>
-<td>
-New features, bug fixes, documentation updates.
-</td>
-</tr>
-
-<tr>
-<td>1.2.0.d200812</td>
-<td>15 December 2008</td>
-<td>
-Candidate checkpoint release for 1.2.1.
-</td>
-</tr>
-
-<tr>
-<td>1.2.1</td>
-<td>22 December 2008</td>
-<td>
-Critical bug fixes for 1.2.0.
-</td>
-</tr>
-
-<tr>
-<td>2.0</td>
-<td>19 January 2009 ???</td>
-<td>
-First release that will break backwards compatibility with Python 1.5.2.
-</td>
-</tr>
-
+ <tr>
+ <th>Estimated date</th>
+ <th>Type</th>
+ <th>Name</th>
+ <th>Comments</th>
+ </tr>
+ <tr>
+ <tr>13 September 2008</tr>
+ <tr>checkpoint</tr>
+ <tr>1.0.1.d20080913</tr>
+ <tr>Beta for 1.1. Prioritization of work items and checkins for 1.1 are occuring now.</tr>
+ </tr>
+ <tr>
+ <tr>27 September 2008</tr>
+ <tr>candidate</tr>
+ <tr>1.0.1.d20080927</tr>
+ <tr>Release candidate for 1.1.</tr>
+ </tr>
+ <tr>
+ <tr>4 October 2008</tr>
+ <tr>release</tr>
+ <tr>1.1</tr>
+ <tr>First minor release of 1.0.</tr>
+ </tr>
+ <tr>
+ <tr>11 October 2008</tr>
+ <tr>checkpoint</tr>
+ <tr>1.1.d20081011</tr>
+ <tr>Beta for testing new features.</tr>
+ </tr>
+ <tr>
+ <tr>25 October 2008</tr>
+ <tr>checkpoint</tr>
+ <tr>1.1.d20081025</tr>
+ <tr>Beta for testing new features.</tr>
+ </tr>
+ <tr>
+ <tr>8 November 2008</tr>
+ <tr>checkpoint</tr>
+ <tr>1.1.d20081108</tr>
+ <tr>Beta for testing new features.</tr>
+ </tr>
+ <tr>
+ <tr>15 November 2008</tr>
+ <tr>candidate</tr>
+ <tr>1.1.d20081115</tr>
+ <tr>Release candidate for 1.2.</tr>
+ </tr>
+ <tr>
+ <tr>22 November 2008</tr>
+ <tr>release</tr>
+ <tr>1.2</tr>
+ <tr>Second minor release of 1.0.</tr>
+ </tr>
+ <tr>
+ <tr>29 November 2008</tr>
+ <tr>checkpoint</tr>
+ <tr>1.2.d20081129</tr>
+ <tr>Beta for testing new features.</tr>
+ </tr>
+ <tr>
+ <tr>13 December 2008</tr>
+ <tr>checkpoint</tr>
+ <tr>1.2.d20081213</tr>
+ <tr>Beta for testing new features.</tr>
+ </tr>
+ <tr>
+ <tr>27 December 2008</tr>
+ <tr>checkpoint</tr>
+ <tr>1.2.d20081227</tr>
+ <tr>Beta for testing new features.</tr>
+ </tr>
+ <tr>
+ <tr>3 January 2009</tr>
+ <tr>candidate</tr>
+ <tr>1.2.d20090103</tr>
+ <tr>Release candidate for 1.3.</tr>
+ </tr>
+ <tr>
+ <tr>10 January 2009</tr>
+ <tr>release</tr>
+ <tr>1.3</tr>
+ <tr>Third minor release of 1.0.</tr>
+ </tr>
+ <tr>
+ <tr>17 January 2009</tr>
+ <tr>checkpoint</tr>
+ <tr>1.3.d20090117</tr>
+ <tr>Beta for testing new featurea; breaks backward compatibility with Python 1.5.2.</tr>
+ </tr>
+ <tr>
+ <tr>24 January 2009</tr>
+ <tr>checkpoint</tr>
+ <tr>1.3.d20090124</tr>
+ <tr>Beta for testing new features.</tr>
+ </tr>
+ <tr>
+ <tr>31 January 2009</tr>
+ <tr>candidate</tr>
+ <tr>1.3.d20090131</tr>
+ <tr>Release candidate for 2.0.</tr>
+ </tr>
+ <tr>
+ <tr>7 February 2009</tr>
+ <tr>candidate</tr>
+ <tr>1.3.d20090207</tr>
+ <tr>Release candidate for 2.0, if needed.</tr>
+ </tr>
+ <tr>
+ <tr>14 February 2009</tr>
+ <tr>release</tr>
+ <tr>2.0</tr>
+ <tr>Public release that breaks backward compatibility</tr>
+ </tr>
</table>
<!--
--- /dev/null
+=2008-09-13 1.0.1
++0 ck Beta for 1.1. Prioritization of work items and checkins for 1.1 are occuring now.
++14 rc Release candidate for 1.1.
++7 1.1 First minor release of 1.0.
++7 ck Beta for testing new features.
++14 ck Beta for testing new features.
++14 ck Beta for testing new features.
++7 rc Release candidate for 1.2.
++7 1.2 Second minor release of 1.0.
++7 ck Beta for testing new features.
++14 ck Beta for testing new features.
++14 ck Beta for testing new features.
++7 rc Release candidate for 1.3.
++7 1.3 Third minor release of 1.0.
++7 ck Beta for testing new featurea; breaks backward compatibility with Python 1.5.2.
++7 ck Beta for testing new features.
++7 rc Release candidate for 2.0.
++7 rc Release candidate for 2.0, if needed.
++7 2.0 Public release that breaks backward compatibility