CADSWES Maintenance Accomplishments -- July 2013 (edit 8-7-2013) ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Releases and Patches ==================================================== RiverWare 6.3.2 was released on July 3, 2013. The release included the following release notes: SUMMARY OF CHANGES IN RIVERWARE PATCH RELEASE 6.3.2 The following bugs were fixed: 5322: On the accounting workspace, there is improved feedback when creating supplies. 5336: Available for Diversion can now be specified (input or via rules) on reservoirs. 5340 and 5344: The time range of Series Slots with Periodic Input in periodic mode was not initialized correctly. Now they start with the correct time range and grow to encompass the run range at run start. 5342: Copy/Paste in Unit Scheme manager was not working correctly. 5343: The error message was not helpful when energy is specified but the Power Plant Cap Fraction is zero. 5345: The import/export of an aggregate series slots using a control file-executable DMI was not working correctly. Unit Schemes: When creating fully specified slot exceptions, you can now select multiple slots to create a fully specified exception for each slot. This allows you to create many exceptions for the set of slots chosen using the slot selector. For example, you can create exceptions for slots with similar but not identical names. ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Regression Tests ==================================================== 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. ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Download, Installation and Release Process ==================================================== (1) Worked on modifing the tool used for updating the version numbers in the regression test model files. (2) Updating the release generation document with all the new and changed procedure due to the version control tool switched from CVS to git. (3) Flexera InstallShield: Updating the document Project Files Configuration and Build Guide due to the changes from upgraded to IS2012 release, and the changes from the version control tool switched to git from CVS. ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Licensing ==================================================== Ongoing: Issuing Commercial Licenses: Generated and delivered (or in the process of issuing) license files to RiverWare users. Tasks included tracking the expiring licenses, contacting users to get information; generating license files; updating the license data records; providing instructions for RiverWare download, install, and floating license server manager configuration setup; and problem solving for users. Ongoing: Maintaining licenses for internal development environment. Reprise RLM: (1) Installed and built the RLM 10.0 Solaris version on maelstrom. Tested the license server set up on the Solaris system. Working on creating the Solaris license server set up instructions for TVA. (2) Tested the license with two different seat number between the one for riverware feature and the one for cplex feature in one sigle license file. This is for TVA. ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Development Environment ==================================================== New versions of Qt4 and Qwt built without Qt3 Support: (See also sections below on application-level Qt4 porting completion). The latest patch releases of Qt and Qwt were acquired and built without support for Qt3 symbols and classes. (Qwt is our plotting library). This was done primarily to ensure completion of all Qt3-to-Qt4 porting of RiverWare, the Study Manager, and all ancillary CADSWES libraries. These new Qt and Qwt libraries were deployed in the RiverWare 6.4 and Study Manager builds. The new Qt and Qwt libraries are: (o) Qt 4.8.5 (July 2013) -- replaces our use of Qt 4.8.4 (Nov. 2012) ... this includes WebKit 2.2.4 -- replaces WebKit 2.2.3. (o) Qwt 5.2.3 (Nov. 2012) -- replaces our use of Qwt 5.2.2 (Aug. 2011) The RiverWare Remote Manager Framework (the basis for distributed Multiple Run Management) was ported to Qt 4.8.5 (without Qt 3 support). The framework contains four components - the Qt Solutions Service library, the RiverWare Remote Manager, Service and Service Controller, each of which was ported to Qt 4.8.5. Because the code was written against Qt 4 it didn't use any deprecated Qt 3 classes or methods and the port was straightforward. The port was used as an opportunity to remove eighteen obsolete source files from the Remote solution - files which were first implemented in the Remote solution and were then migrated to RiverWare proper. RiverWare DSS connectivity, which was previously ported to Qt 4.8.4, was tested to verify it's working in the new environment. The RiverWare overnight build scripts were modified to support a bifurcated environment - Qt 4.8.4 for prerel and Qt 4.8.5 for builds. ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Software Maintenance - Qt4 Port ==================================================== Qt3-to-Qt4 Port Completion: The ClientServer library was ported from Qt3 to Qt4. The Client/Server library had previously been deployed as an independent ancillary library but is now among the RiverWare source code libraries. The port of the ClientServer code from using Q3SocketDevice to QTcpSocket was tested extensively with the HDB Server. This uncovered a problem when large quantities of character data were being pulled from HDB (such as in pulling a list of all agencies available as agency ids in the database). Only some of the data would be pulled by RiverWare and then RiverWare and the HDB server would get out of sync and the connection would be frozen. Stepping through ClientServer code with the debugger identified the problem as follows. When data exceeds 2048 characters, it is pulled from the QTcpSocket in chunks via a loop created between the wait() and the syncRead() methods of the Connection class. The socket's waitForReadyRead() method was called in this loop. If this method is re-called without data from the first call being completely pulled from the socket, its behavior is to block and wait for additional new data, eventually timing out and giving a return value of false, which terminates the original data pull with only partial completion and interrupts client/server communication. A fix was implemented so that if data is being pulled from the socket in chunks, the waitForReadyRead() method is not re-called on the socket until all data that is expected in the already initiated data pull has been read by the client. DbDmi, the last RiverWare application-level, internal library still using Qt3 provisions was ported to Qt4. DbDmi modules ported in July include: (1) DbDmi Import/Export dialog (2) HDB Meta-Data dialog (3) HDB Model-Run ID dialog (4) HDB Model-Run ID Edit dialog RiverWare (and the Study Manager, see below) were built with a new Qt4 build lacking Qt3 Support. This confirmed the completion of the Qt3-to-Qt4 ports of those applications. ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Software Maintenance - Icons ==================================================== Simulation Object icons are now sourced via Qt Resources The 40x40 pixel icons for Simulation Objects (from which the smaller icon versions are computed) have been moved from "XPM" source code to PNG image files which are compiled into RiverWare via Qt Resources. This set of icons had mistakenly been left out of the original migration of RiverWare icons to Qt Resources. The first step in this process was adding these object icons to RiverWare's mechanism of exporting the full set of RiverWare icons as image files and index webpages (HTML). These Simulation Object icon image files can be seen on this generated webpage: http://www.RiverWare.org/riverware/icons/RwQtIcons.html ==================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Software Maintenance - Tcl Interpreter Deletion ==================================================== In fixing a diagnostic manager bug, it was noticed that in a couple of cases in RiverWare where Tcl Interpreters are dynamically allocated for loading files, they are not being deleted, creating potential memory leaks. Deletion calls were added to the cwOutputDevice and DiagGroupMgr classes. ==================================================== STUDY MANAGER RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Software Maintenance - Qt4 Port ==================================================== Qt3-to-Qt4 Port Completion: The Study Manager was ported to Qt 4.8.5 (without Qt 3 support). Because the code was written against Qt 4 it didn't use any deprecated Qt 3 classes or methods and the port was straightforward. The port was used as an opportunity simplify the plugin and static library project files by refactoring their common portions to the new PluginBase.pri and StaticLibBase.pri project include files. --- (end) ---