CADSWES Maintenance Accomplishment Report Compilation -- December 2015
Phil, edit 1-19-2016

December 2015 Maintenance Highlights:

  1. RiverWare 6.8 Pre-Release and two development snapshots
  2. Five (5) bug fixes.
  3. Plotting and Output Architectural Proposal
  4. Plot Appearance Improvements
  5. TCL Upgrade to solve Model Loading Problem, Revisited.
  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 RiverWare 6.8 Pre-release was sent to all users on 12-22-2015 for testing and acceptance. This involved writing release notes, regenerating the help PDFs, updating the builds areas, creating the release executable, updating the website, and sending out the release notification. Release notes can be found on the RiverWare.org website.

(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 December, two documents were produced:

Plotting Appearance Improvements

The border and spacing around and inside RiverWare plot panels, and in between the plot panel and the axes, have been removed.  This simplifies the appearance of plots. This is a followup from updating our Qwt plotting library from Qwt 5.2.3 to Qwt 6.1.2, also being done for RiverWare 6.8.

TCL Upgrade

TCL is a third-party software utilized in loading and interpreting RiverWare model files. The version of TCL used by RiverWare was previously updated within the 8.5 series from 8.5.1 to 8.5.18 to address a crash that occurred when loading a user’s model. The change, however, resulted in a slowdown of up to 10% in the overnight running of some regression tests. A potential fix for this was tried to eliminate the writing of continued separate lines for the data in long time series so that these lines do not need to be rejoined during loading. This did not improve the slowdown in regression tests.

A second attempt at a fix was successful, accomplished by upgrading TCL to the most recent 8.6 version (8.6.4). This fix required minor changes to some TCL method calls made from the RiverWare code, but resulted in restoring regression test run times to prior levels. The new version of TCL was incorporated into the RiverWare build process. This involved:

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

None reported for December 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.

In December, the  slowdown of certain tests that occurred in previous months was further monitored and found to be improved after the TCL version was updated to the current version.  In addition, the tests were updated and or restarted after the version number was increased for the pre-release.

(II.E) Download, Install and Release Processes

(II.F) Updates to license software/procedures

Reprise: Statically Linking Library for 64-bit Builds

Reprise is the licensing software that is used by RiverWare. The RiverWare executable developed to use static linking to Reprise was tested and found to work correctly. However, when a statically linked 32 bit executable was attempted, there were errors due to multiply defined symbols in the dongle libraries of Reprise and FlexLM (FlexLM is the prior license software used by RiverWare, which is still used for various reasons by some customers on 32 bit). In consultation with Reprise customer support, several approaches were tried to fix these conflicts, but none were successful. It was decided that the 32 bit build of RiverWare would continue to use dynamic linking to Reprise, but the resulting 32 bit executable would be placed on a password protected area of the RiverWare web pages and be available to customers by request only. This is due to security concerns from hacking of the Reprise dynamically linked library (DLL) file.

RiverWare configuration files were modified to link statically on 64 bit and dynamically on 32 bit. These changes were incorporated into the RiverWare build process by creating 32 and 64 bit package files, modifying the window configuration process for development machines, committing the necessary RiverWare source code changes, and updating all development machines with the Reprise changes.

Subtasks for these changes include:

  1. Tested the RiverWare executable which has RLM library statically linked.
  2. Created a testing InstallShield project file for generating the install file that does not include the RLM DLL file in the release.
  3. Revised the internal document Build Generation Guide.

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

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

None reported for December 2015.

--- (end) ---