<title>scons: Release Roadmap</title>
<div class="h2 app" style="border-left: 0px" id="customcontent">
The current stable release is 0.98, released 31 March 2008.
The latest release is 0.98,
released 31 March 2008.
SCons is putting in place a new release team of interested developers.
Expect this section to be updated once
that team has hammered out a release schedule.
First official, stable release.
No 1.x release will (knowingly) break compatibility
or cause a rebuild on upgrade.
The following features have been suggested as prerequisites
for a fully-feature 1.0 release:
C/C++ dependency scanning that acts like a real C preprocessor
(computed file names, <tt>#ifdef</tt> analysis, <tt>#include_next</tt> support)
First release that will break backwards compatibility with Python 1.5.2.
<h3>Why has 1.0 still not been released?</h3>
As seems so common these days,
SCons has had an extremely lengthy "beta" period.
The primary goal has been to arrive at something by 1.0
that we feel is absolutely rock-solid-stable
and which people can download and use without fear of
broken builds or unnecessary rebuilds.
To get some idea of how we do this, see our
<a href="testing.html">testing philosophy</a> page.
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>
The major number increments when one of two things happens:
<li>The release knowingly breaks backwards compatibility in some way.
<li>The release knowingly causes a rebuild when you upgrade.
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
with complete confidence that your build will not break.
<strong>Minor release (1.1, 1.2, 1.3, etc.)</strong>
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.
<strong>Bug-fix revisions (1.1.1, 1.1.2, 1.1.3, etc.)</strong>
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
will be delivered in minor releases,
we expect that there will be few of these--at most
one per minor release.
<strong>Testing pre-release (1.1.90, 1.1.91, 1.1.92, etc.)</strong>
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>...).