Remove the recently-removed _scons_sets15.py from MANIFEST.in.
[scons.git] / www / roadmap.html
index 9b54f4ec7ea8c49e4392f6eb0f0a1b5f7ffc04e2..17995acf67649597a3cbff9332698621f35d0ec9 100644 (file)
 <h2>Current Releases</h2>
 
 <p>
-The current stable release is 1.0.0, released 12 August 2008.
+The current stable release is 1.3.0, released 23 March 2010.
 </p>
 
 <p>
-The latest release is 1.0.0, released 12 August 2008.
+The latest release is 1.3.0, released 23 March 2010.
 </p>
 
 <h2>Upcoming Releases</h2>
 
-<table>
-
-<tr>
-<th>Release</th>
-<th>Est. Date?</th>
-<th>
-Goals
-</th>
-</tr>
-
-<tr>
-<td>1.0</td>
-<td>12 August 2008</td>
-<td>
-First official, stable release.
-No 1.x release will (knowingly) break compatibility
-or cause a rebuild on upgrade.
-</td>
-</tr>
-
-<tr>
-<td>1.0.1</td>
-<td>2 September 2008</td>
-<td>
-Bug fixes,
-especially lower-priority regressions
-identified during the 1.0.0 candidate period.
-Performance improvements.
-</td>
-</tr>
-
-<tr>
-<td>1.1</td>
-<td>???</td>
-<td>
-Features accumulated during the 1.0.0 candidate period.
-</td>
-</tr>
-
-<tr>
-<td>2.0</td>
-<td>???</td>
-<td>
-First release that will break backwards compatibility with Python 1.5.2.
-</td>
-</tr>
+<p>
+Our goal is to meet the dates
+for release candidates and the releases themselves;
+the beta checkpoint dates are our best guess as this was published,
+but they may be adjusted without notice.
+</p>
+
+<!--
+
+DO NOT EDIT THE FOLLOWING TABLE DIRECTLY.
+
+Edit the "schedule" file and replace it with the output from
+running "gen_sched_table.py".
+
+-->
 
+<table width="100%">
+  <tr>
+    <th>Estimated&nbsp;date</th>
+    <th>Type</th>
+    <th>Comments</th>
+  </tr>
+  <tr>
+    <td>April 2009</td>
+    <td>Ckpt</td>
+    <td>Beta for 2.0; breaks backward compatibility</td>
+  </tr>
+  <tr>
+    <td>May 2009</td>
+    <td>RC</td>
+    <td>Release candidate for 2.0.</td>
+  </tr>
+  <tr>
+    <td>May 2009</td>
+    <td>2.0</td>
+    <td>Public release that breaks backward compatibility and drops deprecated features</td>
+  </tr>
+  <tr>
+    <td>June 2009</td>
+    <td>Ckpt</td>
+    <td>Beta for testing new features.</td>
+  </tr>
+  <tr>
+    <td>July 2009</td>
+    <td>Ckpt</td>
+    <td>Beta for testing new features.</td>
+  </tr>
+  <tr>
+    <td>Aug 2009</td>
+    <td>RC</td>
+    <td>Release candidate for 2.1.</td>
+  </tr>
+  <tr>
+    <td>Sept 2009</td>
+    <td>2.1</td>
+    <td>First minor release of v2</td>
+  </tr>
 </table>
 
 <!--
@@ -90,53 +100,68 @@ Our release numbers are of the form <i>major</i>.<i>minor</i>.<i>revision</i>.
 <strong>Major release (1.0, 2.0, 3.0, etc.)</strong>
 <p>
 The major number increments when one of two things happens:
+</p>
   <ul>
   <li>The release knowingly breaks backwards compatibility in some way.
   <li>The release knowingly causes a rebuild when you upgrade.
   </ul>
+<p>
 Our goal is that as a user of SCons,
 you should always be able to upgrade to a later
-revision of the same major number
+release of the same major version
 with complete confidence that your build will not break.
+We expect that our major releases will be long-lived platforms
+with many minor releases to add functionality and fix bugs.
 </p>
 </li>
 <li>
 <strong>Minor release (1.1, 1.2, 1.3, etc.)</strong>
 <p>
-Minor numbers increment for release that
-adds new functionality and/or bug fixes
-to an existing major release branch.
-All new functionality will be added so as to never
-knowingly break backwards compatibility with any
-previous minor releases from the same branch.
-We expect that our major release branches will be long-lived
-platforms for delivering many minor releases to
-add functionality and fix bugs.
+Minor numbers increment for releases
+that add new functionality and/or bug fixes
+to an existing major release.
+Any new functionality will never knowingly break backwards compatibility
+with any previous minor releases from the same major release.
 </p>
 </li>
 <li>
-<strong>Bug-fix revisions (1.1.1, 1.1.2, 1.1.3, etc.)</strong>
+<strong>Bug-fix revisions (1.0.1, 1.1.1, 1.2.1, etc.)</strong>
 <p>
 Revision numbers are appended and/or incremented
 whenever a critical bug fix is necessary
 for a major or minor release.
-Bedause most new functionality and bug fixes
+Because most new functionality and bug fixes
 will be delivered in minor releases,
-we expect that there will be few of these--at most
+we expect that there will be few of these&mdash;at most
 one per minor release.
 </p>
 </li>
 <li>
-<strong>Testing pre-release (1.1.90, 1.1.91, 1.1.92, etc.)</strong>
+<strong>Release candidates (x.y.z.dyyyymmdd)</strong>
+<p>
+A release candidates is a special form of checkpoint
+(see below)
+that is expected to be the next major or minor release.
+If blocking issues show up in the candidate,
+another candidate will normally be issued
+(potentially delaying the release date),
+otherwise the candidate will be repackaged as the major or minor release.
+</p>
+</li>
+<li>
+<strong>Checkpoints (x.y.z.dyyyymmdd)</strong>
 <p>
-A revision number of 90 or greater
-indicates the release is intended for
-testing a set of new features intended for
-wider distribution in the next major or minor release.
-There may be many of these
-leading up to a release
-with a lot of significant internal changes
-(<i>*cough*</i> 0.97 <i>*cough*</i>...).
+A checkpoint has a 'd<i>yyymmdd</i>' suffix
+and is made every couple of weeks between major or minor releases.
+It is intended for beta testing new features
+and for ensuring that bug fixes work as intended.
+Although existing features from the previous release will not change,
+compatibility of features under test is not guaranteed between checkpoints
+(<i>i.e.</i>, the implementation of the feature may change).
+Checkpoints are intended not only to allow for wider testing,
+but also to make new features available to users
+(who may urgently need one of them)
+in advance of them being published in the next major or minor release.
 </p>
 </li>
 </ul>