Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


 

LCLS How-To Release Software

...

LCLS Code Management

...

EPICS Directory Tree

Description

CVS Repository

Reference Directory

EPICS IOC Applcations

epics/ioc

/afs/slac/g/lcls/epics/<version>/iocTop

/<version>

EPICS Site

epics/site/src

/afs/slac/g/lcls/epics/<version>/modules

EPICS Base

epics/base

/afs/slac/g/lcls/epics/<version>/base

/<versions>

EPICS Extensions

epics/extensions

/afs/slac/g/lcls/epics/

extensions

<version>/extensions

-<version>

EPICS IOC Boot

epics/iocCommon

/afs/slac/g/lcls/epics/<version>/iocCommon

EPICS CPU Boot

epics/cpuCommon

/afs/slac/g/lcls/epics/<version>/cpuCommon

Tools Directory Tree

Description

*

CVS Repository

*

Reference Directory

EDM Configuration Files

tools/edm/config

/afs/slac/g/lcls/tools/edm/config

EDM Displays

tools/edm/display

/afs/slac/g/lcls/tools/edm/display

EDM Scripts

tools/edm/scripts

/afs/slac/g/lcls/tools/edm/script

Alarm Handler Configuration Files

tools/alh

afs/slac/g/lcls/tools/alh/config

Channel Watcher Configuration Files

tools/ChannelWatcher

afs/slac/g/lcls/tools/ChannelWatcher/config

PLC Applications

plc

/afs/slac/g/lcls/plc

Firmware 

firmware

/afs/slac/g/lcls/firmware

Note: PLC applications are generated on windows machines. See subsystem controls engineer for details

...

  1. Change directory to your local sandbox
  2. Use eco to checkout software from cvs, or do it manually  cvs co -d <directory> <module name>name>  
  3. modify software
  4. if applicable, build your application to verify that the build is successfully.
  5. test your changes in developmentif possible test your changes in production
  6. if ready to , commit your changes to CVS, edit making sure to edit the RELEASE_NOTES file to prepare for the tagged release.NOTES describing the changes made
  7. Tag your release. 
  8. Use cram push your application to production

Step 3: Importing new software into CVS:

...

Step 8: Backout out a Release

  1. cd $EPICS_IOCS/<nodename>
  2. for hard iocs: mv startup.cmd to st.cmd_new and ~mv red:startup.cmd_bck startup.cmd~
  3. for soft iocs: mv st.cmd to st.cmd_new and mv st.cmd_bck to st.cmd
  4. Reboot your ioc.
  5. Send a message to controls-software-release.
  1. Ask ops permission to back out you release
  2. Send a message to the MCC E-log
  3. From lcls-dev2, use CRAM to backout your release. Note: From lcls-dev2, type cram --revert  or cram --upgrade for help
  4. Reboot your ioc from the production network panel.

Step 9: Preliminary checkout in Production 
Check for duplicate PV usng  dupePVs.bashStep 9: Before Exporting Software to Production System
Check duplicate PV before exporting software to production system
for ALL iocs: use the dupePVs.bash iocname

Examples:
1) get usage
dupePVs.bash -h

2) check all iocs found in $IOC
dupePVs.bash

3) check all eioc's
dupePVs.bash eioc

4) check all iocs with mg in the name
dupePVs.bash mg

5) check all soft magnet IOCs
dupePVs.bash sioc-.*-mg01

Step 10: Exporting Software to Production System

...

You are ready to export your softwthe production host, opi00gtw03.

From lcls-prod02:

  1. ssh iocegr@lcls-builder or ssh physics@lcls-srv01
  2. export CVSROOT=:ext:luchini@lcls-prod02:/afs/slac/g/lcls/cvs

Note: replace the username "luchini" with your own unix username

For EPICS IOC applications:

software to production.

For EPICS IOC Applications:

  1. If your application is CRAMmed from lcls-dev2:
    1. cd to TOP of your Application
    2. cram push
  2. Otherwise,
    1. ssh to the production machine shared account, may  need to hope to lcls-prod02 first
    2. cd $EPICS_IOC_TOP/
    <subsystem>
  3. cvs co -d Laser-R1-0-0 -r Laser-R1-0-0 Laser
  4. cd Laser-R1-0-0/configure

Edit RELEASE file and replace path /afs/slac/g/lcls with /user/local/lcls/

    1. <Application>
    2. Use eco to checkout your application
    3. cd to the TOP of your release
    4. build your application by typeing "make"
  1. cd ..
  2. gmake
    1. cd $EPICS_IOCS/<nodename>
    2. For hard iocs
    cp
      1.  cp -p startup.cmd startup.cmd_bckup
    and the edit
      1.   edit startup.cmd file and point to the new tagged release
    1. For soft iocs
      1.  mv bin bin_bckup
    and
      1.   ln -s ../../iocTop/<subsystem>/<tagged-version>/bin/<OS> bin
    Reboot ioc, after mcc has granted permission.
      1.  
    1. Enter a log in the operations elog book by sending email to controls-software-release
    2. Reboot ioc from network panel, after mcc has granted permission.

Matlab Programs Released to Production:

Step 11: Export ChannelWatcher Config Files
(see the example below)

  • ssh iocegr@lcls-builder or ssh physics@lcls-srv01
  • export CVSROOT=:ext:luchini@lcls-prod02:/afs/slac/g/lcls/cvs
  • cd $TOOLS/ChannelWatcher/config
  • cvs update <filename>
  • ssh laci@lcls-daemon1
  • cd /etc/init.d
  • ./st.cw<Subsystem> restart ex) st.cwMG for Magnets
  • logout
  • Note: if you have the Message Logger up (from lclshome) note the number of pv's that failed to connect to ChannelWatcher.
  • Enter a message in the operation elog book by sending email to controls-software-release.