Esper release
The steps to perform a new release are:
Perform MVEL Integration Tests Manually
Since MVEL is an optional jar file and scripting language supported not through JSR 223 support but directly, the MVEL specific tests are deactive by default.
In regression\scripts\TestScriptExpression.java enable TEST_MVEL and rerun the tests.
Add merge&release tag
Add tag to tags/release_x.x.0_prerelease from trunk.
Run code quality tools
The project standard requires the following tools to pass before a release:
Findbugs
Findbugs is a separate download that comes with it's own GUI. In the GUI import the Esper source code and dependencies, and run an analysis. Analyze the findings and prioritize the required fixes. Not all reported warnings are relevant, and many are origined in ANTLR generated source code. Use judgement.
IntelliJ IDEA
We have free licenses to IntelliJ IDEA and their code analysis tools is also very good and, of course, integrated with the IDE.
- Run IDE Default profile over the Esper module. Look at the following issues: bitwise ops, class structure, code style, error handling, performance, threading, probable bugs; Some too-fine grained categories are usually: control flow, data flow, declaration redundance (module doesn't see extension points).
- Create/Run the "JavaDoc" profile for checking java docs only (see "general" section of checkboxes).
Change version in
- esper/pom.xml
- esper/build.xml
- esper/doc/reference/en/master.xml (releaseinfo element)
- esper/src/site/site.xml
- examples/pom.xml (2 places)
- examples/etc/setenv.bat and setenv.sh
search for further reference to old version number via text file searcher
Make sure all code is checked into Subversion repository, all JavaDocs generate, perform a backup (optional, such as via "ant source_zip")
Review changelog.txt in root dir
Clean Maven cache - this helps make sure all references to older jar file cause an error if used
Remove jar files from C:\Documents and Settings\<NAME>\.m2\repository\com\espertech
Build, test and install
If you want to skip unit testing and only do a binary build, run
mvn install -DskipTests
JavaDoc
Manual
generate PDF
Site release
- Update site content in src/site
- News (about\news\news.apt)
- History (about\history\history.apt)
Version links to the new documentation (using\documentation\documentation.apt)
*. Generate and release site- add google analytics to download.html manually, see snipped in site folder. Also make sure you move the bottom google analytics section into the top head section for this to work.
- copy to release dir
- copy download.html for articles that require the old link to evaluation/download/download.html
Distribution release
- Create distribution zip: "ant dist_zip" and "ant dist_tar"
- copy to distribution dir
- "ant source_zip", copy src zips to distribution dir
Maven repository deployment
- This is simply "mvn clean deploy"; Examples are not deployed to repo (see http://docs.codehaus.org/display/HAUSMATES/Maven+Guide)
- Check generated jars and sources present in Codehaus Maven repo.
Test Release
- web site updated?
- doc links on web site
- distribution available, download, unpack
Subversion
- Check in changed site file, if any
- Place tag
JIRA Management
- Close all resolved JIRA
- Admin project release package
Announce
- Let team know via user and dev mailing lists
- Place announcement in CEP forum group
- Upload new esper-configuration.xsd to ET site, update download.php and news.php and index.php on site