| <!DOCTYPE html> |
| <!-- |
| | Generated by Apache Maven Doxia Site Renderer 1.8.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 – Release Prerequisites</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="licenses.html" title="Licenses">Licenses</a></li> |
| <li><a href="team.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="mailing-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: 2019-10-31<span class="divider">|</span> |
| </li> |
| <li id="projectVersion">Version: 0.6.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. |
| --><h1>Release Prerequisites</h1> |
| <p>This document describes the initial setup procedures for making a release of Apache Hivemall.</p> |
| <p>If it is your first time doing an Apache release, then there is some initial setup involved. You should read this page before proceeding. </p> |
| <div class="section"> |
| <h2><a name="Software"></a>Software</h2> |
| <p>You would need the following softwares for building and making a release:</p> |
| |
| <ul> |
| |
| <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> |
| |
| <li>JDK 7 (<i>not JDK 8 nor 9 to support Java 7 or later</i>)</li> |
| |
| <li>maven (>=v3.3.1)</li> |
| </ul> |
| <div class="section"> |
| <h3><a name="Installation"></a>Installation</h3> |
| |
| <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 |
| $ npm install gitbook-cli -g |
| </pre></div></div></div> |
| <div class="section"> |
| <h3><a name="Java_7_setup_Optional"></a>Java 7 setup (Optional)</h3> |
| <p>We recommend to use <a class="externalLink" href="http://www.jenv.be/">jEnv</a> for Java 7 environment setup on Mac OS X.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ /usr/libexec/java_home -v 1.7 |
| /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home |
| $ jenv add `/usr/libexec/java_home -v 1.7` |
| $ jenv versions |
| * system (set by /Users/myui/.jenv/version) |
| 1.7 |
| 1.7.0.80 |
| oracle64-1.7.0.80 |
| |
| # configure to use Java 7 for Hivemall |
| $ cd incubator-hivemall |
| $ jenv local 1.7 |
| $ java -version |
| java version "1.7.0_80" |
| </pre></div></div></div></div> |
| <div class="section"> |
| <h2><a name="PGP_signing"></a>PGP signing</h2> |
| <p>To perform a release, you need to add signatures to release packages. See the <a class="externalLink" href="http://www.apache.org/dev/release-signing.html">Signing Releases</a> page for information on how to do this.</p> |
| <p>In a nutshell, you’ll need to follow the instructions at <a class="externalLink" href="http://www.apache.org/dev/openpgp.html#generate-key">How To OpenPGP</a> to generate a new code signing key and publish the public key in various places.</p> |
| <div class="section"> |
| <h3><a name="Setting_up_signing_keys"></a>Setting up signing keys</h3> |
| <p>1). Generate a key-pair with gpg using <a class="externalLink" href="http://www.apache.org/dev/openpgp.html#key-gen-generate-key">this instruction</a>. The program’s default values should be fine. Please use a signing key with an ASF email address (i.e. <a class="externalLink" href="mailto:your-alias@apache.org)">your-alias@apache.org)</a>. Generated Keys should be RSA with at least 4096 bits.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ gpg --full-generate-key |
| </pre></div></div> |
| <p>Here is my key.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ gpg --list-key --keyid-format LONG |
| |
| pub rsa4096/93F4D08DC8CE801B 2017-11-01 [SC] |
| 7A6BA1A10CC6ABF47159152193F4D08DC8CE801B |
| uid [ultimate] Makoto Yui (CODE SIGNING KEY) <myui@apache.org> |
| sub rsa4096/C3F1C8E219A64221 2017-11-01 [E] |
| </pre></div></div> |
| <p>Public key is <tt>93F4D08DC8CE801B</tt> in the above case.</p> |
| <p>2). Send your public PGP key to a public keyserver.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ gpg --keyserver pgp.mit.edu --send-keys <your-public-pgp-key> |
| </pre></div></div> |
| <p>3). Update the PGP key fingerprint of your account on <a class="externalLink" href="http://id.apache.org">id.apache.org</a>. Find your PGP key fingerprint by </p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ gpg --fingerprint |
| </pre></div></div> |
| <p>4). Update KEYS file in the git repo to your public key be listed in it.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ export YOUR_NAME="Makoto Yui" |
| $ (gpg --list-sigs ${YOUR_NAME} && gpg --armor --export ${YOUR_NAME} && echo) >> KEYS |
| |
| # Update git repository |
| $ git add KEYS |
| $ git commit -m "Added the public key of YOUR NAME" |
| $ git push origin master |
| </pre></div></div> |
| <p>5). Add your public key to KEYS file in the subversion repository:</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">- dev: https://dist.apache.org/repos/dist/dev/hivemall/KEYS |
| - release: https://dist.apache.org/repos/dist/release/hivemall/KEYS |
| |
| # checkout dist repos |
| $ svn co --depth immediates https://dist.apache.org/repos/dist dist |
| $ cd dist |
| $ svn up --set-depth infinity dev/incubator/hivemall |
| $ svn up --set-depth infinity release/incubator/hivemall |
| |
| # edit KEYS files |
| $ svn add * --force |
| $ svn ci -m "Updated KEYS file of Incubator Hivemall" && svn up |
| </pre></div></div> |
| <p>6). Once you have followed these instructions, you should have:</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">* Your public key viewable at https://people.apache.org/keys/committer/your-asf-id.asc |
| * Your public key also viewable at https://people.apache.org/keys/group/hivemall.asc |
| </pre></div></div> |
| <div class="section"> |
| <h4><a name="Configure_PGP_signing_on_git_optional"></a>Configure PGP signing on git (optional)</h4> |
| <p>After completing this, you should also <a class="externalLink" href="https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work">configure git</a> to use your key for signing.</p> |
| <p>If your signing key is identified by <tt>01234567</tt>, then you can configure git with:</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ git config --global user.signingkey 01234567 |
| </pre></div></div> |
| <p>If you are using gpg, you’ll then need to tell git to use it.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ git config --global gpg.program gpg |
| </pre></div></div> |
| <p>You can enable GPG signing always true on the particular git repository by:</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ git config commit.gpgsign true |
| </pre></div></div> |
| <p>To sign all commits by default in any local repository on your computer, run</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ git config --global commit.gpgsign true |
| </pre></div></div> |
| <p>Use pientry to omit typing a passphrase for each commit.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">$ echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf |
| $ echo -e "use-agent\nno-tty" >> ~/.gnupg/gpg.conf |
| </pre></div></div> |
| <p>Tips: You may get an error about a passphrase not being provided when signing with git. If this happens try running the command below, which should case the passphrase prompt to show in the terminal.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint">export GPG_TTY=`tty` |
| </pre></div></div></div></div></div> |
| <div class="section"> |
| <h2><a name="Configure_Maven_for_publishing_artifacts"></a>Configure Maven for publishing artifacts</h2> |
| <p>Update your <tt>~/.m2/settings.xml</tt> following <a class="externalLink" href="http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env">this instructions</a>.</p> |
| |
| <div class="source"> |
| <div class="source"><pre class="prettyprint"><settings> |
| ... |
| <servers> |
| <!-- To publish a snapshot of some part of Maven --> |
| <server> |
| <id>apache.snapshots.https</id> |
| <username> <!-- YOUR APACHE LDAP USERNAME --> </username> |
| <password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password> |
| </server> |
| <!-- To stage a release of some part of Maven --> |
| <server> |
| <id>apache.releases.https</id> |
| <username> <!-- YOUR APACHE LDAP USERNAME --> </username> |
| <password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password> |
| </server> |
| ... |
| </servers> |
| </settings> |
| </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="images/apache-incubator-logo.png" /></a> |
| </p> |
| </div> |
| </footer> |
| </body> |
| </html> |