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

November 2015 Maintenance Highlights:

  1. RiverWare 6.7.3 Release
  2. Four (4) bug fixes.
  3. Plotting and Output Architectural Proposal
  4. RiverWare Qt4 to Qt5 Port
  5. TCL Upgrade to solve Model Loading Problem
  6. Reprise Library / RiverWare Linking Method Change
  7. Ongoing: Monitoring and maintaining daily RiverWare regression tests.
  8. 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 addressed:

  • 5686: In certain situations, the Groundwater Storage object incorrectly computed negative storage due to Head Based Percolation. Now, the Head Based Percolation is limited to be less than the previous Storage, converted to a flow. In addition, the Groundwater Available for Pumping is constrained to be greater than or equal to zero.
  • 5688: A crash could occur when performing an import (resize) to an accounting slot.
  • For the Reach Pan Evaporation method, the Reach Pan Coefficient can now be greater than 1.0. Previously the Reach issued an error if this value was greater than 1.0.

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

The following bugs were fixed:

Plotting and Output Architectural Proposal

Users have expressed the desire to have more user-friendly and better looking plotting in RiverWare. Sponsors have allocated funds for improvements, but before these are implemented, it seemed prudent to revisit the way that users create, save, and edit plots and other output devices. For example, there are multiple dialogs where the user can select slots to plot and configure the layout (E.g. 2X1 curves) of the plot. In both places, the user can edit the plot and the interaction between them is not very intuitive. In addition, the plots use a “Save” paradigm which has never been easy to explain or use. In November a document was started that will list deficiencies, requirements, and a proposal to improve the plots. This document in located in /projects/riverware/doc/plotting/PlottingOutputPlan.fm

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 a version of Qt5 provisionally built last spring. That work did not result in a RiverWare executable. In November, the most current version of Qt5 (Qt 5.5.1) was obtained and built from source code, dependent ancillary libraries used by RiverWare were built with that new version -- see below -- and RiverWare itself was built, resulting in a basically working RiverWare executable. This was accomplished in the 64-bit environment, both debug and release builds. Some work was done for the 32-bit builds, but was not complete. More testing of this RiverWare build will be needed. The RiverWare Qt5 port will not be part of the upcoming RiverWare 6.8 release.

The ancillary libraries built with Qt 5.5.1 include the following. Our "win-config.pl" perl script tool for installing the required libraries onto a CADSWES Windows development machine was enhanced to support these library builds:

  1. Qwt 6.1.2
  2. RdfToExcel
  3. Quazip 0.7.1
  4. QsLog 2.0b3

The following document describes in detail this RiverWare porting and building work:

TCL Upgrade to solve Model Loading Problem

TCL is a third-party software utilized in loading and interpreting RiverWare model files. In investigating bug 5687 where a crash was occurring on model load, it was found that the problem was occurring within TCL after a call to interpret a particular model file line. Trying to debug within TCL was not successful, so the version of the software was updated from 8.5.1 to 8.5.18 (the current 8.5 release). This update fixed the crash and allowed the model to load successfully.

Updating the TCL version required building the new source code with Visual Studio 2010 on both 32 and 64 bit platforms. Include paths and library paths in RiverWare were updated to point to the new version, and a new compilation symbol had to be introduced to allow RiverWare source code to compile successfully with TCL 8.5.18. Packages for 32 and 64 bit were created and incorporated into the win-config process so that development machines could be updated with the new TCL libraries and dlls.

With the new version of TCL, a slowdown was noticed in some of the regression tests that are run nightly for RiverWare. This slowdown is being investigated.

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

DevPartner

A trial copy of DevPartner was installed on a development machine to see if it would be useful in testing for memory problems during a crash on model load (Bug 5687). This was run with several configurations, but either did not detect any problem or else crashed before the problem line involved in this bug was reached. The one-week trial period was allowed to expire without purchasing a permanent copy of the software.

(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.

In November, a slowdown of certain tests was noticed. After tracing through the logs, it was found that the updated version of TCL was the cause of this slow down. This will be investigated in December.

(II.E) Download, Install and Release Processes

 

(II.F) Updates to license software/procedures

Reprise Library / RiverWare Linking Method Change

Reprise is the licensing software that is used by RiverWare. To avoid using the Reprise dynamically linked library file, which is susceptible to hacking to bypass the licensing, RiverWare was configured to link with static Reprise libraries. This means that the licensing code is compiled directly into the RiverWare binary executable file and does not rely on the separate Reprise dll file. This statically linked executable is being tested. If all aspects of license functionality work successfully, the static linking will be incorporated into the RiverWare build process.

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

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

None reported for November 2015.

--- (end) ---