You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 48 Next »

Status

as of Nov. 3.

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 [added hierarchy display refresh 10/3]

Configure options

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 [but cannot handle containers like celestialSources properly yet]

    • check out "regular" package
    • check out container
    • cvs rtag Now that tag strings include the package name it is no longer necessary to support tag as well as rtag.
  • Build functions
  • Run a program (as of Sept 29 using setup file generated by SCons)
  • Open terminal window (Linux only so far). GoGui will look for a file called  _setup.sh  and will run it first.  (Navid has enhanced SCons to create this file and a comparable file on WIndows _setup.wsf).
  • file-specific functions selected by right-click in package hierarchy
    • run a program
    • debug a program (on Linux with gdb only)
    • cvs diff of file
    • browse a file

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. As of Sept. 10 SCons commands run asynchronously.

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

  • full support of override directory. [Most of the work remaining is in SCons infrastructure, not GoGui]

  • Additional file-specific functions selected by right-click in package hierarchy
    • bring up file in Qt editor [read-only browse available as of 16 Oct.]

    • (better) bring up file in user-selected editor
  • 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)
  • implement delete-package function
  • add config dialog for preferred editor; add function to file context menu to edit file with this editor
  • special handling for container packages (celestialSources, irfs) for various cvs operations: checkout, update, commit, tag.

Bugs

  • After adding a new package, SCons init crashes. (FIxed 9/26)
  • Unpleasant scrolling behavior in 'pkg out' panel   (Fixed 10/1)
  • GoGui doesn't display extra checked-out contained packages (e.g. alternate celestialSources/GRB). Problem may be in SconsPackage class.

Windows-specific

  • Container checkout from GoGui (this might work already for most Windows users; need a guinea pig)
  • Make Project and Solution files as part of build [requires changes to SCons infrastructure]

  • Bring up Visual Studio from GoGui

SCons customization

  • Full support for Override directory. This requires a different organization-for/handling-of the per-package file pkgNameLib.py.
  • Creation of per-package (maybe per-package, per-variant) setup file to define all environment variables needed to run a program built in that package.  Done as of Sept. 29 at least for Linux, maybe also Windows.  [Thanks, Navid!] Only one file per variant is needed (not one per package per variant).

  • Enable generation of Windows project and solution files during build
  • Improve natively-generated SCons solution files which are not convenient for our use.

External libraries

Our SCons implementation requires a different directory structure in extlibs than we're currently using with CMT. (This is not intrinsic to SCons; the decision to change was independent but, given that it was made, it was preferable to start off SCons with the new arrangement.) The new arrangement has been implemented for RM, but does pose an additional barrier to using SCons for anyone not doing their development against the SLAC central installation.

Installation

GoGui is not yet (Oct. 1) functional enough for serious use, but it's close enough on Linux that the more adventurous might want to get some experience. If there are any such, their feedback would be very useful. However, there are several jobs to do before GoGui can be installed and used at SLAC:

  1. Build it. So far I have only built GoGui for Linux on my RHEL4 laptop. We also need a RHEL3 build, but that requires
    • a newish installation of Qt on a RHEL3 machine that I can use to build against. (Qt does not need to be installed on the user's machine because GoGui for release is linked statically)
  2. Figure out where to put the GoGui executables (maybe /afs/slac/g/glast/applications ?)  RHEL4 version is now installed at /afs/slac/g/glast/applications/GoGui/@sys/dev (equivalently, can replace dev by 0.8.0, a version number I picked out of the air).
  3. Determine how users will have access to suitable versions of Python and SCons.  SCons is available on central SLAC Linux machines at /afs/slac/g/glast/applications/bin/scons
  4. Some work remaining on user documentation
    • how a user on SLAC Linux can get access to GoGui and everything it needs (i.e. Python, SCons)
    • how to use GoGui
  • No labels