Users' Software Repository
PSDM uses Subversion (SVN) for the code management and versioning task. Currently, official LCLS code such as PSANA, PYANA, etc. is located in the Software Repository which is enabled to LCLS software development team only. Those users who would like to develop their own code and share this code with other user groups, there is a users' software repository, https://pswww.slac.stanford.edu/svn/userrepo, assigned to environment variable
SIT_SVN_USER
.
Access to users' software repository
To see content of users' or PSDM software repository use command
svn ls -v $SIT_SVN_USER
or
svn ls -v $SIT_SVN
respectively. For example, for one of the packages one can get
> svn ls -v $SIT_SVN_USER 5 ofte@SLA Jun 07 2012 ./ 5 ofte@SLA Jun 07 2012 pyana_modules/ > svn ls -v $SIT_SVN_USER/pyana_modules/ 5 ofte@SLA Jun 07 2012 ./ 4 ofte@SLA Jun 07 2012 branches/ 4 ofte@SLA Jun 07 2012 tags/ 5 ofte@SLA Jun 07 2012 trunk/ > svn ls -v $SIT_SVN_USER/pyana_modules/trunk/ 5 ofte@SLA Jun 07 2012 ./ 5 ofte@SLA 1188 Jun 07 2012 SConscript 5 ofte@SLA Jun 07 2012 doc/ 5 ofte@SLA Jun 07 2012 src/ > svn ls -v $SIT_SVN_USER/pyana_modules/trunk/src 5 ofte@SLA Jun 07 2012 ./ 5 ofte@SLA 371 Jun 07 2012 img_peakfinder.cfg 5 ofte@SLA 11373 Jun 07 2012 img_peakfinder.py
Read-only access to both repositories is provided through the web interface:
- Public repository for users' code: https://pswww.slac.stanford.edu/trac/psdm/browser/user
- Main PSDM Subversion repository: https://pswww.slac.stanford.edu/trac/psdm/browser/psdm
Command line interface
SVN
-based command-line interface is identical for both repositories. The only difference is that the key "-u" should be added to all commands for users' repository. For example, to get package from users' repository one has to use command
svn addpkg <package-name> -u
Inclusion of the package in official release
Publicly available LCLS offline releases can be seen in the directory associated with $SIT_RELDIR
environment variable. Inclusion in release means that the package will be compiled nightly and its modules and applications will be available by default to anyone who want to use them. Packages from both repositories can be included in LCLS offline release system by a personal request to the release coordinator (currently Andy).
References
So up to the minor difference
command interface needs in key "-u"
all svn
commands can be used with users' software repository.
Here is a list of useful references to the documents explaining how it works.
Typical development tasks
Software Repository
Software releases