Generating patches

Releasing new version of Apache Giraph may take 2 weeks or more. Please, plan accordingly.

Follow these steps to release new version of Apache Giraph.

  • Check out the Giraph source from the git repository.
  • Make a release branch git checkout -b release-1.2; git push origin release-1.2
  • Once you have a release branch, setup continuous integration in Jenkins. See for example a setup for Giraph 1.2 release
  • Fix test cases and build errors until you have a clean build for both hadoop_1 and hadoop_2 profiles
  • Check JIRA tickets associated with this release and make sure you don't have any open
  • When you have everything ready for the release, create a tag git tag -a rel/1.2.0-RC1 -m "Preparing release 1.2.0"
  • Do the license check: mvn apache-rat:check -Phadoop_1 and make sure you don't have any issues grep '!?????' target/rat.txt
  • When all of above are clean, you can do the build: mvn clean install -Phadoop_1 -Prelease If this command fails generating signatures check this page for more information
  • You can now get the prepared binaries, source files and signatures in giraph-dist/target/
  • To generate remaining md5 and sha1 hashes, wou can use the following set of commands:
    md5 -r * |grep -v asc | while read k f; do
      echo $k > "$f.md5"
    done
    
    shasum * |grep -v asc |grep -v md5 | while read k f; do
      echo $k > "$f.sha1"
    done
            
  • Now you need to build release for hadoop_2. First, change version in all pom.xml files:
    mvn versions:set -DnewVersion=1.2.0-hadoop2
    grep -R 'version.*1.2.0' . | grep pom.xml | grep -v hadoop2
              
    Make sure the output of the second command is empty. Modify missed pom.xml manually otherwise.
  • Repeat steps for hadoop_2 profile:
    mvn apache-rat:check -Phadoop_2
    grep '!?????' target/rat.txt
    
    mvn clean install -Phadoop_2
    
              
    Get release files from ~/.m2/repository/org/apache/giraph/giraph-dist/1.2.0-hadoop2 and sign them.
  • Finally make files available in dist SVN: svn checkout https://dist.apache.org/repos/dist/dev/giraph/ Make sure that the content there looks ok (try to build and run Giraph just from those tarballs).
  • Configure your .m2/settings.xml as described here. And deploy released artifacts to the maven repository:
    mvn -Prelease -Phadoop_1 deploy
    mvn -Prelease -Phadoop_2 deploy