Started updating Release Checklist for EPICS 7

Incomplete, needs instructions on updating and tagging submodules,
maybe other things too.
This uses version number 7.1.1 instead of 7.0.1, which was deliberate.
This commit is contained in:
Andrew Johnson
2017-12-11 00:33:56 -06:00
parent fc52dfb2d7
commit 5e0b80f462

View File

@ -39,14 +39,15 @@ that should be performed when creating production releases of EPICS Base.</p>
<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 period, and
will be designated as either pre-release or release candidate versions by the
Release Manager. After a release candidate has been available to the whole
community for testing for at least a week without any additional problems being
reported or significant changes being committed, the branch can be designated as
the final release version.</p>
first version that has undergone testing by the developers and has shown no
problems that must be fixed before release. New versions should be made at about
2-weekly intervals after the <tt>-pre1</tt> release, and designated as either
pre-release or release candidate versions by the Release Manager. Release
candidates are announced to the whole community via the tech-talk mailing list,
pre-releases are announced to to the developers via the core-talk list. After a
release candidate has been available for 2 weeks without any new problems being
reported or major changes having to be committed, the final release can be
made.</p>
<h3>Roles</h3>
@ -77,7 +78,7 @@ the final release version.</p>
<td>&nbsp;</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>
of remaining tasks that must be finished.</td>
</tr>
<tr>
<td>&nbsp;</td>
@ -110,7 +111,7 @@ the final release version.</p>
<tr>
<td>&nbsp;</td>
<td>Release Manager</td>
<td>Review and update this document for the upcoming release.</td>
<td>Review and update this checklist for the upcoming release.</td>
</tr>
<tr>
<td>&nbsp;</td>
@ -125,6 +126,7 @@ the final release version.</p>
<tr>
<td>&nbsp;</td>
<td>Release Manager</td>
<!-- Submodules... -->
<td>Edit and commit changes to the EPICS version number file
configure/CONFIG_BASE_VERSION.</td>
</tr>
@ -134,37 +136,35 @@ the final release version.</p>
<td>Tag the module in Git using these tag conventions:
<ul>
<li>
<tt>R3.16.1-pre<i>n</i></tt>
<tt>R7.1.1-pre<i>n</i></tt>
&mdash; pre-release tag
</li>
<li>
<tt>R3.16.1-rc<i>n</i></tt>
<tt>R7.1.1-rc<i>n</i></tt>
&mdash; release candidate tag
</li>
</ul>
<blockquote><tt>
cd base-3.16<br />
git tag -m 'ANJ: Tagged for 3.16.1-rc1' R3.16.1-rc1
cd base-7.1<br />
git tag -m 'ANJ: Tagged for 7.1.1-rc1' R7.1.1-rc1
</tt></blockquote>
</td>
Note that submodules must <em>not</em> be tagged with the version used
for the top-level, they each have their own separate version numbers
that are only tagged at the final release.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Release Manager</td>
<td>Export the tagged version into a tarfile. This command generates a
gzipped tarfile directly from the repository, excluding those files and
directories needed only for continuous integration:
<td>Export the tagged version into a tarfile. The <tt>make-tar.sh</tt>
script generates a gzipped tarfile directly from the tag, excluding the
files and directories that are only used for continuous integration:
<blockquote><tt>
cd base-3.16<br />
git archive
--prefix=base-3.16.1-rc1/
--output=../base-3.16.1-rc1.tar.gz
R3.16.1-rc1
configure documentation LICENSE Makefile README src startup
cd base-7.1<br />
.ci/make-tar.sh R7.1.1-rc1 base-7.1.1-rc1.tar.gz base-7.1.1-rc1/
</tt></blockquote>
Create a GPG signature file of the tarfile as follows:
<blockquote><tt>
gpg --armor --sign --detach-sig base-3.16.1-rc1.tar.gz
gpg --armor --sign --detach-sig base-7.1.1-rc1.tar.gz
</tt></blockquote>
</td>
</tr>
@ -177,8 +177,9 @@ the final release version.</p>
<tr>
<td>&nbsp;</td>
<td>Website Manager</td>
<td>If necessary recreate the tarfile following the instructions above.
Copy the tar file to the Base download area of the website</td>
<td>Copy the tarfile and its signature to the Base download area of the
website and add the new files to the website Base download index
page.</td>
</tr>
<tr>
<td>&nbsp;</td>
@ -195,11 +196,6 @@ the final release version.</p>
versions should use the page and URL for the final release version
number.</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Website Manager</td>
<td>Add the new tar file to the website Base download index page.</td>
</tr>
<tr>
<th colspan="3">Testing</th>
</tr>
@ -235,7 +231,7 @@ the final release version.</p>
<td>&nbsp;</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
available platforms and test as appropriate. Application code changes
may be necessary where the EPICS Base APIs have been modified.</td>
</tr>
<tr>
@ -258,8 +254,8 @@ the final release version.</p>
<td>&nbsp;</td>
<td>Release Manager</td>
<td>Obtain a positive <q>Ok to release</q> from all platform developers
once a release candidate version has gone a whole week without any
issues being reported.</td>
once a release candidate version has gone for 2 weeks without any major
new issues being reported.</td>
</tr>
<tr>
<th colspan="3">Creating the final release version</th>
@ -275,28 +271,24 @@ the final release version.</p>
<td>Release Manager</td>
<td>Tag the module in Git:
<blockquote><tt>
cd base-3.16<br />
git tag -m 'ANJ: Tagged for 3.16.1' R3.16.1</i>
cd base-7.1<br />
git tag -m 'ANJ: Tagged for 7.1.1' R7.1.1</i>
</tt></blockquote>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Release Manager</td>
<td>Export the tagged version into a tarfile. This command generates a
gzipped tarfile directly from the repository, excluding those files and
directories needed only for continuous integration:
<td>Export the tagged version into a tarfile. The <tt>make-tar.sh</tt>
script generates a gzipped tarfile directly from the tag, excluding the
files and directories that are only used for continuous integration:
<blockquote><tt>
cd base-3.16<br />
git archive
--prefix=base-3.16.1/
--output=../base-3.16.1.tar.gz
R3.16.1
configure documentation LICENSE Makefile README src startup
cd base-7.1<br />
.ci/make-tar.sh R7.1.1 base-7.1.1.tar.gz base-7.1.1/
</tt></blockquote>
Create a GPG signature file of the tarfile as follows:
<blockquote><tt>
gpg --armor --sign --detach-sig base-3.16.1.tar.gz
gpg --armor --sign --detach-sig base-7.1.1.tar.gz
</tt></blockquote>
</td>
</tr>
@ -309,7 +301,8 @@ the final release version.</p>
<tr>
<td>&nbsp;</td>
<td>Release Manager</td>
<td>Upload the release tar file to the Launchpad download area.</td>
<td>Copy the tarfile and its signature to the Base download area of the
website.</td>
</tr>
<tr>
<td>&nbsp;</td>