<ul>
<li>We write a lot of automated tests to test the daylights out of <span
class="sconslogo">SCons</span>.
-Lines of test code outnumber lines of code in SCons itself
-by more than two to one.
+Lines of test code currently outnumber lines of code in SCons itself
+by more than 2.5 to one.
<li>We use the Aegis change management system to control the development and
testing process.
-<li>You can still use CVS as a read-only front end for submitting patches.
+<li>You can still use Subversion or CVS as a front end
+for submitting patches.
</ul>
</p>
<div class="link">
<div class="linkname">
-<a href="http://scons.tigris.org/source/browse/scons/">CVS repository</a></td>
+<a href="http://scons.tigris.org/source/browse/scons/">Subversion repository</a></td>
</div>
<div class="linkdesc">
-The browsable CVS repository at
+The browsable Subversion repository at
<a href="http://www.tigris.org">Tigris.org</a>.
Updated whenever a change is made to <span class="sconslogo">SCons</span>.
</div>
<div id="bodycontent">
<h2> SCons Developer's Guidelines </h2>
-<center>28 September 2004</center>
+<center>22 May 2006</center>
<ol class="upper-roman">
<li>
General
<ol class="decimal">
<li>
All SCons software (SCons itself, tests, supporting utilities) will be
-written to Python version 1.5.2.
+written to work with Python version 1.5.2.
</li>
<li>
-SCons will be tested against Python versions 1.5.2 and 2.2.x.
+SCons will be tested against Python versions 1.5.2 and some version of 2.x.
</li>
<li>
The SCons distribution will be generated
non-standard modules and/or packages.
</li>
<li>
-At a minimum, SCons will be tested on Linux and Windows 2000. We will add
+At a minimum, SCons will be tested on Linux and Windows XP. We will add
other platforms as they become available. All tests must be written
portably.
</li>
SCons infrastructure module tests are written using PyUnit.
</li>
<li>
-Tests of full SCons script functionality are written using the
+Tests of SCons packaging are written using subclasses of the
TestCmd.py module.
</li>
+<li>
+Tests of full SCons script functionality are written using subclasses
+of the TestCmd.py module.
+</li>
</ol>
</p>
</li>
long as it still does the job.
</p>
<p>
-SCons development uses two testing methodologies, one for unit tests and
-one for end-to-end functional tests:
+SCons development uses three (!) testing harnesses, one for unit tests,
+one for end-to-end functional tests, and one for test execution:
</p>
<ul>
<li>
live in the <code>test/</code> subdirectory and which use the
TestCmd.py infrastructure.
</li>
+ <li>
+ Execution of these tests will be handled by the
+ <a href="http://www.codesourcery.com/qmtest/">QMTest</a>
+ infrastructure, as wrapped by an execution script.
+ <strong>Note:</strong> The transition to using
+ QMTest is still in progress. The wrapper execution script
+ currently executes the test scripts directly.
+ </li>
</ul>
<p>
-The end-to-end tests in the <code>test/</code> subdirectory are not
-substitutes for module unit tests. If you modify a module under the
-<code>src/scons/</code> subdirectory, you *must* modify its
-<code>*Tests.py</code> script to validate your change. This can be
-(and probably should be) in addition to a <code>test/*</code>
-test of how the modification affects the end-to-end workings of SCons.
+The end-to-end tests in the <code>test/</code> subdirectory are
+not substitutes for module unit tests. If you modify a module
+under the <code>src/scons/</code> subdirectory, you generally
+<emphasis>must</emphasis>modify its <code>*Tests.py</code> script to
+validate your change. This can be (and probably should be) in addition to
+a <code>test/*</code> test of how the modification affects the end-to-end
+workings of SCons.
</p>
</li>
<p>
<ol class="decimal">
<li>
-All developers must subscribe to the dev@scons.tigris.org mailing list.
+All project developers must subscribe to the dev@scons.tigris.org
+mailing list.
</li>
<li>
-All developers are encouraged, but not required, to register at
-Tigris.org and SourceForge.
+All project developers must register at Tigris.org and be added to the
+SCons developer list, so that the number of active developers can be
+accurately represented on the SCons project page.
</li>
<li>
-Developers registered at SourceForge should be added to the SCons
-developer list, so that the number of active developers can be
-accurately represented on the SCons project page.
+We will accept patches from developers not actually registered on
+the project, so long as the patches conform to our normal requirements.
</li>
</ol>
</p>
<li>
-Using CVS for SCons development
+Using Subversion for SCons development
<p>
<ol class="decimal">
<li>