Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
 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.&nbsp; If you're doing a release, create a new branch from the trunk. The naming convention for branches is thalia<version>-sprint<num>&nbsp; ( e.g. thalia1.0-sprint2 ).&nbsp;
{quote}
svn copy Trunk/thalia Branches/thalia<version>-sprint<num>
cd&nbsp; Branches/thalia<version>-sprint<num>&nbsp;
\\
\\
{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 .&nbsp;

4. If you're doing a release and the build completed without error, commit the branch.&nbsp;
{quote}
svn commit&nbsp;
\\
{quote}
5.&nbsp;&nbsp; Deploy the war:
\\
a.&nbsp; Check that it's ok to deploy.&nbsp; Start in the thalia-talk chat&nbsp; .&nbsp; 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.&nbsp;
\\

6.&nbsp; There are two ways to deploy: one through the web, and one via maven.&nbsp; Do one of the following:
\\

*DEPLOY WITH MAVEN&nbsp;*

a. By default, Thalia will deploy to thalia-dev.mit.edu .&nbsp; Edit&nbsp; Branches/branchname/pom.xml&nbsp; to specify a different location.&nbsp; 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&nbsp; . Username and password are for the tomcat manager. Ask if you don't have that information.&nbsp;

Maven settings are in the maven directory in conf/settings.xml .

{quote}
&nbsp;&nbsp;&nbsp; <server>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <id>deploymentserver</id>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <username>username</username>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <password>password</password>
&nbsp;&nbsp;&nbsp; </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&nbsp; to your local machine.

b. Open the Tomcat server manager for each front end in a web browser.&nbsp; ( [http://hostname/manager/html/upload&nbsp]; )

c. Undeploy the root instance, /.&nbsp;&nbsp; .

d. Further down the page, upload ROOT.war .&nbsp;
\\

7. For all deployment methods:&nbsp; 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&nbsp;
\\