 @version $Revision: 2673 $ ($Author: skarzhevskyy $) $Date: 2008-12-25 17:38:21 -0500 (Thu, 25 Dec 2008) $

* Build

   We are using maven2 to build project.  Maven version 2.0.9 will build complete project.

   Ant can be used as well but the jar created has extra classes that are not supposed to be there.

   To create Eclipse projects run:
     mvn eclipse:clean eclipse:eclipse -DdownloadSources=true

   To run build without tests:
     mvn -Dmaven.test.skip=true

   To run build without building native code:
     mvn -Dnative.build.skip=true

   build-native-bluecove.cmd and build-native-intelbth.cmd can be used to build dlls on windows.

   build-native-osx.sh can be used to build jnilib on Mac OS X

* Building Release

    Release procesure is nearly fully automated on build server. But still manual work is require.

    * Test locally

        mvn clean deploy site-deploy

    * Remove all -SNAPSHOT and verify version from pom.xml, BlueCoveImpl.java, build.version, common.h, bluecove.rc, intelbth.rc
      
      Update versionBuild for native code to the last build # +2 we had in snapshot.

    * Comment out sections marked <!--4release--> and <!--4snapshot--> in src/site/site.xml

    * SVN commit

    * run java and c/c++ build again.  (Win, OSX and Linux 64 Bit needs to done manually)

    * On build server (CruiseControl) https://pyx4j.com/cruisecontrol/ start "bluecove-nightly"
    
      Verify that the site is OK and there are no errors when runnning results on OS X/Windows/Linux.

    * On build server (CruiseControl) https://pyx4j.com/cruisecontrol/ start "bluecove-release"
      It will execute:
        mvn clean --fail-never -P build,release
        mvn scm:update -P build,release
        mvn clean deploy -P build,release -DperformRelease=true
        mvn site-deploy -P build,release -DperformRelease=true

    * repository "pyx4j.com-file-release" (http://pyx4j.com/maven2-release/) on build server will sync with http://repo1.maven.org/maven2

    * Upload the context of /home/apache/bluecove/release-site to bluecove.org (http://bluecove.sourceforge.net/)
        sftp web.sourceforge.net; cd /home/groups/b/bl/bluecove/htdocs

    * Copy files src/site/resources/tck/.htaccess to each directory with the list of TCK tests

    * Upload the distribution jars bluecove-2.X.X.jar and bluecove-2.X.X-sources.tar.gz to http://code.google.com/p/bluecove/ and http://sourceforge.net/projects/bluecove/

    * Create Tag in SVN

    * Update version to  (x+1)-SNAPSHOT in pom.xml, BlueCoveImpl.java, build.version, common.h, bluecove.rc, intelbth.rc

    * Update src/site/site.xml reverse changes for <!--4release--> and <!--4snapshot-->

* cruisecontrol

    File ./m2/settings.xml  has:
    
        <activeProfile>cruisecontrol</activeProfile>
    
    This enables additional errors handling for official builds.

    "bluecove-nightly" 4AM EST
        mvn clean --fail-never -P build;mvn scm:update -P build;mvn clean deploy -P build,build-snapshot;mvn site-deploy -P build,build-snapshot

    cruisecontrol runs only on Unix (Linux 32but) now
      Windows and OS X dll are taken from SVN http://bluecove.googlecode.com/svn/build/win-dlls/

      If you made modification to C/C++ code place compiled library in SVN

        https://bluecove.googlecode.com/svn/build/win-dlls/
