doc: Updated checklist.

Rewrote commands for Bazaar and modified tag formats.
Added steps for updating Launchpad.
This commit is contained in:
Andrew Johnson
2010-10-04 16:51:59 -05:00
parent 641aa70eb1
commit 64771c1708

View File

@ -33,7 +33,9 @@
<h1>EPICS Base Release Procedures &amp; Checklist</h1>
<blockquote>
<p>$Id$</p>
<p>$Date$<br />
$Authors$<br />
$Release-Id$</p>
</blockquote>
<p>This document describes the procedures and provides a checklist of tasks
@ -42,7 +44,7 @@ that should be performed when creating new releases of EPICS Base.</p>
<h3>The Release Process</h3>
<p>The version released on the Feature Freeze date is designated the first
pre-release, <tt>-pre1</tt>. The first Release Candidate <tt>-RC1</tt> is the
pre-release, <tt>-pre1</tt>. The first Release Candidate <tt>-rc1</tt> is the
first version that has undergone widespread testing and which has no known
problems in it that are slated to be fixed in this release. New versions should
be made at about weekly intervals during the testing and debugging period, and
@ -61,7 +63,7 @@ relevent roles unless the Release Manager designates otherwise:</p>
<dt><strong>Release Manager</strong> (Andrew Johnson)</dt>
<dd>Responsible for the release</dd>
<dt><strong>Configuration Manager</strong> (Janet Anderson)</dt>
<dd>Responsible for committing version number updates to CVS and for
<dd>Responsible for committing version number updates and for
creating tarfiles</dd>
<dt><strong>Platform Developers</strong></dt>
<dd>Responsible for individual operating system platforms</dd>
@ -77,31 +79,31 @@ relevent roles unless the Release Manager designates otherwise:</p>
<th>Check</th>
<th>Who</th>
<th>Description</th>
</tr>
</tr>
<tr>
<th colspan="3">Preparing for a release</th>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Release Manager</td>
<td>Email all developers about the upcoming release and ask for a list
of remaining jobs that must be finished.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>All developers</td>
<td>Check the Mantis bug tracker for any outstanding items and handle
<td>Check the bug tracker for any outstanding items and handle
appropriately. All bugs that have been fixed should have been marked
as resolved.</td>
</tr>
as Fix Committed.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Release Manager</td>
<td>Set the Feature Freeze date, by which time all CVS commits for
<td>Set the Feature Freeze date, by which time all Bazaar commits for
enhancements and new functionality should have been completed. After
this date, commits should only be made to fix problems that show up
during testing.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Release Manager<br />
@ -114,68 +116,99 @@ relevent roles unless the Release Manager designates otherwise:</p>
<li>Other documents</li>
</ul>
</td>
</tr>
</tr>
<tr>
<th colspan="3">Creating pre-release and Release Candidate versions</th>
</tr>
<td><EFBFBD></td>
<td>Release Manager</td>
<td>Review and update this document for the upcoming release.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Create a release milestone on Launchpad if necessary and set the
expected release date. Note that pre-release and release-candidate
versions do not appear on Launchpad, only the final release.</td>
</tr>
<tr>
<th colspan="3">Creating pre-release and release-candidate versions</th>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Edit and commit changes to the EPICS version number file
configure/CONFIG_BASE_VERSION.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Tag the module in CVS. Pre-release version tags take the form
<tt>R<i>x</i>-<i>y</i>-<i>z</i>-pre<i>n</i></tt> while Release
Candidate tags take the form
<tt>R<i>x</i>-<i>y</i>-<i>z</i>-RC<i>m</i></tt>.
</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Export the tagged version and create a tarfile of the result:
<td>Tag the module in Bazaar, using these tag conventions:
<ul>
<li>
<tt>R3.14.12-pre<i>n</i></tt>
&mdash; pre-release tag
</li>
<li>
<tt>R3.14.12-rc<i>n</i></tt>
&mdash; release candidate tag, note the <tt>rc</tt> is now
lower-case</li>
</ul>
<blockquote><tt>
cvs export -kv -d base-x.y.z-pre1 -r Rx-y-z-pre1 epics/base<br />
tar cfz baseRx.y.z-pre1.tar.gz base-x.y.z-pre1
</tt></blockquote></td>
</tr>
cd ~/base/mirror-3.14<br />
bzr tag R3.14.12-rc<i>n</i>
</tt></blockquote>
</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Export the tagged version into a tarfile. Note that this command
generates a gzipped tarfile directly from the repository:
<blockquote><tt>
cd ~/base<br />
bzr export --keywords=publish
--root=base-3.14.12-rc<i>n</i>
-r tag:R3.14.12-rc<i>n</i>
baseR3.14.12-rc<i>n</i>.tar.gz
mirror-3.14
</tt></blockquote>
This requires that the Bazaar keywords plugin is installed and
configured properly.
</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Test the tarfile by extracting its contents and building it on at
least one supported platform</td>
</tr>
least one supported platform.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Copy the tar file to the Base download area of the website</td>
</tr>
<td>Copy the tar file to the Base download area of the website.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Create or update a website subdirectory to hold the release
documentation, and copy in the files from the base/documentation
directory of the tarfile.</td>
</tr>
documentation, and copy in selected files from the base/documentation
and base/html directories of the tarfile.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Create or modify the webpage for the new release with links to the
release documents and tar file. Pre-release and RC versions should use
the page and URL for the final release version number.</td>
</tr>
release documents and tar file. Pre-release and release-candidate
versions should use the page and URL for the final release version
number.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Add the new pre-release tar file to the website Base download index
page.</td>
</tr>
<td>Add the new tar file to the website Base download index page.</td>
</tr>
<tr>
<th colspan="3">Testing</th>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Platform Developers</td>
@ -183,53 +216,54 @@ relevent roles unless the Release Manager designates otherwise:</p>
<blockquote><tt>
make -s runtests
</tt></blockquote></td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Platform Developers</td>
<td>Run the CA client side regression tests on all available host
platforms.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Platform Developers</td>
<td>Build and run the
<a href="https://svn.aps.anl.gov/trac/epics/soft-test">IOC Soft-Test</a>
<a href="https://launchpad.net/epics-base-tests">epics-base-tests</a>
suite on all available platforms.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Platform Developers</td>
<td>Check that all makeBaseApp templates build and run properly, all
xxxApp and xxxBoot types and any internal options, e.g. setting
<tt>STATIC_BUILD=YES</tt> or using a different <tt>INSTALL_LOCATION</tt>
in configure/CONFIG_SITE.</td>
</tr>
<i>xxxApp</i> and <i>xxxBoot</i> types and any internal options, e.g.
setting <tt>STATIC_BUILD=YES</tt> or using a different
<tt>INSTALL_LOCATION</tt> in configure/CONFIG_SITE.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Platform Developers</td>
<td>Build the SNL Sequencer against this version of Base, and check that
the makeBaseApp example builds and runs correctly with it.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Application Developers</td>
<td>Build external applications against this version of Base on all
available platforms and test as appropriate. Application code changes
may be necessary where the EPICS Base APIs have been modified.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Release Manager</td>
<td>Check that documentation has been updated:
<ul>
<li>Application Developers Guide</li>
<li><a href="https://launchpad.net/epics-appdev">Application
Developers Guide</a></li>
<li>Release Notes</li>
<li>Known Problems (hopefully empty)</li>
<li>Other documents (converting...)</li>
</ul>
</td>
</tr>
</ul>
</td>
</tr>
<tr>
<th colspan="3">Release Approval</th>
</tr>
@ -237,95 +271,112 @@ relevent roles unless the Release Manager designates otherwise:</p>
<td><EFBFBD></td>
<td>Release Manager</td>
<td>Obtain a positive <q>Ok to release</q> from all platform developers
when a Release Candidate version has gone a whole week without any
once a Release Candidate version has gone a whole week without any
issues being reported.</td>
</tr>
</tr>
<tr>
<th colspan="3">Creating the final release version</th>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Edit and commit changes to the EPICS version number file
configure/CONFIG_BASE_VERSION.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Tag the module in CVS. Official base release version tags take the
form <tt>R<i>x</i>-<i>y</i>-<i>z</i>[-<i>n</i>]</tt></td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Export the tagged version and create a tarfile of the result:
<td>Tag the module in Bazaar:
<blockquote><tt>
cvs export -kv -d base-x.y.z -r Rx-y-z epics/base<br />
tar cfz baseRx.y.z.tar.gz base-x.y.z
</tt></blockquote></td>
</tr>
cd ~/base/mirror-3.14<br />
bzr tag R3.14.12</i>
</tt></blockquote>
</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Export the tagged version into a tarfile. Note that this command
generates a gzipped tarfile directly from the repository:
<blockquote><tt>
cd ~/base<br />
bzr export --keywords=publish
--root=base-3.14.12
-r tag:R3.14.12
baseR3.14.12.tar.gz
mirror-3.14
</tt></blockquote>
This requires that the Bazaar keywords plugin is installed and
configured properly.
</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Test the tar file by extracting its contents and building it on at
least one supported platform</td>
</tr>
</tr>
<tr>
<th colspan="3">Publish and Announce it</th>
</tr>
<tr>
<td><EFBFBD></td>
<td>Configuration Manager</td>
<td>Copy the tar file to the Base download area of the website</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Update the website subdirectory that holds the release
documentation, and copy in the files from the base/documentation
directory of the tarfile.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Update the webpage for the new release with links to the release
documents and tar file.</td>
</tr>
<tr>
<th colspan="3">Announce it</th>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Add the new release tar file to the website Base download index
page.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Link to the release webpage from other relevent areas of the
website - update front page and sidebars.</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Add the new Version number to the Mantis bug tracker.</td>
</tr>
<td>Upload the release tar file to the Launchpad download area.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Close all Mantis bug reports that were marked as resolved and which
have been fixed in this release.</td>
</tr>
<td>Add the new Version number to the Launchpad bug tracker.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Find all Launchpad bug reports with the status Fix Committed which
have been fixed in this release and mark them Fix Released.</td>
</tr>
<tr>
<td><EFBFBD></td>
<td>Release Manager</td>
<td>Email tech-talk</td>
</tr>
</tr>
<tr>
<td><EFBFBD></td>
<td>Website Manager</td>
<td>Add an entry to the website News page, linking to the new version
webpage.</td>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</body>
</html>