We, the OpenMx Development Team, have heard from several of our users who have expressed confusion about which OpenMx version is the current stable release. As of 8 Jun 2014, it is version 2.2.4. We are using this announcement to resolve the confusion, explain the current situation, provide guidance for our users, and -- perhaps most importantly -- to apologize for any confusion or inconvenience we may have caused. The difficulties our users experienced were a result of insufficient caution on our part, relating to our submission of OpenMx to CRAN, for which we apologize.
Historically, we have distributed OpenMx through our website and our own package repository, instructing users to install the package by running
source('http://openmx.psyc.virginia.edu/getOpenMx.R') in R. We could not use CRAN because NPSOL, initially our only numerical optimizer, is proprietary rather than open-source. Consequently, for each stable release, we would compile binaries of OpenMx for Windows and Mac OS X. These binaries included an NPSOL binary and, for Mac, were compiled to take advantage of multiple processors. Multiple binaries were required for different combinations of Mac OS and R. To make all these available, we would upload them to our own package repository, along with a source tarball (for Linux users). The most recent stable build that was released in this way and publicly announced was version 2.0.1.
In early April, we planned to release OpenMx version 2.1, but we encountered difficulties compiling Mac binaries. As a result, no binaries of 2.1 were posted to our repository, and no release was announced. However, Linux users running getOpenMx.R would have downloaded the source tarball of 2.1 from our repository between then and May 19th.
On May 19th, OpenMx version 2.2.2 was accepted to CRAN. It used the SLSQP routine from the NLOPT library as its default optimizer. Subsequent feedback from the CRAN maintainers compiling under Solaris revealed issues with this initial release, and we resubmitted OpenMx version 2.2.4 on May 28th. We did not announce either CRAN release as we wished to gain experience with the release, and because CRAN does not yet produce OpenMx binaries with support for OpenMP - required for parallel processing, and, so, represented a step backward for Mac users currently using our own binaries. We wanted these custom binaries --which use NPSOL and, on a Mac, do use multiple processors--to be available on our repository prior to any announcement.
Unfortunately, producing Mac binaries fully-tested on the diverse range of OS and R we support required more time and resources than our small team had available. Therefore, our release of OpenMx to CRAN was premature: we should have waited until our local binaries were ready prior to submission to CRAN. We assumed that running
source('http://openmx.psyc.virginia.edu/getOpenMx.R') would continue to install version 2.0.1 from our repository, thus providing an older version, albeit with NPSOL and OpenMP support. To our surprise, we found that under certain circumstances it installed version 2.2.x from CRAN. This was not the desired behavior, and has now been fixed.
Finally, users running the latest R - version 3.2 - had had difficulty installing OpenMx from our private repository. This is because we had not yet made the necessary updates to our repository that would allow R 3.2 to find OpenMx. During the short period when the CRAN server farm had not finished building CRAN binaries of OpenMx, it was not possible for R 3.2 users to install the package via the getOpenMx.R script. Failing to keep our repository up-to-date was a mistake; we apologize and have taken steps to prevent recurrence.
Version 2.2.4 is the most recent stable release of OpenMx for which our own binaries are available in our repository. Again, in contrast to CRAN's, our binaries include NPSOL and are compiled to use multiple processors on a Mac. Version 2.2.4 can be installed by copy-pasting
source('http://openmx.psyc.virginia.edu/getOpenMx.R') into the R prompt and pressing return. The CRAN binaries do not use multiple processors, and do not include NPSOL. Those features are only available through the getOpenMx.R script.
Need for More Beta Testers
Part of the challenge in the production of high quality OpenMx releases is obtaining sufficient testing. We have a large collection of routine test scripts, but the scope of OpenMx is so broad that not all scenarios can be tested. Please feel free to submit self-contained scripts to add to the test suite. Also, if you are a frequent OpenMx user, and are willing to install and try out beta releases of OpenMx then please contact Joshua Pritikin email@example.com.