Check
Who
Description
Preparing for a release
Release Manager
Email all developers about the upcoming release and ask for a list
of remaining tasks that must be finished.
All developers
Check the bug tracker for any outstanding items and handle
appropriately. All bugs that have been fixed should have been marked
as Fix Committed.
Release Manager
Set the Feature Freeze date, by which time all Git 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.
Release Manager
& all developers
Ensure that documentation will be updated before the release date:
Application Developers Guide
Release Notes
Known Problems
Other documents
Release Manager
Review and update this checklist for the upcoming release.
Website Manager
Create a release milestone on Launchpad. If a target release date is
known set "Date Targeted" to the expected release date. Note that
pre-release and release-candidate versions should not get Launchpad
milestones, only the final release.
Creating pre-release and release-candidate versions
Release Manager
Edit and commit changes to the EPICS version number file
configure/CONFIG_BASE_VERSION.
Release Manager
Tag the module in Git, using these tag conventions:
R7.0.3-pren
— pre-release tag
R7.0.3-rcn
— release candidate tag
cd base-7.0
git tag -m 'ANJ: Tagged for 7.0.3-rc1' R7.0.3-rc1
Note that submodules must not 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.
Release Manager
Export the tagged version into a tarfile. The make-tar.sh
script generates a gzipped tarfile directly from the tag, excluding the
files and directories that are only used for continuous integration:
cd base-7.0
./.tools/make-tar.sh R7.0.3-rc1 base-7.0.3-rc1.tar.gz base-7.0.3-rc1/
Create a GPG signature file of the tarfile as follows:
gpg --armor --sign --detach-sig base-7.0.3-rc1.tar.gz
Release Manager
Test the tarfile by extracting its contents and building it on at
least one supported platform.
Website Manager
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.
Website Manager
Create or update a website subdirectory to hold the release
documentation, and copy in selected files from the base/documentation
and base/html directories of the tarfile.
Website Manager
Create or modify the webpage for the new release with links to the
release documents and tar file. Pre-release and release-candidate
versions should use the page and URL for the final release version
number.
Testing
Platform Developers
Run the built-in test programs on all available host platforms using
make -s runtests
Platform Developers
Run the CA client side regression tests on all available host
platforms.
Platform Developers
Check that all makeBaseApp templates build and run properly, all
xxxApp and xxxBoot types and any internal options, e.g.
setting STATIC_BUILD=YES or using a different
INSTALL_LOCATION in configure/CONFIG_SITE.
Platform Developers
Build the SNL Sequencer against this version of Base, and check that
the makeBaseApp example builds and runs correctly with it.
Application Developers
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.
Release Manager
Check that documentation has been updated:
Release Approval
Release Manager
Obtain a positive Ok to release from all platform developers
once a release candidate version has gone for 2 weeks without any major
new issues being reported.
Creating the final release version
Release Manager
For each external submodule, check if the module's release version
number (and SHRLIB_VERSION setting) has been updated if appropriate,
and that its Release Notes have been updated to cover any changes.
Commit any fixes and tag the module if that hasn't already been
done.
Update all external submodules on the Base-7.0 branch and
commit.
Release Manager
Edit and commit changes to the EPICS Base version number file and
the embedded module version files:
configure/CONFIG_BASE_VERSION
modules/libcom/configure/CONFIG_LIBCOM_VERSION
modules/ca/configure/CONFIG_CA_VERSION
modules/database/configure/CONFIG_DATABASE_VERSION
Release Manager
Tag the epics-base module in Git:
cd base-7.0
git tag -m 'ANJ: Tagged for 7.0.3' R7.0.3
Don't push the new tag to the Launchpad repository yet.
Release Manager
Export the tagged version into a tarfile. The make-tar.sh
script generates a gzipped tarfile directly from the tag, excluding the
files and directories that are only used for continuous integration:
cd base-7.0
./.tools/make-tar.sh R7.0.3 base-7.0.3.tar.gz base-7.0.3/
Create a GPG signature file of the tarfile as follows:
gpg --armor --sign --detach-sig base-7.0.3.tar.gz
Release Manager
Test the tar file by extracting its contents and building it on at
least one supported platform. When this succeeds the new git tag can be
pushed to the Launchpad repository:
git push --follow-tags upstream 7.0
Release Manager
Edit and commit changes to the EPICS Base version number file and
the embedded module version files:
configure/CONFIG_BASE_VERSION
modules/libcom/configure/CONFIG_LIBCOM_VERSION
modules/ca/configure/CONFIG_CA_VERSION
modules/database/configure/CONFIG_DATABASE_VERSION
Version numbers should be set to the next expected patch release,
with a "-DEV" tag added (where applicable).
Publish to epics.anl.gov
Release Manager
Copy the tarfile and its signature to the Base download area of the
website.
Website Manager
Update the website subdirectory that holds the release
documentation, and copy in the files from the base/documentation
directory of the tarfile.
Website Manager
Update the webpage for the new release with links to the release
documents and tar file.
Website Manager
Add the new release tar file to the website Base download index
page.
Website Manager
Link to the release webpage from other relevent areas of the
website - update front page and sidebars.
Website Manager
Add an entry to the website News page, linking to the new version
webpage.
Publish to epics-controls
Website Manager
Upload the tar file and its .asc signature file to the
epics-controls web-server [ToDo: ssh-key, location]
Website Manager
Follow instructions on
Add a page for a new release to create a new release webpage (not
required for a patch release though, just edit the existing page).
Publish to Launchpad
Website Manager
Go to the Launchpad milestone for this release. Click the Create
release button and add the release date. Put a URL for the release page
in the Release notes box, and click the Create release button. Upload
the tar file and its .asc signature file to the new Launchpad
release page.
Release Manager
Find all Launchpad bug reports with the status Fix Committed which
have been fixed in this release and mark them Fix Released.
Make Announcement
Release Manager
Announce the release on the tech-talk mailing list.