summaryrefslogtreecommitdiff
path: root/ACE/docs/ACE-development-process.html
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/docs/ACE-development-process.html')
-rw-r--r--ACE/docs/ACE-development-process.html181
1 files changed, 181 insertions, 0 deletions
diff --git a/ACE/docs/ACE-development-process.html b/ACE/docs/ACE-development-process.html
new file mode 100644
index 00000000000..8a67701ed7c
--- /dev/null
+++ b/ACE/docs/ACE-development-process.html
@@ -0,0 +1,181 @@
+<!-- $Id$ -->
+
+<html>
+ <head>
+ <title>ACE+TAO Development and Release 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+TAO Development and Release Process</h3>
+
+To improve the quality of our software and minimize development
+effort, we try to follow the structured development and release
+process 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 our large 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>
+
+<hr>
+<h3>The ACE+TAO+CIAO Development Process</h3>
+
+The ACE+TAO+CIAO 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.
+ <li><a href="http://deuce.doc.wustl.edu/bugzilla/index.cgi">Create a
+bug report</a>.
+ <li>Accept the bug report if you are going to implement the change.
+ <li>Implement the change in your workspace(s).
+ <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+TAO tests on one platform.
+ Or as complicated as rebuilding and test all of ACE+TAO on
+ all platforms that we have.
+ <li>Create an appropriate ChangeLog entry.
+ <li>Commit the change using a ChangeLogTag commit message.
+ <li>Respond to the requester of the change, if any. Please do this
+ <em>after</em> committing your change.
+ <li>Make sure that the requester is listed in the THANKS file.
+ <li>Update the bug report to indicate resolution.
+ <li>Monitor the next round of build/tests for problems with your change.
+ <li>Respond immediately to reports of problems with your changes.
+</ol>
+
+<p><hr>
+<H3>Bug Lifecycles</H3>
+<P>
+
+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>
+<H3>The Role of the Build Czar</H3>
+<P>
+
+At all times, we'll have a build czar. The role may be shared by
+multiple people. The build czar is responsible for ensuring that the
+next kits are clean, <em>i.e.</em>, it builds and runs cleanly on all
+platforms. The status of all ACE+TAO builds is tracked automatically
+<A HREF="http://tao.doc.wustl.edu/scoreboard/"</A>online</A>.<p>
+
+A comprehensive summary of the build czar's role is available <A HREF="http://www.cs.wustl.edu/~bugzilla/">online</A>.
+This role is briefly summarized below:<p>
+<ul>
+ <li>Remind people to check build logs. Developers are still
+ responsible for verifying that their changes are clean.
+ <li>Fix minor problems caused by compilation errors. More complex
+ problems should be fixed by the developers who caused them. The
+ build czar should help track down the guilty parties.
+ <li>Freeze the CVS repository when it's decided to no more
+ non-critical changes will be accepted for the next kits.
+ The build czar 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"[TM]
+ to do.
+ <li>Verifies that the final round of builds/tests are clean.
+ <li>Creates the kits.
+ <li>Unfreezes the CVS repository.
+ <li>Sends email to appropriate news groups announcing the new kits.
+ <li>Passes the mantle on to the next build czar.<p>
+</ul>
+
+If another developer interferes with the build czar's duties, the
+build czar has the unilateral authority to pass the mantle to the
+violator. This is also intentional, desirable, beneficial, and the
+Right Thing[TM] to do.<p>
+
+<p><hr>
+<H3>The ACE+TAO+CIAO Release Process</H3>
+<P>
+
+Minor releases of ACE+TAO+CIAO occur periodically, typically twice a
+year. Minor releases have two-digit numbers, <EM>e.g.,</EM> 5.3.
+Major releases are released infrequently, typically once a year.
+Major releases are 1-digit numbers, <EM>e.g.,</EM>5, that include
+substantially new functionality. Both major and minor releases are
+carefully tested on all platforms the ACE+TAO run on. In particular,
+we do not put out major or minor releases of ACE+TAO+CIAO until all the
+compilations and regression tests work successful on all the platform
+we support. <P>
+
+Between major/minor releases, we release betas periodically,
+<EM>e.g.,</EM> once a month, so that ACE+TAO+CIAO users can download
+and test our latest work in progress. ACE+TAO+CIAO beta kits have
+three-digit numbers, <EM>e.g.,</EM> 5.3.1. Betas are often not as
+stable as the major or minor releases, but they often contain
+important fixes that aren't in the official releases. Although we try
+to ensure the quality of betas, they may not compile cleanly on all
+platforms, nor will they necessarily pass all of the tests on all
+platforms. They will, however, compile cleanly and pass most tests on
+most platforms. As usual, we endeavor to fix any problems that arise
+as quickly as possible. Naturally, if you require 100% predictable
+stability and support, please contact one of the companies that
+provides <A
+HREF="http://www.cs.wustl.edu/~schmidt/commercial-support.html">
+commercial support</A> for ACE+TAO.<P>
+
+The first beta following a major/minor release is called a
+<EM>bug-fix-only</EM> (BFO) beta. As the name implies this beta will
+have only fixes for the major or minor releases just made. Types of
+fixes and checkins that are allowed to go in for the BFO include, bug
+fixes in the implementation, fixes to the build systems like
+Makefiles, project files, and MPC files, adding new tests and
+examples, fixes to the documentation etc. Fixes that are definitely
+not allowed include, changes to the public interface, refactoring
+implementations, removing files from the repository, adding new files
+into the repository etc. The idea is to allow commercial support
+vendors to stabilize the major or minor release for their product
+offerings. <p>
+
+<hr><p>
+ <font size=-1>
+ Last modified
+<!--#echo var="LAST_MODIFIED" -->.<p>
+ </font><hr>
+
+Back to <A HREF="index.html">ACE Documentation Home</A>.
+
+</body>
+</html>