Versions Compared

Key

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

...

  • 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 as well as thalia-ops@mit.edu (preferably with the same message, so both will see any replies) about the scheduled down time ahead of time so they will not be alarmed when the nagios service shows a Thalia failure.
  • Write the release notes! They live here. 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 material 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. Include the link to the knownissues page in the release notes.
  • Update the knownissues page at svn+ssh://svn.mit.edu/zest/thalia/website/Trunk/help/.  Remove resolved issues and add new issues. This page needs to be manually uploaded as part of the release process; see below about Deploying Static HTML.

...

  1. Check out the Thalia code
    . For building from Trunk, use
    {{svn checkout svn+ssh://username@svn.mit.edu/zest/thalia/ime/Trunk 
    }}
    For building from a branch, use
    {{svn checkout svn+ssh://username@svn.mit.edu/zest/thalia/ime/<branch>
    }}
  2. For a release, create the release branch:
    svn cp ime/Trunk/thalia ime/Branches/thalia<version>-sprint<num>
  3. If you need to include updated flash files for the UI:
    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.
  4. 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.
  5. If you're doing a release and the build completed without error, commit the branch:
    svn commit
  6. 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.

...