| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <document xmlns="http://maven.apache.org/XDOC/2.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> |
| <properties> |
| <title>Generating Patches</title> |
| </properties> |
| |
| <body> |
| <section name="Generating patches" id="Generatingpatches"> |
| <p>Releasing new version of Apache Giraph may take 2 weeks or more. Please, plan accordingly.</p> |
| <p>Follow these steps to release new version of Apache Giraph.</p> |
| <ul> |
| <li>Check out the Giraph source from the <a href="http://gitbox.apache.org/repos/asf/giraph.git">git repository</a>.</li> |
| <li>Make a release branch <tt>git checkout -b release-1.2; git push origin release-1.2</tt></li> |
| <li>Once you have a release branch, setup continuous integration in Jenkins. <a href="https://builds.apache.org/job/Giraph-1.2/">See for example a setup for Giraph 1.2 release</a></li> |
| <li>Fix test cases and build errors until you have a clean build for both hadoop_1 and hadoop_2 profiles</li> |
| <li>Check JIRA tickets associated with this release and make sure you don't have any open</li> |
| <li>When you have everything ready for the release, create a tag <tt>git tag -a rel/1.2.0-RC1 -m "Preparing release 1.2.0"</tt></li> |
| <li>Do the license check: <tt>mvn apache-rat:check -Phadoop_1</tt> and make sure you don't have any issues <tt>grep '!?????' target/rat.txt</tt> |
| </li> |
| <li>When all of above are clean, you can do the build: <tt>mvn clean install -Phadoop_1 -Prelease</tt> |
| If this command fails generating signatures <a href="http://www.apache.org/dev/release-signing.html">check this page for more information</a></li> |
| <li>You can now get the prepared binaries, source files and signatures in <tt>giraph-dist/target/</tt></li> |
| <li>To generate remaining md5 and sha1 hashes, wou can use the following set of commands: |
| <source> |
| 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 |
| </source> |
| </li> |
| <li>Now you need to build release for hadoop_2. First, change version in all pom.xml files: |
| <source> |
| mvn versions:set -DnewVersion=1.2.0-hadoop2 |
| grep -R 'version.*1.2.0' . | grep pom.xml | grep -v hadoop2 |
| </source> |
| Make sure the output of the second command is empty. Modify missed pom.xml manually otherwise. |
| </li> |
| <li>Repeat steps for hadoop_2 profile: |
| <source> |
| mvn apache-rat:check -Phadoop_2 |
| grep '!?????' target/rat.txt |
| |
| mvn clean install -Phadoop_2 |
| |
| </source> |
| Get release files from <tt>~/.m2/repository/org/apache/giraph/giraph-dist/1.2.0-hadoop2</tt> and sign them. |
| |
| </li> |
| <li>Finally make files available in dist SVN: |
| <tt>svn checkout https://dist.apache.org/repos/dist/dev/giraph/</tt> |
| Make sure that the content there looks ok (try to build and run Giraph just from those tarballs). |
| </li> |
| <li> |
| Configure your .m2/settings.xml as described <a href="http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env">here</a>. And deploy released artifacts to the maven repository: |
| <source> |
| mvn -Prelease -Phadoop_1 deploy |
| mvn -Prelease -Phadoop_2 deploy |
| </source> |
| </li> |
| |
| </ul> |
| |
| </section> |
| </body> |
| </document> |