...
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 |
Note: PLC applications are generated on windows machines. See subsystem controls engineer for details
It is important to note that releasing software to the Development System during the 2007 run will affect the production system displays, standalone process restarts, and IOC's upon boot.
...
- Change directory to your local sandbox
- cvs co -d <directory> <module name>
- modify software
- if applicable, build your application to verify that the build is successfully.
- test your changes in development
- if possible test your changes in production
- if ready to commit your changes, edit the RELEASE_NOTES file to prepare for the tagged release.
...
- Change directory to the TOP of your new application
- Make sure you have a RELEASE_NOTES and README file at the top of your application
- Modify you configure/RELEASE file for production use
- Import your software into CVS. The cvs import syntax is
cvs import -m "Initial import of ..." epics/base <vendor_tag> <release_tag>
cvs import -m "Initial import of ..." epics/site/src/<package> <vendor_tag> <release_tag>
cvs import -m "Initial import of ..." epics/ioc/<subsystem> <vendor_tag> <release_tag>
EPICS IOC Example)
cvs import -m "Initial import of...." epics/ioc/Vacuum Vacuum Vacuum-R1-0-0
PLC Example)
cvs import -m "Initial import of...." plc/Water/ioc-in20-wa01 ioc-in20-wa01 ioc-in20-wa01-R1-0-0
Step 4: Commit your changes to CVS and Tag
- Change directory to the directory where your changes were made locally.
- Commit all changed files to cvs: cvs commit -m "comment" <filename>
- Move to the top level directory of your application you wish to tag. For PLC applications this will be the nodename directory.
- Tag software: cvs tag <modulename>-RX-Y-Z
EPICS IOC Applicaiton Example:
cvs tag Vacuum-R1-0-1
PLC Example:
cvs tag ioc-in20-wa01-R1-0-0
Step 5: CVS Tag your changes
For ioc common startup: cd /afs/slac/g/lcls/epics/iocCommon/<subsystem>/<nodename>
For ioc application: cd /nfs/slac/g/lcls/epics/iocTop/<subsystem>
For modules: cd /afs/slac/g/lcls/epics/modules/<module>
For epics base: cd /afs/slac/g/lcls/epics/base/base-<version>
- cvs co -P -d <tagged version> -r <tagged version> <module name>
- cd <tagged version>
- gmake
- Send an email to controls-software-release regarding your tagged software release. If other applications need your changes, describe how to include your new version and the features of this new release.
...
- Update configuration files for your ioc if necessary.
- Create or modify the Master.XX file for your subsystem.
- Restart your ChannelWatcher monitoring process. For more information click here.
Wiki Markup |
*Step 7: Follow instructions on\[How-To Boot an EPICS ioc\|LCLS How-To Boot an EPICS IOC\]*
- Test your new release on the development system.
- If booting form the LCLSCA subnet proceed to Step 9. Otherwise, request permission from mcc ops to reboot your ioc. Once permission has been granted, send an email to controls-software-release regarding your ioc boot. This email message is forwarded to the Operations E-log. Boot your ioc and test. Send email to controls-software-release when your test has finished, providing the results of your test. If you have to backout your release, go to Step 8, Otherwise, your done!
Step 8: Backout out a Release
- cd $EPICS_IOCS/<nodename>
- for hard iocs: mv startup.cmd to st.cmd_new and ~mv red:startup.cmd_bck startup.cmd~
- for soft iocs: mv st.cmd to st.cmd_new and mv st.cmd_bck to st.cmd
- Reboot your ioc.
- Send a message to controls-software-release.
Step 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
...
You are ready to export your softwthe production host, opi00gtw03.
From lcls-prod02:
- ssh iocegr@lcls-builder or ssh physics@lcls-srv01
- 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:
- cd $EPICS_IOC_TOP/<subsystem>
- cvs co -d Laser-R1-0-0 -r Laser-R1-0-0 Laser
- cd Laser-R1-0-0/configure
Edit RELEASE file and replace path /afs/slac/g/lcls with /user/local/lcls/
- cd ..
- gmake
- cd $EPICS_IOCS/<nodename>
- For hard iocs cp -p startup.cmd startup.cmd_bckup and the edit startup.cmd file and point to the new tagged release
- For soft iocs mv bin bin_bckup and ln -s ../../iocTop/<subsystem>/<tagged-version>/bin/<OS> bin
- Reboot ioc, after mcc has granted permission.
- Enter a log in the operations elog book by sending email to controls-software-release.
...
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.