Esper release
The steps to perform a new release are:
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")
Touch all files so the timestamp shows current time
ant touch_all
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\esper\esper
Build, test and install
cd esper
mvn clean install
// On some VMs there is a Maven-ANTLR problem: "error(3): cannot find tokens file" due to a build order problem, consult the web site build instructions to fix
cd esperio
mvn clean install
cd examples
mvn clean test
cd examples/terminalsvc
mvn clean install
move esper/target/esper-XXX.jar file to top dir
move esperio/target/esperio-XXX.jar file to top dir
JavaDoc
cd esper; ant javadoc
cd esperio; ant javadoc
//copy to site
Manual
generate PDF
cd esper\doc\reference
ant
cd esperio\doc\reference
ant
// copy to site
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 sitemvn site
- add google analytics to download.html manually, see snipped in site folder
- 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
- "mvn deploy", see http://docs.codehaus.org/display/HAUSMATES/Maven+Guide
Test Release
- web site updated?
- doc links on web site
- distribution available, download, unpack
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
- Place SVN tag for current release