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

Compare with Current View Page History

« Previous Version 74 Next »

Status

Latest release version available for download is 0.9.3 

Display and navigation

All primary components of main window are in place and active as of GoGui release 0.9.0:

  • 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 supersede (aka override) directory
  • 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. See also the SCons-aware command-line tagger, which uses the same underlying utilities as the GoGui tag function.
  • Build functions
  • Remove package
  • Exclude a package (SCons will use next version in line if there is one)
  • 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
  • GoGui debug output goes to msg tab by default. To get old behavior (debug messages go to console or debugger) invoke as GoGui --ggDebug.

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. They can be aborted.

A welcome bonus of using a supersede directory is that SCons init is typically much faster.  It only checks the packages in the supersede directory; the base installation acts like an external library.

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.  FIXED as of Nov.6.
  • Several operations (e.g. checking out a package, excluding a package..) invalidate the set-up of the currently-running SCons process (if there is one). This needs to be clearer. [Show state in SCons icon as of 0.9.2]

  • Window does not always update spontaneously after a package is excluded (or un-excluded) to display the new state properly. [Fixed as of 0.9.3]

  • 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.
  • Add visual indication of whether SCons process is running or not. [Done as of 0.9.2]

Configure options

  • select preferred debugging environment
  • (maybe) select preferred cvs diff format [No ability to configure yet, but added -u option to improve output in 0.9.2]

  • select preferred editor [Done as of release 0.8.8]

More functions or enhancements

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

  • 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 [Done as of version 0.8.8 ]

  • capture qDebug() output in another panel of central tabbed widget. [\ Done as of 0.8.8]

  • implement dry-run builds and cleans (print what they would do without actually doing it)
  • special handling for container packages (celestialSources, irfs) for various cvs operations: checkout, update, commit, tag [tag is done as of Nov. 3].

  • allow cvs checkout with offset (e.g. from users/myArea) [Done as of 14 Nov. ]

  • Enable "clean" for a container, but with an "are you sure?" warning dialog. [done in 0.9.2]

Bugs

  • After adding a new package, SCons init crashes. (Fixed 9/26)
  • Unpleasant scrolling behavior in 'pkg out' panel   (Fixed 10/1)
  • SCons operations counter does not get cleared when init operation fails. (Fixed 11/18, version 0.8.5)
  • If the specification of scons command doesn't resolve to an actual file (e.g., if the default setting of scons is not in the user's path) GoGui crashes. At the very least should get rid of default and force user to supply something since this default often causes the crash. [Done in 0.9.2]

  • Specifying a path starting with /afs to Qt file browser typically causes GoGui to hang because it's trying to do completion. Should either disable completion or allow user to enable/disable. [As of 0.9.3 start in user's home directory; helps to avoid hangs if user navigates carefully]

  • When toggling exclude on a package via exclude icon or via Build menu item, display does not update; user needs to click on a package (same or different) to see the red X appear or be cleared.  It does work properly when the operation is done from the context menu. 

Windows-specific

  • Container checkout from GoGui (this might work already for most Windows users; need a guinea pig). (Verified as ok 11/13)
  • 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. [Done by Dec.10]

  • 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 [Done but not yet useful]

  • 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 nearly fully functional on Linux; 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.  [As of Dec. 18  RHEL3, RHEL4, Windows and Mac builds are available via ftp. RHEL3 and RHEL4 executables are installed at SLAC and (thanks to Heather) there is a suitable GLAST_EXT directory for RHEL3 as well as RHEL4]

  2. 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.  Reasonably complete, but does not mention a few of the latest features

* *Early Windows users should be not only hardy but also public-spirited. The WIndows release can do almost everything the Linux version can, but since it won't build developer-friendly project and solution files it's not of much practical use yet. The GoGui executables for most Windows releases there are dynamically linked, hence users will need a few extra libraries. For these, download the file QtForGoGui.zip.

  • No labels