For those who (like me) know nothing about how installers for Windows are built, Reviewboard uses something called NSIS which is the Nullsoft (yeah, the Winamp guys) installer. This installer uses an .nsi file (which is basically a script, something between Bash and Python and specialized for the install/uninstall process), which can then be compiled into an .exe file. The NSIS installer writes the install and uninstall in the same script, which is kind of cool, and it’s got a plugin architecture. It’s robust and easy to write for.
Right now the list of stuff our installer is supposed to be doing is:
- install Python if it’s not already installed. –> done
- install setuptools (if they’re not already installed). –> In testing
- install python libraries such as pyz… should be easy_install compatible.
- install PIL, Patch and PyCripto which have installers, possibly checking for whether they’re installed already (Patch especially)
- OPTIONALLY install a database: MySQL, Postgres, Apache, etc. and the database bindings.
- OPTIONALLY install a source control system (not sure yet whether this is a good idea in general).
- The uninstaller, with an option to remove any reasonable subset of the above.
Once setuptools is installed, installing Reviewboard and many of the dependencies should be easy. Some of the non-silent installers (Patch, MySQL, etc) might prove problematic, but that’s in the future for now.
Testing VM Update:
Alongside the development I’ve been setting up a test VM (for Windows XP) where I’m gonna attempt to install our product. I actually did a test-drive of the Microsoft Virtual PC VM player, which is NOT as convenient as VMware even at setting up XP. For one thing VMware handles setting up the networking automatically, while Virtual PC does not.