Tuesday, July 31, 2007

Installer Progress Report

Hello. It's been a few days since my last update. I've made some good progress, and I'm on track for my Thursday release with the goals I've set for myself. The main focus of this release will be to incorporate the dependency checking to some degree so that only missing dependencies are installed. With this eventually will come germane dialog screens that inform the user of which dependencies were located (multiple MySQl/Tomcat/etc), and giving them the choice of which one to use, or to specify another one all together. At the very least this release will be able to detect MySQL and Java and proceed as necessary. I'd also like to implement the dialog logic so that the user can select which MySQL install to use, and actually that is fairly easy. Today I broke a lot of ground in way of achieving that goal, actually.

  • Screen Logic - I've got all of the dialog logic working so that I'm in full control of which screens get displayed to the user based on the value of any variable of my choice.
  • Dynamic Selection - With the help of BitRock support, I've figured out how to populate a drop-down selection menu with variable data representing valid dependency installs (i.e multiple MySQL installations).
  • Dynamic Components - Using similar logic to that of the screen control, I can now control which components of the OpenMRS system are actually installed. We bundle all of the depends with the installer, but depending on the result of the dependency check, only the needed ones are ever unpacked (installed) during the install process.
It may only be "three" things, but those three items are huge milestones in the installer. In fact, those three elements are the cornerstone to the dependency checking interface into BitRock; this is the stuff that makes the installer worth it's weight in gold. I'll hit it hard tomorrow evening and transition into Thursday morning preparing for my evening release. By then, I anticipate a lot of progress in a few other small areas such as:


  • Moving any dependencies we install to a standard location
  • Cleaning up the install folder after installation, not leaving behind any unnecessary files
  • Clean up the environment variable exporting so that it is determined by the information that the dependency checker determines or that the user selects.
I'll keep everyone updated, take care.

No comments: