130 likes | 266 Views
User-friendly tools for Managing Software Development Projects . Toby Burnett University of Washington Marco Frailis University of Udine Alex Schelssinger SLAC. Introduction. HEP software development components:
E N D
User-friendly tools for Managing Software Development Projects Toby Burnett University of Washington Marco Frailis University of Udine Alex Schelssinger SLAC
Introduction • HEP software development components: • Package: group of related source files, usually to build a single library and/or executable • Versioning via cvs tags • “Release” system to manage and build executables from set of tagged packages • Development scheme: “Test area mechanism for developing and testing new code against a release. • Observations: The release/management systems are command-line oriented, can be daunting to new developers Hard to get overall view, especially when dealing with multiple pacakges
Solutions for CMT (Similar approaches would apply to SRT) • A GUI application • VCMT (windows and linux versions) • Simplified command-line interface: • glastpack.pl
Objects: Environment: CMT env vars, etc. CMT packages system (read-only, sticky tags) development (head versions) requirements files, sources binaries: libs, dlls, exes Tools: CMT CVS development tools Windows: Visual Studio Linux: gmake, emacs, gdb/ddd Doxygen An OO analysis: The players
The strategy • Present the user with a view of all the objects • Allow appropriate tools to be used according to development scenarios: • set environment • checkout packages, singly or in groups • browse set of available packages • examine properties of each package, relationships • modify and rebuild binaries • check in and/or tag new versions • run executables
Examine CMT settings Set CMT path Browse a package’s properties requirements file used packages macros, sets, etc. Modify requirements file Check cvs status Start a console session in the package context Checkout a package Set up and build a package Run a package application Start Visual Studio A tour of the application
vcmt.wsf Internet Explorer COM vcmt.htm cmt.wsc gui description Structure of the Windows code: Jscript and HTML main program: manage objects, GUIrun cvs, visual studio Windows Script Host CMT interface
The Linux version • Implemented with the FOX toolkit
glastpack.pl • usage: glastpack.pl create dirname • usage: glastpack.pl help command • usage: glastpack.pl build version • usage: glastpack.pl rco package version • usage: glastpack.pl run package exename <arguments> • usage: glastpack.pl add /path/to/area • usage: glastpack.pl rebuild package • usage: glastpack.pl remove /path/to/area • usage: glastpack.pl co package version • usage: glastpack.pl login • usage: glastpack.pl logout
Concluding remarks • Experience • In use by all GLAST developers: mature, few problems • it can test for consistency when starting, avoid installation problems • Package browsing • Buttons for all basic scenarios • override CMT behavior (checkout, broadcast) • Sources: • VCMT/win: http://glast.stanford.edu/cgi-bin/cvsweb-SLAC/vcmt • VCMT/linux: http://glast.stanford.edu/cgi-bin/cvsweb-SLAC/vcmt4linux • glastpack: http://glast.stanford.edu/cgi-bin/cvsweb-SLAC/glastpack