Development Procedures

From LNLEpicsWiki

Jump to: navigation, search

Contents

[edit] Users

epics 
Controls administrator. Owns all files and areas for the production system. Extreme care has to be used when doing things as this user. Regular login is not advised, certain developers have ssh access to this account to be able to move files from their development area into the production area.
giacchin 
Mauro - primary developer.
devel 
Guest developer account. May not install stuff as user epics.
spes 
SPES operator account. Login automatically starts the OPI session.
svnowner 
Used for svnserve access to the Subversion repositories.

[edit] Procedures

[edit] Development

Development is done under the user account of the developer. Create any directury structure that you like, check out an existing application from the Subversion repository or create a new application using makeBaseApp.pl from EPICS base.

[edit] Deployment

Certain trusted users may install the results of their development into the production area. You are authorized for production system deployment, if you can ssh to the production system file server as user epics without having to give your password. (I.e. your public ssh key is listed in the ~/.ssh/authorized_keys file of that user.)

To prepare an application for deployment, do the following:

  1. Change the st.cmd of your IOC to source the file envPaths.link (instead of envPaths).
  2. In the directory containing the st.cmd copy the file envPaths to envPaths.prod. Change the definintion of TOP in envPaths.prod to the target location of your application.
  3. Create symbolic links on the development and the production machine:
    1. On the development system: envPaths.link -> envPaths
    2. On the production system: envPaths.link -> envPaths.prod
  4. Create (copy) the deploy script to the top directory of your application and adjust the settings for target directories and hosts.

The deploy script should look like this:

#!/bin/sh

TARGET_DIR=<target location, e.g. /ioc/playground/ESSLAMB>
TARGET_HOSTS="epics@localhost"

DIRS="bin db dbd iocBoot medm protocols"

for HOST in $TARGET_HOSTS; do
  rsync -rl --exclude=envPaths.link --exclude=*~ $DIRS $HOST:$TARGET_DIR
done

If everything is set up correctly, you should be able to deploy your application to the production system using

./deploy
Personal tools