292 lines
9.0 KiB
HTML
292 lines
9.0 KiB
HTML
<?xml version="1.0" encoding="iso-8859-1"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||
<title>EPICS Release Procedures Checklist</title>
|
||
</head>
|
||
|
||
<body>
|
||
<h1>EPICS Base Release Procedures Checklist</h1>
|
||
|
||
<blockquote>
|
||
<p>$Id$</p>
|
||
</blockquote>
|
||
|
||
<p>This document is a checklist of things that must be done when creating a
|
||
new release of EPICS Base. Additions and ammendments to this list are
|
||
welcome.</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
|
||
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 process, and
|
||
will be designated as either pre-release versions or Release Candidates by the
|
||
Release Manager. A Release Candidate that has received widespread testing for a
|
||
week without any additional problems being discovered or CVS commits being made
|
||
can be designated as the final release.</p>
|
||
|
||
<h3>Roles</h3>
|
||
|
||
<p>The following roles are used, in addition to the names of individuals who
|
||
have been responsible for specific tasks in the past:</p>
|
||
|
||
<dl>
|
||
<dt><strong>Release Manager</strong></dt>
|
||
<dd>Responsible for the release</dd>
|
||
<dt><strong>Platform Developers</strong></dt>
|
||
<dd>Responsible for individual operating system platforms</dd>
|
||
</dl>
|
||
|
||
<table border="1" width="100%">
|
||
<tbody>
|
||
<tr>
|
||
<th>Check</th>
|
||
<th>Who</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
<tr>
|
||
<th colspan="3">Preparing for a release</th>
|
||
</tr>
|
||
<tr>
|
||
<td> </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>
|
||
<td> </td>
|
||
<td>All developers</td>
|
||
<td>Check the Mantis bug tracker for any outstanding items and handle
|
||
appropriately. All bugs that have been fixed should have been marked
|
||
as resolved.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Release Manager</td>
|
||
<td>Set the Feature Freeze date, by which time all CVS 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>
|
||
<td> </td>
|
||
<td>Release Manager &<br />
|
||
all developers</td>
|
||
<td>Ensure that documentation will be updated before the release date:
|
||
<ul>
|
||
<li>Application Developers Guide</li>
|
||
<li>Release Notes</li>
|
||
<li>Known Problems</li>
|
||
<li>Other documents</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th colspan="3">Creating pre-release and Release Candidate versions</th>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Edit and commit changes to the EPICS version number file
|
||
configure/CONFIG_BASE_VERSION.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</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> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Export the tagged version and create a tarfile of the result:
|
||
<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>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Test the tar file by extracting its contents and building it on at
|
||
least one supported platform</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Copy the tar file to the Base download area of the website</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</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>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</td>
|
||
<td>Create or modify the webpage for the new release with links to the
|
||
release documents and tar file. Pre-release versions should use the
|
||
page and URL for the final release version number.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</td>
|
||
<td>Add the new pre-release tar file to the website Base download index
|
||
page.</td>
|
||
</tr>
|
||
<tr>
|
||
<th colspan="3">Testing</th>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Platform Developers</td>
|
||
<td>Run the Soft IOC tests from mrkSoftTest on all available
|
||
platforms.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </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
|
||
STATIC_BUILD=YES in the configure/CONFIG_SITE.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </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>
|
||
<td> </td>
|
||
<td>Marty Kraimer</td>
|
||
<td>Run the VME I/O tests in mrkHwdTest on all available vxWorks VME
|
||
platforms.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Jeff Hill</td>
|
||
<td>Run the CA client side regression tests on all available host
|
||
platforms.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Release Manager</td>
|
||
<td>Check that documentation has been updated:
|
||
<ul>
|
||
<li>Application Developers Guide</li>
|
||
<li>Release Notes</li>
|
||
<li>Known Problems (hopefully empty)</li>
|
||
<li>Other documents (converting...)</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th colspan="3">Release Approval</th>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Release Manager</td>
|
||
<td>Obtain a positive 'Ok to release' from all platform developers when a
|
||
Release Candidate version has gone a whole week without any issues being
|
||
reported.</td>
|
||
</tr>
|
||
<tr>
|
||
<th colspan="3">Creating the final release version</th>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Edit and commit changes to the EPICS version number file
|
||
configure/CONFIG_BASE_VERSION.</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</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> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Export the tagged version and create a tarfile of the result:
|
||
<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>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Test the tar file by extracting its contents and building it on at
|
||
least one supported platform</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Janet Anderson</td>
|
||
<td>Copy the tar file to the Base download area of the website</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</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>
|
||
<td> </td>
|
||
<td>Andrew Johnson</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>
|
||
<td> </td>
|
||
<td>Andrew Johnson</td>
|
||
<td>Add the new release tar file to the website Base download index
|
||
page</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</td>
|
||
<td>Link to the release webpage from other relevent areas of the
|
||
website - update front page and sidebars</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</td>
|
||
<td>Add the new Version number to the Mantis bug tracker</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</td>
|
||
<td>Close all Mantis bug reports that were marked as resolved and which
|
||
have been fixed in this release</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Release Manager</td>
|
||
<td>Email tech-talk</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td>Andrew Johnson</td>
|
||
<td>Add an entry to the website News page, linking to the new version
|
||
webpage</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</body>
|
||
</html>
|