Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Java: we use the Java version 1.6 JDK; there are a wide variety of packagings and installation methods if you don't already have it; ask the net about this one. Make sure your JAVA_HOME environment variable is set correctly. (On isda-build1, set JAVA_HOME=/usr/java/jdk1.6.0.)
  • Subversion: if "svn --version" results in "command not found", you need subversion. Again, packagings vary; your operating system may be able to get it for you, or download it from http://subversion.tigris.org.
  • maven: if "mvn -version" results in "command not found", you need to download the latest version of maven (currently 2.0.7) from http://maven.apache.org/download.html and install it locally, making sure to add maven's bin directory to your path.
  • Repository access: if "svn ls svn+ssh://svn.mit.edu/zest/thalia" doesn't do something useful, you can't check out the code; you need to be in the zest-cvs moira group to access the repository.
  • For the UI build only: if "lzc --help" doesn't give you useful help information for the OpenLaszlo compiler, you need to install version 4.0.2 from http://www.openlaszlo.org; this is hairy enough that it's been split off into a separate wiki page: OpenLaszlo.  If you're on isda-build1, just make sure /home/lps-4.0.2/bin is in your PATH.
  • On isdabuild1, isdasnap's maven settings are in ~isdasnap/.m2 . This includes settings.xml, which you'll need for maven deployments.

BUILD PREP

  1. Log in to isda-build1.mit.edu

...

  1. as the isdasnap user. Any test, staging, or production build is built as user isdasnap on isda-build1.mit.edu . This ensures we are installing identical executables in all environments. To ssh in, you must be in

...

  1. isdasnap 's .k5login file.

...

  1. Check out the source code:
    svn checkout svn+ssh://username@svn.mit.edu/zest/thalia
    (Note the revision number reported; you'll want it later to confirm the release.)

...

  1. Note that the front end code is in thalia/ui/trunk

...

  1. , while the back end code is in thalia/ime/Trunk.

...

BUILDING THE FRONT END

N.B #1.: These instructions replace the old interactive build using the OpenLaszlo server's dynamic compilation facilities.

...

  1. For a release, create the release branch:
    svn cp ui/trunk ui/branches/thaliaUI<version>-sprint<num>
    ...then build the .swf files that comprise the UI:
    cd thalia/ui/branches/thalia<ver>-sprint<num>
    mvn clean compile
  2. Alternatively, if you just want to build the UI locallyfrom the trunk:
    cd thalia/ui/trunk
    mvn clean compile
    The .swf files will be in the newly-created (by Maven) target subdirectory.

...

  1. For a release, create the release branch:
    svn cp ime/Trunk/thalia ime/Branches/thalia<version>-sprint<num>
  2. If you need to include updated flash files for the UI, do one of:
      cp <ui build target>/*.swf thalia/ime/Branches/thalia<ver>-sprint<num>/src/main/webapp
      ...or, if on isda-build1, include -Dincludeui=true on the maven command line below before or after environment selection
      1. Copy the files manually.
      2. Invoke the IME build with the -Dincludeui=true option; this will copy the compiled and uncompiled OL code (the IME needs some of each!) from, in order of preference:
        1. The path specified with the -Duipath=/some/path/with/target/and/src/ui/directories option.
        2. The build products from the UI trunk which are part of the same checkout (../../../../../../ui/trunk/target)
        3. The automatic trunk build product directory (only meaningful on isda-build1).
    1. Make a clean build of the .war file:
      cd thalia/ime/Branches/thalia<ver>-sprint<num>
      mvn clean package -Denv=prod1
      This will create or update the target directory and add the file ROOT.war .  Please note that the Thalia maven build has multiple profiles:
      • If you want a development deployment (to thalia-dev.mit.edu), use -Denv=dev.
      • If you want to choose the test profile, use -Denv=test1 or -Denv=test2.  (When packaging, test1 and test2 are exactly the same. When deploying, test1 deploys to isda-thalia2 and test2 deploys to isda-thalia11.)
      • If you want to choose the production profile, use -Denv=prod1 or -Denv=prod2.  (When packaging, prod1 and prod2 are exactly the same. When deploying, prod1 deploys to isda-thalia5 and prod2 deploys to isda-thalia8.)
      • N.B.: Part of the profile definition is in thalia/ime/Trunk/thalia/pom.xml under the profiles section; it specifies which servers to deploy to in each environment. Part of the profile definition is in thalia/ime/Trunk/thalia/src/main/filters*.properties files; it specifies the alfresco server address/port and alfresco passwords for user and admin. To change the development environment, edit dev.properties. To change the test environment, edit test.properites. To change the prodution environment, edit prod.properties.
    2. If you're doing a release and the build completed without error, commit the branch:
      svn commit
    3. Deploy the war:
      • Check that it's ok to deploy.  Start with the thalia-talk@conference.mit.edu jabber chat.  If deploying to QA, check in with the QA contractor in thalia-qa@conference.mit.edu.  If deploying to production, you will already have coordinated the downtime with asst@mit.edu and isda-ops@mit.edu so they will not be alarmed when nagios reports the Thalia failure.
      • There are two ways to deploy: one through the web, and one via maven.  See the DEPLOYING WITH MAVEN or DEPLOYING VIA THE WEB INTERFACE sections following.

    ...