summaryrefslogtreecommitdiffstats
path: root/www/roadmap.html
blob: ad29031be00d5a4d3a31010a15f22da36d9e1c64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<html>
<head>
<title>scons: Release Roadmap</title>
</head>
<body>

<div id="apphead">
<h1><small>Release Roadmap</small></h1>
</div>

<div class="h2 app" style="border-left: 0px" id="customcontent">

<h2>Current Releases</h2>

<p>
The current stable release is 0.98.2, released 21 April 2008.
</p>

<p>
The latest release is 0.98.2,
released 18 April 2008.
</p>

<h2>Upcoming Releases</h2>

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.

<table>
<tr>
<th>Release</th>
<th>Est. Date?</th>
<th>
Goals
</th>
</tr>
<tr>
<td>1.0</td>
<td>???</td>
<td>
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:
  <ul>
  <li>
  C/C++ dependency scanning that acts like a real C preprocessor
  (computed file names, <tt>#ifdef</tt> analysis, <tt>#include_next</tt> support)
  </li>
  </ul>
</td>
</tr>
<tr>
<td>2.0</td>
<td>???</td>
<td>
First release that will break backwards compatibility with Python 1.5.2.
</td>
</tr>
</table>

<!--

<h2>Upcoming Features</h2>

-->

<h2>Release Planning</h2>

<h3>Why has 1.0 still not been released?</h3>

<p>
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.
</p>

<h3>Release numbering</h3>

<p>
Our release numbers are of the form <i>major</i>.<i>minor</i>.<i>revision</i>.
</p>

<ul>
<li>
<strong>Major release (1.0, 2.0, 3.0, etc.)</strong>
<p>
The major number increments when one of two things happens:
  <ul>
  <li>The release knowingly breaks backwards compatibility in some way.
  <li>The release knowingly causes a rebuild when you upgrade.
  </ul>
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.
</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.
</p>
</li>
<li>
<strong>Bug-fix revisions (1.1.1, 1.1.2, 1.1.3, 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
will be delivered in minor releases,
we expect that there will be few of these--at most
one per minor release.
</p>
</li>
<li>
<strong>Testing pre-release (1.1.90, 1.1.91, 1.1.92, etc.)</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>...).
</p>
</li>
</ul>

</div>

</body>
</html>