Setting up the Build System (you only need to do these things once)

  • Install pmw, PyRTF, ms-dos/command line version of svn (e.g. slik)

  • Install Install Shield 12 (future versions may work but have not been tested)
  • Install Shield needs a couple things:
    • The main project file to know how to build Continuity: continuity_win_msi.ism

      Any prerequisite files that Continuity needs, currently just: Python2.5.2.prq and PyWin32Py2.5.2.prq. Place these into the SetupPrerequisites sub-directory of Install Shield. Then any msi's/required files that go along with those prerequisites: python-2.5.msi, pywin32-212.win32-py2.5.exe (to be place where the prq file dictates).

      NOTE: There are certain paths within the InstallShield project file (e.g., continuity_win_msi.ism) that currently have a specific username in them, these would need to be changed if the build process is being run by someone else and that person intends to use their own files for the release. For InstallShield version 12, please look in the Media->'Path Variables' setting to see the paths that you would need to change and then change them to point to the appropriate area.

  • Checkout Continuity from svn on your Desktop and call it cont_release -- this needs to be done at every release

  • Create Installers and icons folders, and put continuity.ico and continuity2.ico files in the icon folder
  • Create a directory called AllMglTools also on your desktop. It needs the following subfolders, extracted from compressed MglTools files found in winlib, linuxlib, i386darwinlib, etc from cont_release: Make sure that these are extracted from cont_release and not older versions!

    • MglToolsLibLinux

    • MglToolsLibLinux64

    • MglToolsLibWin

    • x86darwinLeopardMglToolsLib
  • Setup appropriate paths in <continuity>/installerTools/SetUpRelease.py (all the hard coded paths should be in the first few lines)

Actually doing a build

  • If there have been any changes in the src directories, be sure that the appropriate files have been updated in pcty/sourceTools/src as THESE are the files that get included in the release

  • Would be a good idea doing a dosToUnix run on the Unix/Mac platforms
  • Compile binaries on every platform and commit them
  • Run test cases preferably on every platform
  • Figure out what your release number is (just do an svn update and it should tell you).
    • I usually add 1 to this number to account for the changes we'll make in README.txt and cont_rel_6_3a.html as shall shortly be described
  • Edit the file <continuity>/pcty/documentation/release notes/cont_rel_6_3a.html

    • Add your new log to the top (svn log provides a good place to start)
    • Update release number and date
  • Update <continuity>/pcty/README.txt with a new date and release number

  • Be sure to commit all changes to the release notes, and update the cont_release directory to reflect the changes before proceeding
  • Run <continuity>/installerTools/SetUpRelease.py

    • At some point it will need to communicate with a mac to build the mac installer. I think you'll need to point it at a mac ip address
    • At some point it will need to communicate with rocks-86.sdsc.edu. You'll probably need an account on this machine to make this work
  • Ideally you should not actually upload the binaries to rocks-86.sdsc.edu where it can be downloaded from until you've tried installing the new version of continuity on a clean virtual machine and run all the test cases

Install Shield 12 (pure MSI project) Instructions

  • Note: These instructions may be somewhat out of date, but are probably still useful

Application Files

  • In the "Project Assistant" tab, fill out all the standard stuff.
    • Don't worry about shortcuts (yet)
    • Add all the "Application files"
      • Don't forget to put the glu.dll's in the pcty directory

Python 2.3.5 Auto-download

  • In the "Installation Designer" tab...
  • Setup the python prerequisite based on registry key
    • In the "Tools" menubar (top of window), select Prerequisite Editor
    • Application Data -> Redistributables, "Setup Prerequisite", Python2.3.5

Shortcuts

  • System Configuration -> Shortcuts

  • Right click where you want the shortcut, and choose, New shortcut to preexisting file
  • Don't forget the icon
  • Definitely don't forget the "Working directory" (it must be pcty)

Setting up environment variables

  • System Configuration -> Environment variables

  • Right click on "Environment variables", click "Add environment variable"
  • Name, it then give it a value.
  • [INSTALLDIR] is automatically set to the installation directory on the target computer.

Setting up the registry

  • System Configuration -> Registry

  • Simply manipulate the registry until it looks like what you want.
  • [INSTALLDIR] works just fine here as well
  • We still haven't found a way to set an environment variable or a registry entry based on a registry entry on the target computer.

Doing build

  • Go back to the "Project Assitant" tab...
  • Click the Build Installation icon
    • Make sure "Single Executable" is selected. Click "Build Installations".

Creating an InstallScript MSI project

  • Same as above, except...
    • In the "Installation Designer" tab, select "Dialogs"
    • Select your custom dialog

Misc