Status
as of Sept. 8.
Display and navigation
All primary components of main window are in place and active to some degree:
- Central area for display of output and per-package files of interest, such as release.notes
- Menu bar with working menus
- Tool bar with working tools
- Status area
- Package hierarchy for base release
- Packages in override directory (currently disabled)
- File hierarchy within selected package
Configure options
- Select base root directory
- Select override directory (currently disabled)
- CVS-related set-up:
- path to cvs command
- value for CVSROOT
- value for CVS_RSH
- SCons-related set-up:
- path to SCons command
- select external libraries root directory
- build options: compiler, debug or not, optimized or not
Functions
- Select a package
- Display per-package information
- Release notes
- SConscript
- <package>Lib.py
- ChangeLog
- version information
- command output
- Search displayed information for string
- Repository functions
- cvs update (3 flavors)
- cvs commit
- check out "regular" package
- check out container (Linux only)
- Build functions
- Build a package
- Clean a package
Performance
Execution of the first command SCons is given is especially slow. Subsequent commands for a code base as large as ScienceTools (to say nothing of GlastRelease) are still intolerably slow with default behavior (reread everything to regenerate all dependencies), especially on Windows. GoGui now makes use of the SCons facility to run subsequent commands without re-checking the dependency tree. SCons must be re-initialized if the base directory (the one containing the SConstruct file) or external library have changed; GoGui handles this automatically. It is also possible for the user to explicitly ask for SCons to re-init if s/he knows the dependency tree has changed.
To do
Display and navigation
- Visual representation of variants is misleading. Should disable builds of variants that our implementation of SCons will not in fact build and indicate visually which variant is the buildable one.
- Minor unpleasantness in base browser display: if keys are used to scroll a page at a time the highlighted package can change if the actual selected package scrolls out of view.
Configure options
- select preferred debugging environment
More functions
- run a program
- run a program in debugger
full support of override directory. [Most of the work remaining is in SCons infrastructure, not GoGui]
- cvs tag
- file-specific functions selected by right-click in package hierarchy
- bring up file in Qt editor
- (better) bring up file in user-selected editor
- cvs diff of file
- capture qDebug() output in another panel of central tabbed widget. (See grits-cpp/src/lsf/lsfDaemon.cxx for example and qt doc. for qInstallMsghandler.)
- implement dry-run builds and cleans (print what they would do without actually doing it)
Performance
Make SCons operations asynchronous so as not to tie up the gui.
Windows-specific
- Container checkout from GoGui
Make Project and Solution files as part of build [requires changes to SCons infrastructure]