CADSWES Maintenance Accomplishment Report Compilation -- December 2016
Phil Weinstein, edit 1-24-2017.

December 2016 Maintenance Highlights:

  1. RiverWare 7.0 Release (12-16-2016)
  2. RiverWare 7.0.1 Patch Release (12-30-2016)
  3. Thirty-One (31) completed bug fixes.
  4. New RPL editor "Rename variable/argument" action
  5. "About" Dialog / 3rd party library citation additions.
  6. Rules Diagnostics Enhancements
  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:

RiverWare 7.0 Release:
The RiverWare 7.0 Release was sent to all users on December 16, 2016. 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.

RiverWare 7.0.1 Release:
RiverWare Patch 7.0.1 was released on December 30, 2016. Release notes are as follows:

Batch Mode
Within Batch Mode and the RiverWare Command Language (RCL), the SetRunInfo command can be used to change the run range. A new argument, !StartDate was added to this command. This argument can be used as an alternative to the !InitDate argument. 

Bugs
The following issues were addressed:

  • 5860: In the SCT, data entry behavior was misleading. Now, when data entry is initiated, the SCT is scrolled to the selected cell. In addition, when aggregated timesteps are closed, all cells are deselected. Finally, an issue was fixed where strange cell selections could occur if no cells were selected and data entry was initiated.
  • 5861: In the workspace, the Locator Window reference rectangle was too subtle.
  • 5862: In the SCT, column header fonts were not always being set.
  • 5863: Excel Database DMIs did not work for tables with more than four columns.
  • 5865: In Model Reports, Plot Pages were not scaled correctly.
  • 5868: Within a Script, setting an integer Scalar slot with the slider was not preserving the integer value.

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

In December, a concerted effort was made to clean up old and close old bugs that were no longer relevant. As a result, apart from the current bug fixes enumerated below, more than old 135 bugs were closed (they were either fixed or not applicable anymore) for the RiverWare 7.0 release. As of the release date, about 110 bugs remained on the list.

The following thirty-one (31) bugs were fixed:

  1. Bug 5478: Can't configure columns individually for Auto Max Turbine Q table
  2. Bug 5535: RiverWare gets confused when there are identical Goal/Rule names.
  3. Bug 5610: Copying a DMI Database. The copy is connected to the copied
  4. Bug 5649: Crash opening dataset dialog on modified dataset
  5. Bug 5650: Clearing WS after resetting database DMI edit dialog crashes
  6. Bug 5653: IntegerToString does not deal well with units
  7. Bug 5654: Export Import of Database DMIs do not change references to datasets and namemaps
  8. Bug 5659: 6.7 skipping breakpoints
  9. Bug 5718: Infinite WHILE loops are possible in RPL
  10. Bug 5725: Unexpected ruleset behavior
  11. Bug 5743: RiverWare can't find the help if RiverWare is started from a different directory (than the installation directory)
  12. Bug 5766: Environmment variables do not work in Tabular Series Slot Reports
  13. Bug 5802: Chart timestep slider problem with different model step size
  14. Bug 5803/5565: Inputs on slots that are not in use still propagate across links
  15. Bug 5808: Mass Balance Summary slot flow units always default to cfs
  16. Bug 5821: Set Dimensions for a Table Slot does not resize the table immediately
  17. Bug 5822: Delete Column from a Table Slot does not present a confirmation dialog.
  18. Bug 5823: Expression Slots always reduce the evaluation range by one timestep
  19. Bug 5832: Adding empty Periodic Slot as first slot in plot fails assert
  20. Bug 5835: Memory leak when a RootSelection is created from text
  21. Bug 5847: Plot legend height too small when horizontal scrollbar shown
  22. Bug 5849: Excel DMI can leave TableSlot in broken state
  23. Bug 5854: A crash occurred when using Slot Diagnostics on constrained slot values.
  24. Bug 5855: Periodic Slot dialog Delete Column enabledness problem.
  25. Bug 5860: SCT: Bad data-entry behavior in selected, off-screen cell.*
  26. Bug 5861: Locator window reference rectangle is too subtle, light gray.
  27. Bug 5862: SCT column headers not always being set to the correct font.
  28. Bug 5863: core dump when trying to DMI Periodic slot to Excel
  29. Bug 5865: Plots in model reports are not scaled correctly, clipped.
  30. Bug 5868: Setting integer Scalar slot w/Slider Script action sets float
  31. Unfiled plot bug: Internal rounding problem building tick marks.

