CADSWES Maintenance Accomplishment Report Compilation -- May 2017
Phil Weinstein, edit 7-14-2017 (a).

May 2017 Maintenance Highlights:

  1. Substantial completion of RiverWare Visual Studio (compiler) upgrade from VS 2010 to VS 2013.
  2. RiverWare 7.0.7 Patch Release (5-11-2017).
  3. RiverWare 7.1 Development Snapshot with VS2010 to VS2013 upgrade.
  4. Twelve (12) completed bug fixes.
  5. Ongoing: Monitoring and maintaining daily RiverWare regression tests.
  6. 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:

RiverWare 7.0.7 (5-11-2017) Release Notes:

Slope Power Reservoir Interpolation:
The Slope Power Reservoir was improved to not issue table interpolation errors during intermediate calculations. This change affects iterative algorithms including max outflow computations and RPL functions like SolveSlopeStorageGivenInflowHW, SolveSlopeStorageGivenInflowOutflow and TargetSlopeHWGivenInflow.

Bug Fixes -- the following eighteen issues were addressed:

  • 5874: In Scripts, the minimum value for a scalar slot editor slider was not shown.
  • 5896: In the RPL Set Comparison tool, the RPL Sets to Compare dialog opened too wide.
  • 5901: In plotting, Marker labels did not display unless a line style was selected.
  • 5925: Charts could open too large and resizing made them disappear.
  • 5930: Optimization failed for certain reasonable policies.
  • 5933: A crash could occur when evaluating expression slots that called invalid functions.
  • 5939: The Script Editor retained changes after a cancel.
  • 5945: RPL Comments with multiple paragraphs were not wrapping correctly.
  • 5946: Certain RPL functions on the slope reservoir could incorrectly set slots.
  • 5947: The RPL function GetMinSpillGivenInflowRel could calculate incorrect spill values when Unregulated Flow 2 and 3 are used.
  • 5948: RPL comments were still modified even after a cancel.
  • 5950: A crash could occur when copying/pasting a RPL statement.
  • 5951: A crash could occur when deleting a RPL statement after showing statements in the set editor.
  • 5952: A crash on model close or model load could occur when a geospatial image is used.
  • 5957: A crash could occur when RiverWare exits after certain RPL editing operations.
  • 5958: Creating an SCT for Integer Indexed Slots did not always work.
  • 5959: On the power reservoir, the Plant Power Table With Units lookup was improved to not error in certain cases.
  • 5961: Within the Soil Moisture methods on the Water User object, negative Soil Moisture could be computed. This led to a failure in water quality salinity methods.

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

The following twelve bugs were fixed:

  1. Bug 5541: File association after install of 6.5 and 6.5.1.
  2. Bug 5947: The RPL function GetMinSpillGivenInflowRel could calculate incorrect spill values when Unregulated Flow 2 and 3 are used.
  3. Bug 5952: crash when loading a model in geospatial view
  4. Bug 5956: POSAT crash when viewing solution info for a goal that is modified after the run
  5. Bug 5959: On the power reservoir, the Plant Power Table With Units lookup was improved to not error in certain cases. (Neumann)
  6. Bug 5961: Within the Soil Moisture methods on the Water User object, negative Soil Moisture could be computed. This led to a failure in water quality salinity methods. (Neumann)
  7. Bug 5962: Keyboard shortcut (Alt+E) fails for expression series slot.  On the expression slot, the "Evaluate" shortcut key was changed to F9 due to the previous shortcut conflicting with other operations.
  8. Bug 5958: Creating SCT for Integer Indexed Series Slots didn't always work. 
  9. Bug 5972: optimization error "simplifying expression".
     
  10. Unfiled Bug: Under some conditions, RiverWare was logging a large number of errors with the Windows event management system. These were triggered by certain exception types that do not represent errors, so these are no longer reported to the event manager.
  11. Unfiled Bug: Borg-RW: Incorrect creation of ascending/descending table column inputs.
  12. Unfiled Bug: Debugged optimization "infeasibility" in the Visual Studio 2013 build with a new CPLEX library version.

Significant work was done on the following bug:

Code Refactoring:

The Slope Power Reservoir slope storage calculation was refactored for improved maintenance, readability, and understanding.

Added BCM (Billion Cubic Meters) and related flow units:

Similar to TCM (thousand cubic meters) and MCM (million cubic meters), the following units have been added for RiverWare 7.1. This applies to both conventional units (e.g. used on slots) and RPL units. These definitions are expressed in the "units" and "RplUnits" text files deployed with the RiverWare executable.

Uniform Snapshot Camera-Themed Icons:

RiverWare 7.0 and prior versions had inconsistent graphical "motifs" to refer to Snapshot-object-related functions and objects, making use of essentially two, unrelated "camera" graphics. A new 24x24 pixel "Snapshot Manager" camera icon, e.g. for the Workspace toolbar, is now a graphic component within the 40x40 pixel Snapshot-Object (special Data Object) simulation object icons. This was done for RiverWare 7.1.

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

RiverWare Visual Studio Upgrade (from VS 2010 to VS 2013):

Upgrading RiverWare to Microsoft Visual Studio 2013 (C++ compiler and integrated development environment) has been an ongoing project, with work spanning several months. Part of the effort includes upgrading to new versions of 3rd party libraries, either downloading libraries as precompiled binaries or building libraries from source.

There are eighteen 3rd party libraries which RiverWare uses and there are dependencies between the libraries, Visual Studio and Windows which can sometimes make the path forward difficult, if not impossible. For example, we would prefer to use VS 2015 (or perhaps VS 2017) but Oracle Client requires VS 2013, so Oracle Client is preventing us from moving beyond VS 2013. Furthermore, VS 2013 isn't supported on Windows 10, so Oracle Client is preventing us from moving beyond Windows 8.1, and Microsoft has stated that PCs based on new CPUs will require Windows 10, so Oracle Client may constrain our ability to buy new PCs. This is but one example of the types of problems which arise with RiverWare's complex development environment. Navigating the dependencies is difficult but necessary to ensure RiverWare's future as a supportable product.

In May, focus turned to the 32-bit development environment. The 32-bit 3rd party libraries were either downloaded as precompiled binaries or built from source. Also in May a few "straggler" issues were resolved. By the end of May the Visual Studio 2013 port was for the most part complete – there were working 64-bit and 32-bit release and debug executables available to begin testing.

May accomplishments include:

The following document describes the process of acquiring and building RiverWare's 3rd party libraries:

Adoption of OIT BitBucket Server repository hosting service:

CADSWES moved the internally hosted git repository for the RiverWare source code to the BitBucket Server hosting supported by OIT.

(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

(II.F) Updates to license software/procedures

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

None reported for May 2017.

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

None reported for May 2017.

--- (end) ---