Repository: incubator-hivemall-site Updated Branches: refs/heads/asf-site f8750861e -> 5aea172d3
Updated release guide Project: http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/commit/5aea172d Tree: http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/tree/5aea172d Diff: http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/diff/5aea172d Branch: refs/heads/asf-site Commit: 5aea172d36aef91bdc561739fab802b4d82ee902 Parents: f875086 Author: Makoto Yui <[email protected]> Authored: Thu Jan 25 17:40:36 2018 +0900 Committer: Makoto Yui <[email protected]> Committed: Thu Jan 25 17:40:36 2018 +0900 ---------------------------------------------------------------------- release-guide.html | 171 ++++++++++++++++++---------------- release-setup.html | 5 +- verify_artifacts.html | 228 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 325 insertions(+), 79 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/blob/5aea172d/release-guide.html ---------------------------------------------------------------------- diff --git a/release-guide.html b/release-guide.html index 5bf89e9..0a47c00 100644 --- a/release-guide.html +++ b/release-guide.html @@ -84,7 +84,7 @@ <div id="breadcrumbs"> <ul class="breadcrumb"> - <li id="publishDate">Last Published: 2018-01-05<span class="divider">|</span> + <li id="publishDate">Last Published: 2018-01-25<span class="divider">|</span> </li> <li id="projectVersion">Version: 0.5.0-incubating-SNAPSHOT</li> </ul> @@ -123,9 +123,9 @@ <ul> -<li>[Check this link](<a class="externalLink" href="https://issues.apache.org/jira/browse/HIVEMALL-162?jql=project%20%3D%20HIVEMALL%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%20EMPTY">https://issues.apache.org/jira/browse/HIVEMALL-162?jql=project%20%3D%20HIVEMALL%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%20EMPTY</a>) for <tt>CLOSED/RESOLVED</tt> issues that does not have <tt>FixVersion</tt>.</li> +<li><a class="externalLink" href="https://issues.apache.org/jira/browse/HIVEMALL-162?jql=project%20%3D%20HIVEMALL%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%20EMPTY">Check this link</a> for <tt>CLOSED/RESOLVED</tt> issues that does not have <tt>FixVersion</tt>.</li> -<li>Then, ensure that all JIRA issues that are addressed in this release are marked with the release version in the <tt>FixVersion</tt> field of the issue. [Here](<a class="externalLink" href="https://issues.apache.org/jira/browse/HIVEMALL-157?jql=project%20%3D%20HIVEMALL%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%200.5.0">https://issues.apache.org/jira/browse/HIVEMALL-157?jql=project%20%3D%20HIVEMALL%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%200.5.0</a>) is an example for v0.5.0 release.</li> +<li>Then, ensure that all JIRA issues that are addressed in this release are marked with the release version in the <tt>FixVersion</tt> field of the issue. <a class="externalLink" href="https://issues.apache.org/jira/browse/HIVEMALL-157?jql=project%20%3D%20HIVEMALL%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%200.5.0">Here</a> is an example for v0.5.0 release.</li> </ul></li> </ol></div> <div class="section"> @@ -144,24 +144,17 @@ <div class="source"> <div class="source"><pre class="prettyprint"># JDK 7 is required for packaging -$ export JAVA_HOME=`/usr/libexec/java_home -v 1.7` +export JAVA_HOME=`/usr/libexec/java_home -v 1.7` -# Install xgboost jar to Maven local repository -$ mvn -Pcompile-xgboost validate +# Java 8 is required for building Spark 2.2 module +export JAVA8_HOME=`/usr/libexec/java_home -v 1.8` # Try to create artifacts -$ mvn -Papache-release clean install -</pre></div></div> -<p>Ensure that all unit tests passes. License check by Apache RAT (<tt>mvn apache-rat:check</tt>) will be ran by the above command.</p> -<div class="section"> -<h3><a name="Verify_Signatures_of_Release_Artifacts"></a>Verify Signatures of Release Artifacts</h3> +export MAVEN_OPTS=-XX:MaxPermSize=256m -<div class="source"> -<div class="source"><pre class="prettyprint">cd target/ -for file in `find . -type f -iname '*.asc'`; do - gpg --verify ${file} -done -</pre></div></div></div></div> +mvn -Papache-release clean install +</pre></div></div> +<p>Ensure that all unit tests passes. License check by Apache RAT (<tt>mvn apache-rat:check</tt>) will be ran by the above commands.</p></div> <div class="section"> <h2><a name="SNAPSHOT_RELEASE"></a>SNAPSHOT RELEASE</h2> <div class="section"> @@ -169,50 +162,49 @@ done <p><b>1)</b> Switch to master syncing to ASF master</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ git checkout master -$ git fetch -$ git pull # or, git reset --hard asf/master +<div class="source"><pre class="prettyprint">git checkout master +git fetch +git pull # or, git reset --hard asf/master </pre></div></div> <p><b>2)</b> Set version string for a snapshot</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ version=X.Y.Z +<div class="source"><pre class="prettyprint">version=X.Y.Z # RC should start at 1 and increment if early release candidates fail to release -$ rc=1 -# $ echo "${version}-incubating-SNAPSHOT" +rc=1 +# echo "${version}-incubating-SNAPSHOT" -$ ./bin/set_version.sh --pom --version "${version}-incubating-SNAPSHOT" +./bin/set_version.sh --pom --version "${version}-incubating-SNAPSHOT" </pre></div></div> <p><b>Note:</b> <i><tt>--pom</tt> option SHOULD only used for SNAPSHOT release.</i></p> <div class="source"> -<div class="source"><pre class="prettyprint">$ git commit -a -m "Prepare for the next Snapshot release of X.Y.Z" -$ git push asf master +<div class="source"><pre class="prettyprint">git commit -a -m "Prepare for the next Snapshot release of X.Y.Z" +git push asf master </pre></div></div> <p><b>3)</b> Perform a dryRun</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ version=X.Y.Z +<div class="source"><pre class="prettyprint">version=X.Y.Z # RC should start at 1 and increment if early release candidates fail to release -$ rc=1 -$ next_version=X.(Y+1).Z +rc=1 +next_version=X.(Y+1).Z # Confirm that version and rc is defined. -$ echo "Release version: ${version}-incubating-rc${rc}" -$ echo "Development version: ${next_version}-incubating-SNAPSHOT" +echo "Release version: ${version}-incubating-rc${rc}" +echo "Development version: ${next_version}-incubating-SNAPSHOT" -$ mvn -Papache-release release:prepare \ --DautoVersionSubmodules=true -DdryRun=true \ --Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \ --Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating-rc${rc} -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT -</pre></div></div> -<p>Please provide the next SNAPSHOT version for next release WITHOUT <tt>-rcX</tt> e.g., as follows:</p> -<p><tt>What is the new development version for "Apache Hivemall"?: X.(Y+1).Z-incubating-SNAPSHOT</tt></p></div> +mvn -Papache-release release:prepare \ + -DautoVersionSubmodules=true -DdryRun=true \ + -Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \ + -Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating-rc${rc} -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT +</pre></div></div></div> <div class="section"> <h3><a name="PUBLISH_A_SNAPSHOT"></a>PUBLISH A SNAPSHOT</h3> <div class="source"> -<div class="source"><pre class="prettyprint">$ mvn deploy -Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true +<div class="source"><pre class="prettyprint">mvn deploy \ + -Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true </pre></div></div> <p><b>Note:</b> <i>You SHOULD verify the deployment under <a class="externalLink" href="https://repository.apache.org/content/repositories/snapshots/org/apache/hivemall/">the Maven Snapshot repository at Apache</a>.</i></p></div></div> <div class="section"> @@ -222,9 +214,9 @@ $ mvn -Papache-release release:prepare \ <p><b>1)</b> Create a branch</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ git checkout -b vX.Y.Z +<div class="source"><pre class="prettyprint">git checkout -b vX.Y.Z </pre></div></div> -<p>**Note: ** <i>Branch name starts with <tt>v</tt> and does not include <tt>-rcX</tt>.</i></p> +<p><b>Note:</b> <i>Branch name starts with <tt>v</tt> and does not include <tt>-rcX</tt>.</i></p> <p><b>2)</b> Send e-mail announcing the release branch</p> <div class="source"> @@ -245,56 +237,57 @@ I'll be going over the JIRAs to move every non-blocker from this release to the <p><b>1)</b> Set a release version</p> <div class="source"> -<div class="source"><pre class="prettyprint"># $ version=X.Y.Z -# $ rc=1 +<div class="source"><pre class="prettyprint">version=X.Y.Z +rc=1 +next_version=X.(Y+1).Z # Confirm that version and rc is defined. -$ echo ${version}-incubating-rc${rc} -X.Y.Z-incubating-rc1 +echo ${version}-incubating-rc${rc} +# X.Y.Z-incubating-rc1 </pre></div></div> <p><b>2)</b> Update version strings in source codes.</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ ./bin/set_version.sh --version "${version}-incubating-rc${rc}" +<div class="source"><pre class="prettyprint">./bin/set_version.sh --version "${version}-incubating-rc${rc}" # Check list of files to be committed. -$ git stauts -$ git commit -a -m "Bumped version string to ${version}-incubating-rc${rc}" +git stauts +git commit -a -m "Bumped version string to ${version}-incubating-rc${rc}" </pre></div></div> -<p><b>3)</b> Prepare sets the version numbers in POM, creates a tag, and pushes it to git.</p> +<p><b>3)</b> Prepare sets the version numbers in POM and creates a tag.</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ mvn -Papache-release release:clean release:prepare \ --DautoVersionSubmodules=true -DdryRun=false \ --Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \ --Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating-rc${rc} -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT +<div class="source"><pre class="prettyprint">mvn -Papache-release release:clean release:prepare \ + -DautoVersionSubmodules=true -DdryRun=false \ + -Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \ + -Dtag=v${version}-rc${rc} -DreleaseVersion=${version}-incubating-rc${rc} -DdevelopmentVersion=${next_version}-incubating-SNAPSHOT </pre></div></div> -<p><b>4)</b> Update version strings for the development deversion</p> +<p><b>4)</b> Update version strings for the development iteration</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ ./bin/set_version.sh --version "${next_version}-incubating-SNAPSHOT" +<div class="source"><pre class="prettyprint">./bin/set_version.sh --version "${next_version}-incubating-SNAPSHOT" # Check list of files to be committed. -$ git stauts -$ git commit --amend -a +git stauts +git commit --amend -a </pre></div></div> <p><b>5)</b> Push release branch and tag to remote ASF repository</p> <div class="source"> <div class="source"><pre class="prettyprint"># Push the release branch -$ git push asf v${version} +git push asf v${version} # Push the release tag -$ git push asf v${version}-rc${rc} +git push asf v${version}-rc${rc} </pre></div></div></div></div> <div class="section"> <h2><a name="STAGE_THE_RELEASE_FOR_A_VOTE"></a>STAGE THE RELEASE FOR A VOTE</h2> <p>The release will automatically be inserted into a temporary staging repository for you.</p> <div class="source"> -<div class="source"><pre class="prettyprint">$ mvn -Papache-release release:perform \ --Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \ --Dgoals=deploy -DlocalRepoDirectory=. -DlocalCheckout=true +<div class="source"><pre class="prettyprint">mvn -Papache-release release:perform \ + -Darguments='-Dmaven.test.skip.exec=true' -DskipTests=true -Dmaven.test.skip=true \ + -Dgoals=deploy -DlocalRepoDirectory=. -DlocalCheckout=true </pre></div></div> <div class="section"> <h3><a name="Verify_nexus_release_artifacts"></a>Verify nexus release artifacts</h3> @@ -332,14 +325,14 @@ $ git push asf v${version}-rc${rc} <div class="source"><pre class="prettyprint">cd target/ # Sign to the artifacts created by maven-shade-plugin -for f in `ls hivemall-*-with-dependencies.jar`; do +for f in `ls hivemall-*-with-dependencies*.jar`; do gpg --armor --output ${f}.asc --detach-sig ${f} - gpg --print-md MD5 ${f} > ${f}.md5 - gpg --print-md SHA1 ${f} > ${f}.sha1 + md5sum ${f} | cut -f1 -d' ' > ${f}.md5 + sha1sum ${f} | cut -f1 -d' ' > ${f}.sha1 done # Verify GPG sign -for file in `find . -type f -iname 'hivemall-*-with-dependencies.jar.asc'`; do +for file in `find . -type f -iname 'hivemall-*-with-dependencies*.jar.asc'`; do echo ${file} gpg --verify ${file} echo @@ -355,23 +348,23 @@ done <div class="source"> <div class="source"><pre class="prettyprint"># Checkout release SVN repository -$ mkdir -p dist/dev/incubator -$ cd dist/dev/incubator -$ svn co https://dist.apache.org/repos/dist/dev/incubator/hivemall/ -$ cd hivemall +mkdir -p dist/dev/incubator +cd dist/dev/incubator +svn co https://dist.apache.org/repos/dist/dev/incubator/hivemall/ +cd hivemall # Download release artifacts -$ wget -e robots=off --no-check-certificate \ +wget -e robots=off --no-check-certificate \ -r -np --reject=html,txt,tmp -nH --cut-dirs=7 \ https://repository.apache.org/content/repositories/orgapachehivemall-1001/org/apache/hivemall/hivemall/${version}-incubating-rc${rc}/ # Put ChangeLog -$ cd ${version}-incubating-rc${rc} +cd ${version}-incubating-rc${rc} # Put ChangeLog generated by JIRA -$ cp ~/Downloads/ChangeLog.html . +cp ~/Downloads/ChangeLog.html . # Put Shaded jars -$ cp ~/hivemall/target/hivemall-*-with-dependencies.jar* . +cp ~/incubator-hivemall/target/hivemall-*-with-dependencies*.jar* . </pre></div></div> <ul> @@ -380,16 +373,20 @@ $ cp ~/hivemall/target/hivemall-*-with-dependencies.jar* . </ul> <div class="source"> -<div class="source"><pre class="prettyprint"># cd dist/dev/incubator/hivemall +<div class="source"><pre class="prettyprint">cd dist/dev/incubator/hivemall # ls ${version}-incubating-rc${rc} svn add ${version}-incubating-rc${rc}/ svn commit -m "Put hivemall version ${version}-incubating-rc${rc} artifacts" -</pre></div></div> +</pre></div></div></div> +<div class="section"> +<h3><a name="Verify_Release_Artifacts"></a>Verify Release Artifacts</h3> <ul> <li>Check release artifacts are properly deployed in the SVN repository: <a class="externalLink" href="https://dist.apache.org/repos/dist/dev/incubator/hivemall/0.5.0-incubating-rc1/">https://dist.apache.org/repos/dist/dev/incubator/hivemall/X.Y.Z-incubating-rcZ/</a></li> + +<li>Follow <a href="./verify_artifacts.html">this guide</a> for release artifacts verification.</li> </ul></div></div> <div class="section"> <h2><a name="PPMC_voting"></a>PPMC voting</h2> @@ -500,8 +497,26 @@ on behalf of Apache Hivemall PPMC <div class="section"> <h2><a name="Finalize_release"></a>Finalize release</h2> <div class="section"> +<h3><a name="Publish_to_Maven_Central_in_Nexus"></a>Publish to Maven Central in Nexus</h3> + +<ul> + +<li>Go to <a class="externalLink" href="https://repository.apache.org/">https://repository.apache.org/</a> and login</li> + +<li>Under Build Promotion, click Staging Repositories</li> + +<li>In the Staging Repositories tab there should be a line with profile org.apache.hivemall</li> + +<li>click <tt>Release</tt>. + +<ul> + +<li>You shall now see your artifacts in the release repository created for you. In some hours, it should also appear in Maven Central.</li> + </ul></li> +</ul></div> +<div class="section"> <h3><a name="Update_JIRA"></a>Update JIRA</h3> -<p>Update the JIRA versions page to close all issues, mark the version as <tt>"released"</tt>, and set the date to the date that the release was approved. You may also need to make a new release entry for the next release.</p></div> +<p>Update the JIRA versions page to close all issues, mark the version as <tt>released</tt>, and set the date to the date that the release was approved. You may also need to make a new release entry for the next release.</p></div> <div class="section"> <h3><a name="Merge_release_branch_for_the_next_development_iteration"></a>Merge release branch for the next development iteration</h3> <p>If IPMC vote succeed, then merge the release branch into the master branch.</p></div> @@ -510,7 +525,7 @@ on behalf of Apache Hivemall PPMC <p>Update <a class="externalLink" href="http://hivemall.incubator.apache.org/download.html">download page</a> etc.</p></div> <div class="section"> <h3><a name="Announcing_the_release"></a>Announcing the release</h3> -<p>Make an announcement about the release on the <tt>[email protected]</tt>, <tt>[email protected]</tt>, <tt>[email protected]</tt>, and <tt>[email protected]</tt> list as per the Apache Announcement Mailing Lists page.</p></div></div> +<p>Make an announcement about the release on the <tt>[email protected]</tt>, <tt>[email protected]</tt>, <tt>[email protected]</tt>, and <tt>[email protected]</tt> list as per the Apache Announcement Mailing Lists page.</p></div></div> </div> </div> <hr/> http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/blob/5aea172d/release-setup.html ---------------------------------------------------------------------- diff --git a/release-setup.html b/release-setup.html index bc8bbf7..d83d7f2 100644 --- a/release-setup.html +++ b/release-setup.html @@ -84,7 +84,7 @@ <div id="breadcrumbs"> <ul class="breadcrumb"> - <li id="publishDate">Last Published: 2018-01-05<span class="divider">|</span> + <li id="publishDate">Last Published: 2018-01-25<span class="divider">|</span> </li> <li id="projectVersion">Version: 0.5.0-incubating-SNAPSHOT</li> </ul> @@ -118,6 +118,8 @@ <li>gpg2</li> +<li>md5sum, sha1sum</li> + <li>git client</li> <li>svn client (<i>svn is still mandatory in the ASF distribution process. Don’t ask me why.</i>)</li> @@ -132,6 +134,7 @@ <div class="source"> <div class="source"><pre class="prettyprint"># on Mac $ brew install gpg gpg-agent pinentry-mac +$ brew instal md5sha1sum $ brew intall svn $ brew install maven $ brew install npm http://git-wip-us.apache.org/repos/asf/incubator-hivemall-site/blob/5aea172d/verify_artifacts.html ---------------------------------------------------------------------- diff --git a/verify_artifacts.html b/verify_artifacts.html new file mode 100644 index 0000000..c03a108 --- /dev/null +++ b/verify_artifacts.html @@ -0,0 +1,228 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia Site Renderer 1.7.1 + | Rendered using Apache Maven Fluido Skin 1.6 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Hivemall – 1. Preparation</title> + <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.min.css" /> + <link rel="stylesheet" href="./css/site.css" /> + <link rel="stylesheet" href="./css/print.css" media="print" /> + <script type="text/javascript" src="./js/apache-maven-fluido-1.6.min.js"></script> + </head> + <body class="topBarEnabled"> + <a href="https://github.com/apache/incubator-hivemall"> + <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;" + src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" + alt="Fork me on GitHub"> + </a> + <div id="topbar" class="navbar navbar-fixed-top navbar-inverse"> + <div class="navbar-inner"> + <div class="container"><div class="nav-collapse"> + <ul class="nav"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="index.html" title="Home">Home</a></li> + <li><a href="download.html" title="Download">Download</a></li> + <li><a href="license.html" title="Licenses">Licenses</a></li> + <li><a href="team-list.html" title="Team">Team</a></li> + <li><a href="poweredby.html" title="Powered By">Powered By</a></li> + <li><a href="http://incubator.apache.org/projects/hivemall.html" title="Incubation Status">Incubation Status</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="userguide/index.html" title="User Guide">User Guide</a></li> + <li><a href="overview.html" title="Overview">Overview</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/HIVEMALL" target="_blank" title="Wiki">Wiki</a></li> + <li><a href="faq.html" title="FAQ">FAQ</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li> + <li><a href="https://issues.apache.org/jira/browse/HIVEMALL" target="_blank" title="Issues (Jira)">Issues (Jira)</a></li> + <li><a href="repository.html" title="Source (Git)">Source (Git)</a></li> + <li><a href="https://travis-ci.org/apache/incubator-hivemall" target="_blank" title="Travis CI">Travis CI</a></li> + <li><a href="contributing.html" title="Contributing">Contributing</a></li> + <li><a href="release-guide.html" title="Release Guide">Release Guide</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a> + <ul class="dropdown-menu"> + <li><a href="http://www.apache.org/foundation/how-it-works.html" target="_blank" title="How Apache Works">How Apache Works</a></li> + <li><a href="http://www.apache.org/foundation/" target="_blank" title="Foundation">Foundation</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank" title="Sponsoring Apache">Sponsoring Apache</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank" title="Thanks">Thanks</a></li> + </ul> + </li> + </ul> + <ul class="nav pull-right"><li> + <a href="https://twitter.com/ApacheHivemall" class="twitter-follow-button" data-show-count="false" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow ApacheHivemall</a> + <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> + </li></ul> + </div> + </div> + </div> + </div> + <div class="container"> + <div id="banner"> + <div class="pull-left"><div id="bannerLeft"><h2>Apache Hivemall</h2> +</div> +</div> + <div class="pull-right"></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li id="publishDate">Last Published: 2018-01-25<span class="divider">|</span> +</li> + <li id="projectVersion">Version: 0.5.0-incubating-SNAPSHOT</li> + </ul> + </div> + <div id="bodyColumn" > +<!-- + 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. +--> +<!-- toc --><h1>1. Preparation</h1> +<div class="section"> +<h2><a name="Install_required_softwares"></a>Install required softwares</h2> +<p>GPG and Maven, JDK 7 is mandatory for verification.</p> + +<div class="source"> +<div class="source"><pre class="prettyprint">brew install gpg gpg-agent pinentry-mac +brew install maven +brew install md5sha1sum +</pre></div></div></div> +<div class="section"> +<h2><a name="Import_GPG_KEYS"></a>Import GPG KEYS</h2> + +<div class="source"> +<div class="source"><pre class="prettyprint"># Download GPG KEYS +wget https://dist.apache.org/repos/dist/dev/incubator/hivemall/KEYS + +# import KEYS for GPG verification +gpg --import KEYS +</pre></div></div> +<h1>2. Download all release artifacts</h1> + +<div class="source"> +<div class="source"><pre class="prettyprint">VERSION=0.5.0 +RC_NUMBER=2 + +wget -e robots=off --no-check-certificate \ + -r -np --reject=html,txt,tmp -nH --cut-dirs=5 \ + https://dist.apache.org/repos/dist/dev/incubator/hivemall/${VERSION}-incubating-rc${RC_NUMBER}/ +</pre></div></div> +<h1>3. Verify SHA1, MD5, and GPG signatures.</h1> + +<div class="source"> +<div class="source"><pre class="prettyprint">cd ${VERSION}-incubating-rc${RC_NUMBER}/ + +for f in `find . -type f -iname '*.sha1'`; do + echo -n "Verifying ${f%.*} ... " + sha1sum ${f%.*} | cut -f1 -d' ' | diff -Bw - ${f} + if [ $? -eq 0 ]; then + echo 'Valid' + else + echo "SHA1 is Invalid: ${f}" >&2 + exit 1 + fi +done +echo +for f in `find . -type f -iname '*.md5'`; do + echo -n "Verifying ${f%.*} ... " + md5sum ${f%.*} | cut -f1 -d' ' | diff -Bw - ${f} + if [ $? -eq 0 ]; then + echo 'Valid' + else + echo "MD5 is Invalid: ${f%.*}" >&2 + exit 1 + fi +done +echo +for f in `find . -type f -iname '*.asc'`; do + gpg --verify ${f} + if [ $? -eq 0 ]; then + echo "GPG signature is correct: ${f%.*}" + else + echo "GPG signature is Invalid: ${f%.*}" >&2 + exit 1 + fi + echo +done +</pre></div></div> +<h1>4. Build, Test, and Verify source</h1> + +<div class="source"> +<div class="source"><pre class="prettyprint">unzip hivemall-${version}-incubating-rc${rc_number}-source-release.zip +cd hivemall-${version}-incubating-rc${rc_number} + +# workaround for Maven sign-release-artifacts plugin +export GPG_TTY=$(tty) + +# JDK 7 is required for packaging +export JAVA_HOME=`/usr/libexec/java_home -v 1.7` + +# Java 8 is required for building Spark 2.2 module +export JAVA8_HOME=`/usr/libexec/java_home -v 1.8` + +# Try to create artifacts +export MAVEN_OPTS=-XX:MaxPermSize=256m + +# Try to create artifacts +# RAT license check and unit tests will be issued +mvn -Papache-release clean install + +# Verify Signatures of Release Artifacts +cd target/ +for file in `find . -type f -iname '*.asc'`; do + gpg --verify ${file} +done +</pre></div></div></div> + </div> + </div> + <hr/> + <footer> + <div class="container"> + <div class="row"> +<p> + <small> + Apache Hivemall is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by <a href="http://incubator.apache.org/">the Apache Incubator</a>. + Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, + and decision making process have stabilized in a manner consistent with other successful ASF projects. + While incubation status is not necessarily a reflection of the completeness or stability of the code, + it does indicate that the project has yet to be fully endorsed by the ASF. + </small> + </p> + </div> + <p id="poweredBy" class="pull-right"> <a href="http://incubator.apache.org/projects/hivemall.html" title="Apache Incubator" class="builtBy"><img class="builtBy" alt="Apache Incubator" src="http://incubator.apache.org/images/egg-logo.png" /></a> + </p> + </div> + </footer> + </body> +</html>
