CADSWES Maintenance Accomplishments -- January 2013 (edit 2-10-2013) =========================================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Releases and Patches =========================================================================== RiverWare 6.2.8 was released on Jan 11, 2013. The release included the following release notes: ----------------------------------------------------- SUMMARY OF CHANGES IN RIVERWARE PATCH RELEASE 6.2.8 Bugs ------------------------------ The following bug was fixed: 5250 - A crash occurred on model load when there were breakpoints set in RPL predefined functions. Expression Slots ------------------------------ For expression slots, the variable ThisObject was implemented. This variable can be used to access the containing Data Object. This variable was previously available for Object Level Accounting Methods. Optimization ------------------------------ The following affects optimization users only: In RiverWare optimization, pool elevation is approximated by storage. A constraint that only references pool elevation on a level reservoir is replaced by an equivalent storage constraint without approximation error. In all other cases pool elevation is replaced with a linear or piecewise-linear function of storage. A linear function is used when a constraint is of the form "Pool Elevation ± x = y," "Pool Elevation ± x >= y," or "Maximize Pool Elevation ± x" while a piecewise-linear function is used for the other cases, "Pool Elevation ± x <= y," or "Minimize Pool Elevation ± x." Linear replacement in general is either by selecting a point tangent to the nonlinear curve, or by choosing two points that form a secant with the curve. Each linear approximation uses one of these approaches. Previously, RiverWare used the Tangent method for Pool Elevation. The code was changed to now use the Secant method. This change allows users to effectively have the same approximation for any form of a Pool Elevation constraint or objective function by specifying the same two points for Secant and Piecewise in the Pool Elevation LP Param table. All optimization users are likely to see different results as a result of this change from the Tangent approximation to the Secant approximation. To nearly replicate the previous results the Secant approximation points should be set very close to the Tangent point, but the points must be different. However, users may prefer the results obtained with different values of the secant points. Changing the points can improve or degrade approximation error depending on the nature of the solution. =========================================================================== 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. In January, the tests were updated and subsequently modified due to the new unit scheme functionality. The tests did their job and caught a few issues with the new schemes. The tests had to then be re-updated to re-do the transitional scheme. =========================================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Download, Installation and Release Process =========================================================================== (1) Ongoing: Provided daily build support. Monitored and worked on the builds and prerel areas nightly builds problem. (2) Updated the Copyright year to 2013 in the About Dialog file. Also updated the one in the prerel builds area. (Non-developer software support staff began working with our new Git source control system to make this sort of change to RiverWare source code). (3) Worked on a user's problem on opening the 6.2.8 release on a 32-bit Windows 7 machine. He got the window "Open File - Security Warning" when starting RiverWare 6.2.8. It should be a built-in security feature from Windows 7 and Vista. Waiting for his reply. (4) InstallShield: (a) Working on configuring the new project files. No new progress this month. (b) Updated the copyright year to 2013 in the source file that display the license rights at the beginning of the installation. (c) Worked on updating the Acroread environment variable setting instruction file which display at the end of the installation. Looking into adding the Windows 8 instructions. (d) Worked with Flexera support on the problem of reactivating license on torrent, which occurred when InstallShield initiated a license reactive process periodically. =========================================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Licensing =========================================================================== (1) 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. (2) Ongoing: Maintaining licenses for internal development environment. (3) Getting familiarized with Maximizer. (4) RLM Received the new license keys for building 10.0 release. Downloaded and Working on configuring and building the new release for 32-bit and 64-bit versions. =========================================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Development Environment =========================================================================== Upgrade from Visual Studio 2008 to Visual Studio 2010: Work continued to build RiverWare with Visual Studio 2010. The manifest-related error that was occurring in the 64-bit build was resolved by rebuilding the linked gdal and Qwt libraries with Visual Studio 2010. The next issue was that Qt Designer files for the GUI that were created with Qt3 were no longer compiling with the new Qt compiler. (See a description of this Qt3-to-Qt4 porting work elsewhere in this report: "Remaining Qt3 Designer UI Files ported to Qt4 Designer UI File"). Using the ported files allowed a debug 64-bit version of RiverWare to build successfully. Regression tests were successfully run, so no numeric or diagnostic differences were found in running with the new version. Tar files were created for all of the new 64 bit libraries linked to RiverWare for incorporation into the CADSWES Windows configuration process. A branch in the RiverWare git repository was created for the Visual Studio 2010 modifications so that the revised RiverWare code could be checked out to another machine without impacting the current development code base. A separate test machine was then used to build a 32-bit version of RiverWare with Visual Studio 2010. This included building Qt 4.8.4 (a minor upgrade from Qt 4.8.3 currently used in development with Visual Studio 2008), installing CPLEX Optimization Studio 12.5, and building Qwt, gdal, ClientServer, and RdfToExcel. RiverWare built and linked successfully with the new libraries, and the debug version ran regression tests without any differences. Tar files were created for the 32 bit libraries for incorporation into the CADSWES Windows configuration process. When test packages were created for the release executables, it was discovered that the release executable on 64 bit was crashing in a Qt dll when RiverWare was started. Research indicated that this could be the result of a bug in Visual Studio 2010 and that a Service Pack provided by Microsoft would fix the Visual Studio problem. The service pack was applied to the 64 bit test machine. This change meant that all of the 64 bit libraries built with Visual Studio 2010 needed to be rebuilt. Qt and Qwt were rebuilt at the end of January, and rebuilding of other libraries will be continued in February. =========================================================================== RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Software Maintenance - Qt3 to Qt4 Port =========================================================================== (A) Qt3 to Qt4 Port: Open Object Dialog A redesign and port of the Open Object Dialog was completed in January 2012, including post-development review and revisions. This work was based on these two project analysis and design documents: (1) "Open Object Dialog -- Porting Lists from Qt3 to Qt4" R:\doc\openObject\Qt4Port\OpenObjectListPort-2012-oct-19.pdf (2) "Open Object Dialog Slot Ordering and Conditional Showing Controls" R:\doc\openObject\Qt4Port\OpenObjRedesign-2012-10-26.pdf Design changes include: (1) Support for multiple selection in the Slot list, and enhancement of certain operations to operate on a mutliple-slot selection. (2) Redesigned list ordering and sorting controls. Standard sorting by clicking on a column header is now supported. (3) Advanced slot filtering capabilities, allowing the user to persistently hide slots not relevant to the use of the model. In January, the following tasks were completed: (1) Aggregate Object feature completion, e.g. multiple element deletion. (2) Aggregate Object fixes: reordering operations. (3) Advanced slot order combo box implementation: custom dropdown with multiple-level menu. http://cadswes2.colorado.edu/~philw/2013/Qt4Port/OpenObj/OrdCombo.html http://cadswes2.colorado.edu/~philw/2013/Qt4Port/OpenObj/OrderComboBoxMenu2.html (4) Removed controller-based slot filtering. (5) Revisions to address post-development reviews by CADSWES water engineers. http://cadswes2.colorado.edu/~philw/2013/Qt4Port/OpenObj/Review1.html http://cadswes2.colorado.edu/~philw/2013/Qt4Port/OpenObj/Review2.html (B) Remaining Qt3 Designer UI Files ported to Qt4 Designer UI Files The remaining eleven Qt3 UI ("Qt Designer" widget layout) files in RiverWare -- all in the DbDmi library -- were ported to Qt4 UI files, and C++ source code was revised for this change. (All of these UI files still contain some Qt3 widgets). See this webpage: http://cadswes2.colorado.edu/~philw/2013/Qt4Port/DbDmiUi/Bake1.htm --- (end) ---