User-friendly tools for Managing Software Development Projects
This presentation discusses innovative tools developed to streamline software management, particularly in High Energy Physics (HEP). It introduces the structure of CMT packages and explores a GUI application, VCMT, designed for Windows and Linux. VCMT simplifies command-line interfaces, allowing for straightforward browsing, checkout, and modification of packages, making it accessible for new developers. Additional functionalities include version management, package building, and integrated tools for an enhanced development experience. The presentation emphasizes user interface design to provide clarity and ease in multi-package environments.
User-friendly tools for Managing Software Development Projects
E N D
Presentation Transcript
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