CADSWES Maintenance Accomplishment Report Compilation -- March 2017
Phil Weinstein, edit 4-05-2017 (a).

March 2017 Maintenance Highlights:

  1. RiverWare 7.0.6 Patch Release (3-23-2017)
  2. RiverWare 7.1 Development Snapshot (3-24-2017)
  3. Twelve (12) completed bug fixes.
  4. Progress on Visual Studio upgrade research (from VS 2010 to VS 2013)
    ... A runnable 64-bit RiverWare build with VS 2013 was achieved on 4-3-2017.
  5. Progress on Evaluating CU OIT BitBucket Server repository hosting service.
  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:

RiverWare 7.0.6 (3-23-2017) Release Notes:

RPL Units
RPL Units were added for the FlowPerTime unit type. This allows RPL Policy to reference slots with this unit type.

Bug Fixes
The following issues were addressed:

  • 5858: On the Periodic Slot, the delete column operation did not correctly adjust numeric column headers.
  • 5912: On some Table Slots, adding or deleting columns did not correctly update units.
  • 5913: Within the SCT, when switching series sheets, the vertical time scrolling could become out of sync.
  • 5917: A secondary bisection algorithm was added to the Level Power Reservoir's solveMB_givenEnergyInflow dispatch method for better iteration and convergence.
  • 5923: Within plotting, the alignment of grid lines to the right axis was not working correctly.
  • 5924: Particular scaled unit combinations showed incorrect values (e.g. 1000 ML and 1E6 GL).
  • 5926: A crash could occur in the Reservoir's Future Value category, Cumulative Storage Value Table method, when changing the run timestep.

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

The following bugs were fixed:

  1. Bug 5617: Non-convergence when solving given inflow and energy. A secondary bisection algorithm was added to the Level Power Reservoir's solveMB_givenEnergyInflow dispatch method for better iteration and convergence.
  2. Bug 5858: Periodic Slot: Delete column doesn't adjust numeric column headers.
  3. Bug 5864: Patterned legend and plot lines appear different if thickness is greater than 1.
  4. Bug 5881: Canceling a New Script operation still creates a new script.
  5. Bug 5912: Inserting columns in table slots with different units messes up the units on the existing columns.
  6. Bug 5913: SCT, switching Sheets, vertical time scrolling out of sync.
  7. Bug 5923: Alignment of plot grid with right axis is not working.
  8. Bug 5924: Numeric display incorrect when Scale equals scale of unit with respect to standard unit (e.g. 1000 ML).
  9. Bug 5926: A crash could occur in the Reservoir's Future Value category, Cumulative Storage Value Table method, when changing the run timestep.
  10. Bug 5927: Some script errors not reported when run from dashboard or script editor.
  11. Bug 5930: Optimization fails for some policies that look reasonable
  12. Bug 5933: Crash when evaluating expression slot that calls invalid function

Additionally, analysis was done on the following bug:

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

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

Periodically CADSWES upgrades the version of Microsoft Visual Studio being used for RiverWare development, and is currently upgrading from VS 2010 to VS 2013. This involves several steps, among them:

There are a substantial number of 3rd party libraries RiverWare uses -- Qt, ICU, CPLEX, FlexLM, RepriseLM, GDAL / MrSID, NetCDF / HDF5, Oracle Client, Google protocol buffers, QuaZIP, Qwt and Tcl. The "Building RiverWare Related Software" document describes for each library whether it's downloaded or built from source, and the instructions for doing so. Unfortunately the document is describing a moving target -- websites change, procedures for building libraries from source change, and so on. For example, the instructions for building GDAL / MrSID, NetCDF / HDF5 and Qwt are substantially different now than they were when the document was last updated. In March the libraries were either downloaded or built from source (upgrading to new versions when appropriate) and the document was updated to reflect the new instructions. Maintaining the document is a mixed bag. On the one hand it's updated knowing that the next time CADWES goes through this process the target will have moved again, and parts of the document will be out of date. On the other hand it does represent "best practices" at the time it's updated and can provide a road map the next time though the process.

In March 2017, the following tasks were completed:

Evaluating CU OIT BitBucket Server repository hosting service:

Git is the revision control system used by CADSWES for source code and model files. There are desktop clients as well as web interfaces for Git. The desktop clients provide read / write access to the Git repositories while the web interfaces provide read-only access. The Git repositories have been hosted on the CADSWES Linux server, but CADWES is now considering moving the Git repositories to the CU cloud. Over the past several months test repositories were established in the CU cloud.

In March 2017, we continued to investigate the possibility of moving the internally hosted git repositories to the BitBucket Server hosting supported by OIT. The primary RiverWare source code repository was cloned to the OIT site and then developers explored the functionality available via the web for accessing that repository. 

Software developers evaluated working with the cloud-base repositories. To a large degree the transition is transparent; the desktop client currently in use, Git Extensions, works equally well with the locally hosted repositories and the cloud-based repositories. However, the web interfaces would not be available for the cloud-based repositories -- they require a locally hosted repository and the effort to mirror the repositories on the local host would be too burdensome. (It should be noted that the web interfaces provide capabilities not available in Git Extensions, for example searching the repository by committer.) To address this, alternative desktop clients were evaluated, with Atlassian SourceTree being the "winner". It provides a clean, intuitive interface and the features provided by the web interfaces.

SQL Developer:

SQL Developer is a tool which enables developers to examine and modify SQL databases such as Oracle using a modern user interface. In March SQL Developer was installed on two computers. To use SQL Developer effectively a user must be logged into the database as an administrator which creates a "high reward / high risk" situation. A novice (new to SQL databases and SQL Developer) could easily do something "not good". To reduce the odds of this, the novice in question took a tutorial on SQL Developer.

(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 March 2017, the 32 bit build machines had to be updated regularly due to conflicts in the merge. This prevented the regression tests from running each night.

(II.E) Download, Install and Release Processes

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

--- (end) ---