CADSWES Maintenance Accomplishment Report Compilation -- October 2015
Phil, edit 12-14-2015.

October 2015 Maintenance Highlights:

  1. RiverWare 6.7.2 Release
  2. Six (6) bug fixes.
  3. Qwt Plotting Library Upgrade
  4. RiverWare Qt4 to Qt5 Port
  5. CADSWES Software Maintenance / FY 2015 Report Draft
  6. Ongoing: Monitoring and maintaining daily RiverWare regression tests.
  7. Ongoing: Installation Process and Licensing development and administration.

Report contributors:

(II) RiverWare Software Maintenance

  1. Releases, Patches and Snapshots
  2. Software Updates, Bug fixes (not associated with new development)
  3. Development tool improvements; issue tracking software; modelcomp
  4. Enhancements or changes to regression tests (not part of development tasks)
  5. Download, Install and Release Processes
  6. Updates to license software/procedures
  7. Updates to download/install/configure user documentation
  8. Modification to Web pages for downloads and installs

(II.A) Releases, Patches and Snapshots

The following releases were generated this month:

      

The following bugs were fixed:

  • 5589: In the RPL Search and Replace utility, the statement names were shown instead of the block names.
  • 5673: Copying slots to data objects unnecessarily replaced final digits in the slot names.
  • 5675: On Storage and Level Power Reservoirs with unregulated spillways, when solving given Inflow and Outflow, the unregulated spill is now constrained to be no larger than the volume of water above the spillway crest.
  • 5979: When creating an accounting supply from the Open Account dialog, the supply attributes were not always preserved.
  • 5681: In Model Reports, heading text was always bold, even when a normal weight font style was specified.
  • 5683: In the Output Canvas, Flow Line reference slots were being changed as a result of creating an object or changing the name of an existing object.  If you have created any Flow Lines, you should check your slot references to ensure they are correct.
  • 5684: Newly created RPL numeric values were using the default precision (8 digits) instead of the set's precision.

(II.B) Software Updates, Bug fixes (not associated with new development)

The following bugs were fixed:

Qwt Plotting Library Upgrade

Qwt is the open source C++/Qt library used in RiverWare to implement plot dialogs. After an analysis was done for upgrading that library from Qwt 5.2.3 to Qwt 6.1.2 in the prior month, that RiverWare port was accomplished in October 2015. Several aspects of the newer Qwt version had significant architectural differences, notably a completely revised legend API which accommodates the possibility of a custom implementation. No notable functional or graphical enhancements were introduced with this upgrade, but it positions us better for the development of future plotting enhancements. This was also a prerequisite for the Qt 4 to Qt 5 port of RiverWare which was started this month -- see below.

Major porting tasks completed in October include:

  1. Building Qwt 6.1.2 from source code, and deploying it within our Windows development build system, including modifications of our win-config.pl tool. Both 32-bit and 64-bit Windows MSVC builds were required.
  2. Modifying RiverWare build source files, EngrObjs/riverware.pro and Makefiles/riverwarebase.pro.
  3. Creation of temporary stub classes for eliminated Qwt classes, primarily QwtPlotPrintFilter and QwtScaleTransformation.
  4. Various data type changes, including:
    1. Basic global data type substitutions. The new Qwt version relies more on basic Qt data types.
    2. QwtScaleDiv is now passed by value instead of by pointer.
    3. QwtSymbol is now passed by pointers to dynamically allocated instances.
  5. Modifications of printing and plot image export using QwtPlotRenderer.
  6. Modifications for changes to the QwtScaleTransformation class hierarchy. This is used only for our custom "probability scale" which is applied only to percentage series values.
  7. Extensive recoding of plot legends, many aspects, including special handling for Markers conditionally shown in the legend. The new Qwt library has a more extensible architecture for custom legend implementations.
  8. Adaptation of our custom code to support series having NaN values. NaNs are handled as gaps in the drawn slot curve.
  9. Recoding of special mouse operations in the plot canvas: rubber-band zoom and re-centering.

Although, as mentioned above, while no feature improvements were introduced due to this Qwt upgrade, we did enable "anti-aliasing" (smoothing) in RiverWare 6.8 for the drawing of slot curves within plots.

Additionally, an analysis was done on other simple ways of improving the appearance of plots. Some experimentation was done, using the new Qwt library, to eliminate the gap between the plot and its axes.

RiverWare Qt4 to Qt5 Port

RiverWare 6.7 and recent prior RiverWare versions use Qt 4.8.5. In October we devised changes to the RiverWare code base to compile RiverWare source code with Qt 5. A provisional Qt 5 build we created in June (Qt 5.4.2) was used. Changes were applied in such a way that this code base could still be compiled with Qt 4.8. This initial step does not result in a working executable -- that is being done in November using Qt 5.5.1.

CADSWES Software Maintenance / FY 2015 Report Draft

The monthly CADSWES Software Maintenance reports were compiled into an annual report for the fiscal year ending last month (September 2015). This includes information about work that went into producing releases, maintaining our development environment and testing tools, supporting installation and licensing, and fixing reported bugs.

This draft report is available here:

(II.C) Development tool improvements; issue tracking software; modelcomp

None reported for October 2015.

(II.D) Enhancements or changes to regression tests (not part of development tasks)

The regression tests continue to be maintained on a daily basis. This involves updating the regression tests to exercise new developments in the code. Also, as new code is added to the development area, the model comparisons performed in the nightly regression tests usually show differences (for example, because a new method category may have been added). When this occurs, the regression tests need to be updated to reflect the current state of the development area so model comparisons do not fail. In addition, every week, the daily history of each regression test is analyzed to determine if the run time or model size has significantly changed because of new development.

(II.E) Download, Install and Release Processes

None reported for October 2015.

(II.F) Updates to license software/procedures

(II.G) Updates to download/install/configure user documentation

(II.H) Modification to Web pages for downloads and installs

None reported for October 2015.

--- (end) ---