summaryrefslogtreecommitdiff
path: root/docs/ACE-development-process.html
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-12 17:15:47 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-12 17:15:47 +0000
commit2e24add3cfd252b67d82b78b0de02f9d525b9f08 (patch)
tree8bfc5334b14267e002f74d85f08fd411aee44a2e /docs/ACE-development-process.html
parent05c026cdbd99ce11b922e9ee43d3cc01aecdc5d0 (diff)
downloadATCD-2e24add3cfd252b67d82b78b0de02f9d525b9f08.tar.gz
ChangeLogTag: Mon Jul 12 12:14:45 1999 David L. Levine <levine@cs.wustl.edu>
Diffstat (limited to 'docs/ACE-development-process.html')
-rw-r--r--docs/ACE-development-process.html124
1 files changed, 124 insertions, 0 deletions
diff --git a/docs/ACE-development-process.html b/docs/ACE-development-process.html
new file mode 100644
index 00000000000..e6b0fc52503
--- /dev/null
+++ b/docs/ACE-development-process.html
@@ -0,0 +1,124 @@
+<!-- $Id$ -->
+
+<html>
+ <head>
+ <title>ACE Development Process</title>
+ <link rev=made href="mailto:levine@cs.wustl.edu">
+ </head>
+
+<body text = "#000000"
+link="#000fff"
+vlink="#ff0f0f"
+bgcolor="#ffffff">
+
+<hr>
+<h3>The ACE Development Process</h3>
+
+<hr><p>
+ <font size=-1>
+ Last modified <!--#echo var="LAST_MODIFIED" -->.<p>
+ </font>
+
+In order to improve the quality of our software and minimize
+development effort, we'll try to follow a more structured development
+process. It is described below.<p>
+
+An important concept to keep in mind is <em>risk</em>. Before you
+commit <em>any</em> change to ACE+TAO, please consider the effects
+that it will have. Could it possibly cause a build failure, on any
+platform? Could it possibly cause different run-time behavior? And
+so on. If so, it is your responsibility to adequately build and test
+with the change, in order to verify that it has no unintended
+effects.<p>
+
+Please keep in mind the cost of committing a mistake. It may take you
+only a few seconds to fix, but its cost to the group may be much
+larger. With this large a group, workspace updates and builds are
+likely to happen at any time. If one break, it can take hours to
+rebuild it. And each developer that was waiting for a successful
+build would be blocked for the duration of the broken build, the fix,
+and the rebuild.<p>
+
+A good development process looks like:<p>
+<ol>
+ <li>Every change to ACE+TAO must have a bug report. <em>Change</em>
+ includes fixes, enhancements, updates, and so on.<p>
+ <!-- The link to bugzilla is intentionally local. -->
+ <li><a href="http://ace/bugzilla">Create a bug report</a>.<p>
+ <li>Accept the bug report if you are going to implement the change.<p>
+ <li>Implement the change in your workspace(s).<p>
+ <li>Test the change sufficiently to demonstrate that it both does
+ what is intended, and doesn't break anything. The test may be
+ as simple as building and running the ACE tests on one plaform.
+ Or as complicated as rebuilding and test all of ACE and TAO on
+ all platforms that we have.<p>
+ <li>Create an appropriate ChangeLog entry.<p>
+ <li>Commit the change using a ChangeLogTag commit message.<p>
+ <li>Respond to the requestor of the change, if any. Please do this
+ <em>after</em> committing your change.<p>
+ <li>Make sure that the requestor is listed in the THANKS file.<p>
+ <li>Update the bug report to indicate resolution.<p>
+ <li>Monitor the next round of build/tests for problems with your change.<p>
+ <li>Respond immediately to reports of problems with your changes.<p>
+</ol>
+
+<p><hr>
+
+A bug should typically follow this life cycle:<p>
+<center><table cellpadding=5 border=0>
+<tr>
+ <td>Submitter:</td>
+ <td>Enters problem</td>
+<tr>
+ <td>Bugmaster:</td>
+ <td>Assigns</td>
+<tr>
+ <td>Owner:</td>
+ <td>Accepts</td>
+<tr>
+ <td>Owner:</td>
+ <td>Reproduces problem - if it needs a new test, write it and
+ put it in the regression tests.
+ If it can't be reproduced, set to Resolved/CANT_FIND.<br>
+ If it's a duplicate, set it to Resolved/DUPLICATE.
+ Fix code, commit changes, set to Resolved.</td>
+<tr>
+ <td>Submitter:</td>
+ <td>Tests it again; set to Verified (pass) or Reopened (fail)</td>
+<tr>
+ <td>Owner:</td>
+ <td>After next release is done, re-test; sets to Closed or Reopened.</td>
+</table></center>
+
+
+<p><hr>
+
+At all times, we'll have a build master. (The role may be shared by
+multiple people.) The build master is responsible for ensuring that
+the next kits are clean, <em>i.e.</em>, it builds and runs cleanly on
+all platforms.<p>
+
+The build master:<p>
+<ul>
+ <li>Reminds people to check build logs. Developers are still
+ responsible for verifying that their changes are clean.<p>
+ <li>Freezes the CVS repository when it's decided to no more
+ non-critical changes will be accepted for the next kits.
+ The build master has the final say over when the freeze is
+ implemented. The tendency to implement a freeze sooner than
+ later is intentional, desirable, beneficial, and the right thing
+ to do.<p>
+ <li>Verifies that the final round of builds/tests are clean.<p>
+ <li>Creates the kits.<p>
+ <li>Unfreezes the CVS repository.<p>
+ <li>Sends email to appropriate news groups announcing the new kits.<p>
+ <li>Passes the mantle on to the next build master.<p>
+</ul>
+
+If another developer interferes with the build master's duties,
+the build master has the unilateral authority to pass the mantle
+to the violater. This is intentional, desirable, beneficial, and
+the right thing to do.<p>
+
+</body>
+</html>