Title: User-friendly tools for Managing Software Development Projects
1User-friendly tools for Managing Software
Development Projects
- Toby Burnett
- University of Washington
- Marco FrailisUniversity of Udine
- Alex Schelssinger
- SLAC
2Introduction
- Objective make HEP software developers more
productive - 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 packages
3The development environment
Package/build manager
Release
User development Area
4Solutions for CMT
- (Similar approaches would apply to SRT and
scram) - A GUI application
- VCMT (windows and linux versions)
- Simplified command-line interface
- glastpack
5An OO analysis The players
- 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
6The 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
7We have objects lets define classes
What Class Name Vcmt(windows) implementation
CMT environment Cmt cmt.wsc COM object
A CMT package Package Jscript class Package
Package, its projects, and dependent projects Workspace Jscript class Workspace
Individual binary target Project Jscript class Project
8The object model diagram
9A tour of the application
- Examine CMT settings
- Set CMT path
- Browse a packages 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 (windows only
10VCMT for Windows
Text input/output window
11Structure of the Windows code Jscript and HTML
main program manage objects, GUIrun cvs, visual
studio
Windows Script Host
CMT interface
12The Linux version
13glastpack.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
ltargumentsgt - 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
14Concluding 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/cvsw
eb-SLAC/vcmt4linux - glastpack http//glast.stanford.edu/cgi-bin/cvswe
b-SLAC/glastpack