*Detail: Gnats 5860: SCT: Bad data-entry behavior in selected, off-screen cell.

Changes to the SCT were made to address the usability problems identified with this bug. The problems primarily involved the currently selected series slot / timestep cells, to which edits could be applied, not necessarily being visible to the user. This could be because the SCT was scrolled to a different area, or the selection was within a time aggregation in which the individual timestep cells were hidden. The SCT changes included:

Additionally, analysis was done on the following bugs:

New RPL editor "Rename variable/argument" action:

CADSWES staff added a new "Rename..." operation that provides an easy way to rename all occurrences of a variable or argument within a RPL editor. The "Rename…" operation is available in the right click context menu when the current RPL selection is a variable or argument name, whether that name is part of the declaration of that name or is a reference to the value associated with the name. Note that names can be appear within statements (FOR and WITH variables names), expressions (FOR and WITH variable names), and functions (argument names). When the new operation is invoked, RiverWare first presents a simple dialog that displays the number of occurrences of the name to be replaced and allows the user to type in the new name. Once the user has entered a new variable name and clicked the OK button, the old name is replaced with the new name throughout the scope of the name's declaration.

"About RiverWare" Dialog Redesign / 3rd Party Library citations

The third party library information provided in the revised "About RiverWare" dialog was significantly expanded to include all relevant libraries used in RiverWare, and will more complete information. This is within the new scrollable formatted-text window whose content can be selected, copied and pasted (e.g. into an e-mail message or Word document).

Rules Diagnostics Enhancements:

CADSWES has improved diagnostics output by adding the priority to the Rule diagnostics context, and adding the Rule index to the Initialization Rule diagnostics context.  This allows unambiguous identification of a goal or rule, even when there are multiple goals or rules having the same name.

Video File Generation / FFmpeg utility deployment:

RiverWare 7.0 invokes an external program, FFmpeg, to combine a sequence of generated video frame image files into single a video file. Potentially relevant to 3rd party proprietary concerns, it's significant that the FFmpeg library isn't actually built into RiverWare -- not even as an externally (dynamically) linked library. To avoid any appearance of such an integration, we switched from using the "shared" distribution of FFmpeg (which includes several DLL files) to the "static" distribution (consisting of only the unified "ffmpeg.exe" executable file).

Qt5 RiverWare Port:

Apart from the filed bugs discussed above, the following other problems resulting from upgrading RiverWare from Qt 4.8.5 to Qt 5.5.1 were addressed.

FY 2016 Maintenance Accomplishments Report:

As part of the FY 2016 Maintenance Accomplishments Report (which has not yet been completed) the list of completed bug fixes as reported in accomplishments reports was reconciled with the Gnats bug database. About 85 bugs were fixed in FY 2016 (a few bugs had been closed without software changes).

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

Overnight build and regression test scripts

An important part of the RiverWare development environment is a suite of Perl scripts which perform overnight builds. Each night a scheduled task executes the scripts to check out the day's RiverWare code changes, rebuild the RiverWare executable and run a suite of regression tests to identify any unintended changes in the model.

In mid-December the scripts unexpectedly stopped working for the "builds" login on one computer. (Unexpectedly because there were no changes to either the scripts or the scheduled task.) Several hours of investigation revealed that for the "builds" login on the computer the file association for Perl (.pl) scripts had changed from Perl to Wordpad. Thus the scheduled task was opening Wordpad on the Perl script to "edit" the script, which hung until the task was killed. How the file association changed is a mystery, although we suspect gremlins. This is a good example of the "hiccups" that occur, unexpectedly, from time to time and can take several (or sometimes many) hours to resolve.

(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, with the 7.0 release, the regression tests were update more frequently and had addressed more often as the new 7.0 and future 7.1 release branches were activated.

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

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

None reported for December 2016.

--- (end) ---