You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This page documents the process to follow when deploying a new versions of EPICS Extensions at SLAC. Extensions at SLAC live in separate directories under $EPICS_TOP/extensions where they can be worked on separately. When it comes time to release new versions, they are re-bundled and placed under $EPICS_EXTENSIONS.

To make the process clear, let's go through an actual example of creating and deploying a new release.


Let's say the current release is R1.2.1, and we'd like to make a new R1.3.0 release which will include updating eget, labca, and removing procServ. To start, create a local copy of the extensions repository somewhere in a sandbox in your home directory to work with:

git clone /afs/slac/g/cd/swe/git/repos/package/epics/extensions/extensions.git


A fresh copy should look similar to the following:


jesseb@aird-b50-srv01:/afs/slac/g/controls/development/users/jesseb/sandbox/extensions $ ls
configure  Makefile  RELEASE_NOTES  RELEASE_SITE


The file we will want to modify is configure/RELEASE. The current version looks like this:


jesseb@aird-b50-srv01:/afs/slac/g/controls/development/users/jesseb/sandbox/extensions $ cat configure/RELEASE 
#
# Extension release versions
#
include $(TOP)/RELEASE_SITE

EPICS_EXTENSIONS	= $(EPICS_SITE_TOP)/extensions

CAMCOM			= $(EPICS_EXTENSIONS)/Camcom/R3.0.0
CATOOLS			= $(EPICS_EXTENSIONS)/catools/R1.0.0
CHANNELWATCHER	= $(EPICS_EXTENSIONS)/ChannelWatcher/R3.0.1
STRIPTOOL		= $(EPICS_EXTENSIONS)/StripTool/R2.5.18.0-1.1.0
VISUALDCT		= $(EPICS_EXTENSIONS)/VisualDCT/R2.7.0-0.1.0
ALH				= $(EPICS_EXTENSIONS)/alh/R1.2.35-1.0.2
CASNOOPER		= $(EPICS_EXTENSIONS)/caSnooper/R2.1.2.3-0.1.0
EDM				= $(EPICS_EXTENSIONS)/edm/R1.12.105B-1.3.0
EGET			= $(EPICS_EXTENSIONS)/eget/R0.0.0-0.0.2
FWDCLIS			= $(EPICS_EXTENSIONS)/fwdCliS/R1.2.6
GATEWAY			= $(EPICS_EXTENSIONS)/gateway/R2.1.2.0-1.0.0
JCA				= $(EPICS_EXTENSIONS)/jca/R2.3.7-0.2.0
LABCA			= $(EPICS_EXTENSIONS)/labca/R3.8.0
PARSECASW		= $(EPICS_EXTENSIONS)/parsecasw/R1.0.3.0-0.1.0
PROBE			= $(EPICS_EXTENSIONS)/probe/R1.1.8.0-0.1.0
PROCSERV		= $(EPICS_EXTENSIONS)/procServ/R2.7.0-1.1.0
IOCLOGMSGSERVER	= $(EPICS_EXTENSIONS)/iocLogMsgServer/R1.7.0


Now assuming you have already made your changes to the relevant extensions and rebuild them under $EPICS_TOP/extensions, making the new release of the extensions bundle is as simple as modifying the RELEASE file to point to the updated versions. For this example, we will be updating eget to R0.0.0-0.0.4, and labca to R3.8.1-0.1.0. We will also be removing procServ as it does not fit well with the other extensions. So the updated file will look as follows:


#
# Extension release versions
#
include $(TOP)/RELEASE_SITE

EPICS_EXTENSIONS	= $(EPICS_SITE_TOP)/extensions

CAMCOM			= $(EPICS_EXTENSIONS)/Camcom/R3.0.0
CATOOLS			= $(EPICS_EXTENSIONS)/catools/R1.0.0
CHANNELWATCHER	= $(EPICS_EXTENSIONS)/ChannelWatcher/R3.0.1
STRIPTOOL		= $(EPICS_EXTENSIONS)/StripTool/R2.5.18.0-1.1.0
VISUALDCT		= $(EPICS_EXTENSIONS)/VisualDCT/R2.7.0-0.1.0
ALH				= $(EPICS_EXTENSIONS)/alh/R1.2.35-1.0.2
CASNOOPER		= $(EPICS_EXTENSIONS)/caSnooper/R2.1.2.3-0.1.0
EDM				= $(EPICS_EXTENSIONS)/edm/R1.12.105B-1.3.0
EGET			= $(EPICS_EXTENSIONS)/eget/R0.0.0-0.0.4
FWDCLIS			= $(EPICS_EXTENSIONS)/fwdCliS/R1.2.6
GATEWAY			= $(EPICS_EXTENSIONS)/gateway/R2.1.2.0-1.0.0
JCA				= $(EPICS_EXTENSIONS)/jca/R2.3.7-0.2.0
LABCA			= $(EPICS_EXTENSIONS)/labca/R3.8.1-0.1.0
PARSECASW		= $(EPICS_EXTENSIONS)/parsecasw/R1.0.3.0-0.1.0
PROBE			= $(EPICS_EXTENSIONS)/probe/R1.1.8.0-0.1.0
IOCLOGMSGSERVER	= $(EPICS_EXTENSIONS)/iocLogMsgServer/R1.7.0


To generate the links to the new versions, just run make from the top level extensions directory. Note that it will generate both the RHEL 6 and RHEL 7 versions at the same time, so there is no need to change to a different machine and run make twice for these.


jesseb@aird-b50-srv01:/afs/slac/g/controls/development/users/jesseb/sandbox/extensions $ make

<lots of output>

jesseb@aird-b50-srv01:/afs/slac/g/controls/development/users/jesseb/sandbox/extensions $ ls bin
rhel6-x86_64  rhel7-x86_64

jesseb@aird-b50-srv01:/afs/slac/g/controls/development/users/jesseb/sandbox/extensions $ ls -la bin/rhel6-x86_64

<lots of output>


Running the ls commands will verify that the softlinks are all pointing to the expected versions.

  • No labels