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. Update the configurations so everything points to the correct servers.
Make sure web.xml is correct. For production: \\
{quote}
rm src/main/webapp/WEB-INF/web.xml \\
{quote}
{quote}
mv src/main/webapp/WEB-INF/web.xml.production src/main/webapp/WEB-INF/web.xml
{quote}
Set the alfresco repository loction is correct.
{quote}
emacs src/main/webapp/WEB-INF/classes/alfresco/webseriveclient.properties
{quote}
Set the repository.location value. Locations are listed in [the Thalia environments list|https://mv-ezproxy-com.ezproxyberklee.flo.org/confluence/display/ZEST/Thalia+environments+and+workflow]. It's usually in the form http://<server>/alfresco/api .
4. 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://mv-ezproxy-com.ezproxyberklee.flo.org/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.
Maven settings are in the maven directory in conf/settings.xml .
{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://mv-ezproxy-com.ezproxyberklee.flo.org/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
\\ |