CADSWES Maintenance Accomplishments -- April 2013 (edit 5-14-2013) RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Releases and Patches RiverWare 6.3 prerelease was released on April 29, 2013. Release notes may be found in the RiverWare online help. Creating this release involved: 1. Organizing and writing the release notes 2. Testing the release executable 3. Generating an updated set of online help files in PDF format 4. Managing the transition of code from the development area to the prerelease area 5. Administering and updating the configuration files for building the software 6. Compiling and verifying the builds 7. Setting up a regression test area for release test runs 8. Creating the release package 9. Testing the installation 10. Distributing the executable on the CADSWES web site with an email stating how to test the prerelease. Both the 32-bit and 64-bit RiverWare 6.3 Pre-release packages were tested to verify that connectivity to the HDB database through the HDB servers were functioning correctly with the currently available versions of the Oracle Client software (11.2.0.0). 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 April, the tests were updated because of changes made for the Unit Scheme task. RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Development Snapshots Prior to the RiverWare 6.3 prerelease, a 6.3 development snapshot was generated. RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Download, Installation and Release Process Updated Installation Guide: Removed the ACROREAD_PATH environment variable setting instructions -- temporarily replaced with instructions for setting up the PDF file reader program association. Will re-direct to a new online page when it is put in place. Updated the online document and related files with the new riverware.org web page address. Updated email address from cadswes.colorado.edu to colorado.edu. Documents include Installation Guide, License Server Configuration Guide, Roaming License User Guide, and Dongle License User Guide. Flexera InstallShield: 1. Converted the current snapshot project files (both 32-bit and 64-bit for VS 2010 version) to work with the IS 2012 release. Testing the install files and working on the new warnings from the compiling. 2. Created and configured new prerel project files for generating the 6.3 pre-release snapshots. 3. Per Neil Wilson's instructions, added the old HDB server files back to the list of the release files. Updated the IS project files and included files in the release folder. 4. Removed the references and instructions to ACROREAD_PATH environment variable set up in all of the 6.3 project files, which are displayed in the final install successful window. RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Licensing IBM ILOG CPLEX licensing changes: CADSWES has entered into an agreement with IBM which allows CADSWES to include use of IBM optimization software as part of a RiverWare license. Specifically, users can now purchase licenses which allow them to use the IBM Rational ILOG Optimization Studio libraries (CPLEX and Concert) as part of the RiverWare license. These libraries are used by the Optimization controller during an optimization run, so RiverWare optimization users will need to either license them directly from IBM as before or through CADSWES. The RiverWare licensing procedure were modified to reflect the new agreement. RiverWare uses the Reprise License Manager library. Reprise supports the licensing of multiple features within an application. Initially there were two features - "RiverWare" and "RiverWare Viewer". To support the modified licensing procedure two new features were added - "CPLEX from CADSWES" and "CPLEX from IBM". Optimization users will need a license with the "RiverWare" feature and one of the CPLEX features. The RiverWare license manager C++ classes were modified to support the two new features. The classes are rwLicense (which encapsulates knowledge of RiverWare licenses), cwLicense (which provides an abstract interface for all license manager libraries) and RepriseLM (which provides an interface to the Reprise license manager library). 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. Updated all the license e-mail template files and related files with the new riverware.org web page address and links. Updated email address from cadswes.colorado.edu to colorado.edu. 2. Created and testing the new license key template files which contain the new feature key of ILOGfromCADSWES and ILOGfromIBM. RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Development Environment / Software Tools Visual Studio 2010: Work was continued from last month to get the HDB Server built with Visual Studio 2010 to work correctly when connecting to the HDB database. This was successfully accomplished using oracle DLLs from Oracle Client 11.2.0.3, which is only available as a patch file through Oracle support. Connectivity was also successfully accomplished using Oracle Instant Client 11.2.0.3. We decided to ship the former HDB Server built with Visual Studio 2008 in the new RiverWare 6.3 release because this will not require users to update their Oracle Client installations. A new HDB server will be shipped in the future when new development in the server requires it. C++ Memory Analysis Tools: We took a quick look at a 64-bit Windows version of the C++ memory analysis tool we had used in the past, attempting to apply it to the current 64-bit RiverWare build. This was done with IBM's "Purify" version 7.0.1 for 64-bit Windows. Some initial difficulties have dissuaded us from pursuing continued use of this tool, and of the related "Quantify" profiler, as more modern alternatives to Purify and Quantify are now available. Investigating Visual Studio 2010 slowdown: CADSWES staff had been experiencing extremely sluggish performance when executing RiverWare from within the newly adopted IDE, Visual Studio 2010. For example, on some machines, RiverWare ran seven times slower when executed from within Visual Studio 2010. While this performance problem did not affect licensees of RiverWare, it negatively impacted the development process. Software engineers explored possible causes and remedies for this slowdown. A solution was identified in early May. In-house GIT class: For the benefit of CADSWES staff not yet familiar with the git source control application, Patrick Lynn presented an in-house afternoon course in which an overview of the tool was presented along with detailed descriptions of its use within the builds managament system. The class was attended by Jessica Lee, Mitch Clement, and Tim Magee. RIVERWARE RELEASES, SOFTWARE MAINTENANCE and DEVELOPMENT ENVIRONMENT Software Maintenance Qt3-to-Qt4 Port -- SCT: Some work on porting the SCT's series display tables was started and put aside a year ago, in March 2012. This was picked up again in April 2013 and was completed in early May. This will be included in the RiverWare 6.4 release (not the upcoming 6.3 release). The SCT -- its "Series Slots" tab -- supports a spreadsheet-like editable display of RiverWare series slots in four distinct views: two axis orientations (time horizontal and time vertical), and optionally with a configurable time aggregation feature. Each of these views consist of two distinct synchronized data display tables: a row-header table and an SCT data table. These were reimplemented in Qt4's model/view architecture composed of specialized subclasses of QTableView, QAbstractItemModel, and QAbstractItemDelegate. The SCT supports its own application-level cell selection representation, in slots and timesteps, computed from each SCT view's two QTableViews; this provides cell selection stability when switching axis orientations or turning on or off timestep aggregation and simplifies the implementation of operations on slots. In April, two temporary transitional architectures aided development: 1. Deployment of both the old Qt3 and the new Qt4 implementations within the SCT's Series Slot tab. This allowed us to dynamically compare the appearances and behaviors of the two implementations. The Qt3 implementation was removed when it became incompatible with subsequent development changes. 2. Use of the default QAbstractItemDelegate implementation for much of the QAbstractItemModel development before replacing that with a custom SCT delegate. (In Qt4, this delegate supports custom painting and editing behaviors) External-application support for viewing PDF files: RiverWare no longer makes use of the ACROREAD_PATH environment variable to locate the program used to display PDF files, including RiverWare Help. Instead, RiverWare allows the Windows system to determine the appropriate application -- typically the most recently installed version of Adobe Reader. The implementation for viewing RiverWare Help (a set of related PDF files) has also changed. RiverWare now makes use of Qt4's "Desktop Services" to display those PDF files. --- (end) ---