Thalia has two pieces: the IME back end, which is a Java .war file, and the .swf front end, which is written in OpenLazlo. *ARE YOU DOING A RELEASE?* Before deploying anything, confirm that you won't interrupt anyone else's work. * For all releases, check in on jabber chat thalia-talk . * For QA releases, also check in with QA testers in thalia-QA . * For production releases, email asst@mit.edu about the scheduled down time ahead of time so they will not be alarmed when the nagios service fails on Thalia. \\ *BEFORE STARTING:* 1. Make sure all developers have checked in their code. \\ 2. For releases, make sure everyone has resolved their fixed bugs so the release notes are accurate. *FRONT END* (Temporary) Ask Justin or Robin to compile and commit a new .swf . \\ \\ * BACK END* +Configuring the Build Environment+ 1. download the latest version of maven at [http://maven.apache.org/download.html] (maven 2.0.7) 2. a. Unzip Unzip maven-2.0.7-bin.zip to the directory you wish to install Maven 2.0.7. b. Add the bin directory to your path. c. make sure that JAVA_HOME is set to the location of your JDK - on isda-build1.mit.edu this is /usr/java/jdk1.6.0 d. Run mvn \--version to verify that maven is correctly installed . 3. Confirm you have access to the svn repository: svn+ssh://svn.mit.edu/zest/thalia-maven +Building+ 0. Before you begin: Make sure all developers have checked in their code. For a release, make sure you have no un-committed code changes hanging around with {quote} svn status {quote} If there are modified files, either check out a fresh copy or commit your changes. \\ For a release, write the release notes. The release notes contain a list of what changed in this release: new features, bug fixes, underlying changes like an Alfresco upgrade, etc. Release notes have three purposes: they give QA specific information about what to test; they remind you what changed in the release long after you've forgotten; and they're the raw notes for the email that gets sent to users. If you don't know what changed, it's probably a bad idea to do a release. Also update the knownissues page at zest/thalia/teamsite/help/. Remove resolved issues and add new issues. This page needs to be manually uploaded to \${CATALINA_HOME} /webapps/help directory. Include the link to the knownissues page in the release note. 0.1 Log in to isda-build1.mit.edu . \\ \\ 1. Check out the thalia code from svn: {quote} svn checkout svn+ssh://username@svn.mit.edu/zest/thalia-maven {quote} SVN will create or update a directory named thalia-maven with the latest code. \\ 2. If you're doing a release, create a new branch from the trunk. The naming convention for branches is thalia<version>-sprint<num> ( e.g. thalia1.0-sprint2 ). {quote} svn copy Trunk/thalia Branches/thalia<version>-sprint<num> cd Branches/thalia<version>-sprint<num> \\ \\ {quote} 3. Make a clean build of the .war file: {quote} cd thalia-maven/Branches/thalia<ver>-sprint<num> mvn clean package \\ \\ {quote} It will create or update the target directory and add the file ROOT.war . 4. If you're doing a release and the build completed without error, commit the branch. {quote} svn commit \\ {quote} 5. Deploy the war: \\ a. Check that it's ok to deploy. Start in the thalia-talk chat . If deploying to QA, check in with the QA contractor in thalia-qa . If deploying to production, you will already have emailed asst@mit.edu about the scheduled down time ahead of time so they will not be alarmed when the nagios service fails on Thalia. \\ 6. There are two ways to deploy: one through the web, and one via maven. Do one of the following: \\ *DEPLOY WITH MAVEN * a. By default, Thalia will deploy to thalia-dev.mit.edu . Edit Branches/branchname/pom.xml to specify a different location. Check [the Thalia Environments list|https://confab.mit.edu/confluence/display/ZEST/Thalia+environments+and+workflow] for the correct server. b. To specify tomcat authentication info in Maven, add the following line in settings.xml in $M2_HOME/conf/settings.xml . Username and password are for the tomcat manager. Ask if you don't have that information. {quote} <server> <id>deploymentserver</id> <username>username</username> <password>password</password> </server>\\ {quote} c. Deploy with Maven:\\ {quote} mvn tomcat:undeploy mvn tomcat:deploy \\ {quote} This should also work: \\ {quote} mvn clean tomcat:deploy {quote} *DEPLOY BY WEB PAGE:* There are usually two front ends per environment. You must repeat these steps on each server. Visit the tomcat manager page for each front end server. See [the Thalia environments list|https://confab.mit.edu/confluence/display/ZEST/Thalia+environments+and+workflow] for hostnames. a. Download the freshly built ROOT.war from isda-build1 to your local machine. b. Open the Tomcat server manager for each front end in a web browser. ( http://hostname/manager/html/upload ) c. Undeploy the root instance, /. . d. Further down the page, upload ROOT.war . \\ 7. For all deployment methods: Do a smoke test to confirm Thalia came back up. Brian Childs suggests: * the page comes up in your browser * it recognizes you as logged in * you can create a library * you can do a bulk upload * you can create an album * you can create a slideshow \\ |