<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="https://asterixdb.incubator.apache.org/favicon.ico">

    <title>Contributing to AsterixDB</title>

    <!-- Bootstrap core CSS -->
    <link href="https://asterixdb.incubator.apache.org/css/bootstrap.min.css" rel="stylesheet">
    <!-- Bootstrap theme -->

    <!-- Custom styles for this template -->
    <link href="https://asterixdb.incubator.apache.org/css/theme.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
  </head>

  <div class="container theme-showcase" role="main">
  <div class="masthead">
    <p class="lead">
        <a href="https://asterixdb.incubator.apache.org/index.html"><img src="https://asterixdb.incubator.apache.org/img/asterixdb.png" style="height:75px; width:auto; vertical-align:bottom; margin-top:10px;"/></a>
    </p>
</div>

<nav class="navbar navbar-default">
        <div class="container">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="https://asterixdb.incubator.apache.org/index.html">Overview</a>
          </div>
          <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
              <li><a href="https://asterixdb.incubator.apache.org/download.html">Download</a></li>
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
                <ul class="dropdown-menu" role="menu">
                  <li class="dropdown-header">Stable release</li>
                  <li><a href="http://asterixdb.ics.uci.edu/documentation/index.html">Documentation for 0.8.7<i class="fa fa-external-link fa-sm"></i></a></li>
                  <li class="divider"></li>
                  <li class="dropdown-header">Snapshot release</li>
                  <li><a href="https://asterix-jenkins.ics.uci.edu/job/asterix-test-full/site/asterix-doc/index.html">Documentation for 0.8.8-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                </ul>
              </li>
              <li><a href="https://asterixdb.incubator.apache.org/about.html">About</a></li>
              <li><a href="https://asterixdb.incubator.apache.org/community.html">Community</a></li>
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Contributing <span class="caret"></span></a>
                <ul class="dropdown-menu" role="menu">
                  <li class="dropdown-header">For New Contributors</li>
                  <li><a href="https://asterixdb.incubator.apache.org/dev-setup.html">Development Setup</a></li>
                  <li class="divider"></li>
                  <li class="dropdown-header">For Committers</li>
                  <li><a href="https://asterixdb.incubator.apache.org/pushing.html">Pushing changes</a></li>
                </ul>
              </li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
      </nav>


  <div class="row">
<div class="col-md-8 col-centered">
<h2>Contributing to AsterixDB</h2>
<hr />

<ul id="markdown-toc">
  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
  <li><a href="#master-snapshots" id="markdown-toc-master-snapshots">Master snapshots</a>    <ul>
      <li><a href="#managix-installer" id="markdown-toc-managix-installer">Managix Installer</a></li>
      <li><a href="#yarn-installer" id="markdown-toc-yarn-installer">YARN Installer</a></li>
    </ul>
  </li>
  <li><a href="#setting-up-an-asterix-development-environment-in-eclipse" id="markdown-toc-setting-up-an-asterix-development-environment-in-eclipse">Setting up an Asterix Development environment in Eclipse</a>    <ul>
      <li><a href="#prerequisites" id="markdown-toc-prerequisites">Prerequisites</a></li>
      <li><a href="#steps" id="markdown-toc-steps">Steps</a></li>
    </ul>
  </li>
  <li><a href="#signing-up-for-gerrit" id="markdown-toc-signing-up-for-gerrit">Signing Up for Gerrit</a></li>
  <li><a href="#configuring-your-local-working-environment-for-gerrit" id="markdown-toc-configuring-your-local-working-environment-for-gerrit">Configuring your local working environment for Gerrit</a>    <ul>
      <li><a href="#one-time-tasks" id="markdown-toc-one-time-tasks">One-time tasks</a></li>
      <li><a href="#once-per-repository-tasks" id="markdown-toc-once-per-repository-tasks">Once-per-repository tasks</a></li>
    </ul>
  </li>
  <li><a href="#making-changes---working-method" id="markdown-toc-making-changes---working-method">Making Changes - working method</a></li>
  <li><a href="#making-more-changes" id="markdown-toc-making-more-changes">Making More Changes</a></li>
  <li><a href="#using-jenkins-with-gerrit" id="markdown-toc-using-jenkins-with-gerrit">Using Jenkins with Gerrit</a>    <ul>
      <li><a href="#verification" id="markdown-toc-verification">Verification</a></li>
      <li><a href="#retrigggering-builds-and-triggering-builds-manually" id="markdown-toc-retrigggering-builds-and-triggering-builds-manually">Retrigggering builds and triggering builds manually</a></li>
      <li><a href="#cross-project-dependencies" id="markdown-toc-cross-project-dependencies">Cross-project Dependencies</a></li>
    </ul>
  </li>
</ul>

<hr />

<h2 id="introduction">Introduction</h2>
<p>We warmly welcome any contributions to the AsterixDB or related (Hyracks, Pregelix) projects. A great way to start contributing is to pick a bug labelled starter in JIRA and submit a patch for it, to get acquainted with our codebase and development process.</p>

<hr />

<h2 id="master-snapshots">Master snapshots</h2>
<p>If you are a developer simply looking for a snapshot of the latest development version of AsterixDB to test out your application that is based on top of AsterixDB, snapshots from the latest successful push to our master branch are available below. These are non ASF-release, automatic builds.</p>

<h3 id="managix-installer">Managix Installer</h3>
<p><a class="btn btn-md btn-warning" href="https://asterix-jenkins.ics.uci.edu/job/asterix-test-full/lastStableBuild/org.apache.asterix$asterix-installer/artifact/org.apache.asterix/asterix-installer/0.8.8-SNAPSHOT/asterix-installer-0.8.8-SNAPSHOT-binary-assembly.zip" role="button">Download AsterixDB 0.8.8-SNAPSHOT <i class="fa fa-download fa-lg"></i> </a></p>

<h3 id="yarn-installer">YARN Installer</h3>
<p><a class="btn btn-md btn-warning" href="https://asterix-jenkins.ics.uci.edu/job/asterix-test-full/lastStableBuild/org.apache.asterix$asterix-yarn/artifact/org.apache.asterix/asterix-yarn/0.8.8-SNAPSHOT/asterix-yarn-0.8.8-SNAPSHOT-binary-assembly.zip" role="button">Download AsterixDB 0.8.8-SNAPSHOT <i class="fa fa-download fa-lg"></i> </a></p>

<hr />

<h2 id="setting-up-an-asterix-development-environment-in-eclipse">Setting up an Asterix Development environment in Eclipse</h2>

<h3 id="prerequisites">Prerequisites</h3>
<ul>
  <li>A suitable *nix environment (Linux, OSX)</li>
  <li>JDK 1.8+</li>
  <li>Maven 3.1.1 or greater</li>
  <li>A relatively recent version of Eclipse</li>
</ul>

<h3 id="steps">Steps</h3>

<ol>
  <li>
    <p>Check out Hyracks and Asterix master in two folders via git in the command line. Assume that the path is <code>$HOME/workspace</code>.</p>

    <pre><code>     git clone https://github.com/apache/incubator-asterixdb/
     git clone https://github.com/apache/incubator-asterixdb-hyracks/
</code></pre>

    <p>You will now have <code>$HOME/workspace/incubator-asterixdb/</code> and <code>$HOME/workspace/incubator-asterixdb-hyracks/</code>.</p>
  </li>
  <li>
    <p>Go to the hyracks and install it’s artifacts to the local Maven repository by executing the following commands:</p>

    <pre><code>     cd incubator-asterixdb-hyracks/
     mvn install -DskipTests
</code></pre>
  </li>
  <li>
    <p>Go to the asterixdb folder and perform the same action:</p>

    <pre><code>      cd ../incubator-asterixdb/asterix-maven-plugins/
      mvn install -DskipTests
      cd ../
      mvn install -DskipTests
</code></pre>
  </li>
  <li>In Eclipse, import hyracks as an existing Maven Project.
    <ul>
      <li><code>File -&gt; Import -&gt; Maven -&gt; Existing Maven Projects -&gt; Next</code></li>
      <li>Specify the Root directory as <code>incubator-asterixdb-hyracks</code> and then click Next until Finish is enabled.</li>
      <li>If Eclipse tries to install the <code>m2e</code> (Maven To Eclipse) connector, let it do so.</li>
      <li>There might be some plugin errors; however, that is not a big deal. Wait until the job finishes.</li>
      <li>Then, click Finish.</li>
    </ul>
  </li>
  <li>Then import asterixdb as an existing Maven Project.
    <ul>
      <li><code>File -&gt; Import -&gt; Maven -&gt; Existing Maven Projects -&gt; Next</code></li>
      <li>Specify root directory as <code>$HOME/workspace/asterixdb</code> and then click Next until Finish is enabled.</li>
      <li>Eclipse may try installing <code>m2e</code> or other plugins again; let it do so.</li>
      <li>Then, click Finish.</li>
    </ul>
  </li>
  <li>Fix Eclipse’s build path to include compile-time generated sources.
    <ul>
      <li>Right click the project where a red X mark is shown(e.g. <code>asterix-algebra</code>. Then resolve by applying the following:
        <ul>
          <li>Right click asterix-algebra. Click Build Path and Configure Build Path. Click Add Folder.</li>
          <li>Under the <code>target -&gt; generated sources</code>, check the parent folder of the <code>edu</code> folder and click OK.</li>
          <li>For example, if the directory structure is “target - generated-sources - javacc - org - apache …”, check the javacc directory and click OK. Then X mark will dissapear.</li>
        </ul>
      </li>
      <li>Repeat this step to all projects which show a red X mark except “asterix-fuzzyjoin” and “asterix-transactions”.</li>
      <li>It may be the case that only “asterix-algebra” and “asterix-runtime” will require these steps.</li>
    </ul>
  </li>
  <li>Set up Eclipse code formatting rules
    <ul>
      <li>Download files <a href="http://wiki.asterixdb.googlecode.com/git/AsterixCodeFormatProfile.xml">AsterixCodeFormatProfile.xml</a> <a href="http://wiki.asterixdb.googlecode.com/git/AsterixCleanupFormatProfile.xml">AsterixCleanupFormatProfile.xml</a></li>
      <li>Import profiles into Eclipse
        <ul>
          <li>Preferences -&gt; Java -&gt; Code style -&gt; Formatter -&gt; Import -&gt; Select AsterixCodeFormatProfile.xml</li>
          <li>Preferences -&gt; Java -&gt; Code style -&gt; Clean up -&gt; Import -&gt; Select AsterixCleanupFormatProfile.xml</li>
          <li>Preferences -&gt; Java -&gt; Editor -&gt; Save actions -&gt; Perform the selected action on save -&gt; Format source code</li>
        </ul>
      </li>
    </ul>
  </li>
</ol>

<hr />

<h2 id="signing-up-for-gerrit">Signing Up for Gerrit</h2>

<p>First, to contribute patches to AsterixDB, you should have an ICLA on file with the Apache Software Foundation.
For details see the ASF website <a href="https://www.apache.org/dev/new-committers-guide.html#cla">here</a>
You should only need to perform the following steps once.</p>

<p>Our Gerrit server is <a href="https://asterix-gerrit.ics.uci.edu/">here</a></p>

<ol>
  <li>Visit the above URL, and click on “Register” in the upper right.</li>
  <li>Gerrit uses OpenID; you may create an account using any OpenID provider, or with a Yahoo! account.</li>
  <li>Click on “Sign in with a Yahoo! ID”. You will be taken to a page to log in to Yahoo!.</li>
  <li>From there, you will get a page asking you to allow asterix-gerrit.ics.uci.edu to access your email and basic information.  Approve this request.</li>
  <li>You will be directed back to Gerrit to complete the account signup. Make sure to fill out this page! It is necessary to allow you to push code changes to Gerrit for review.</li>
  <li>For “Full Name” and “Preferred Email”, enter what you like. If you would like to register a different email address such as an @uci.edu address, you may do so. This is where Gerrit will send you notifications about code review requests, voting, and so on.</li>
  <li>For “Select a unique username”, choose a short alphanumeric ID. This will be your ssh username for git access. Be sure to click “Select Username” to verify that the name is unique and allowed.</li>
  <li>Also provide a ssh public key here. There is information on the page on creating one if you do not have one. Click “Add” when done.
    * Note that you can create a new ssh public key just for Gerrit if you like; if you do so you will need to modify your .ssh/config file to ensure the right key is selected.</li>
  <li>Click “Continue” at the bottom of the page.</li>
  <li>
    <p>Finally, verify that you have everything set up: From a command-line, type
<code>
ssh -p 29418 username@asterix-gerrit.ics.uci.edu
</code></p>
  </li>
  <li>You should see</li>
</ol>

<pre><code>  ****    Welcome to Gerrit Code Review    ****

  Hi Full Name, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://username@asterix-gerrit.ics.uci.edu:29418/REPOSITORY_NAME.git

</code></pre>

<p>At this point, please send an email to Chris or Ian, specifying the email address of your new account, and ask to be added to the “AsterixDB Devs” group. You may push change proposals to Gerrit, and vote +1/-1 Code Review on any proposals without being in AsterixDB Devs, but you cannot vote +2 on anything to allow a change to be merged.</p>

<hr />

<h2 id="configuring-your-local-working-environment-for-gerrit">Configuring your local working environment for Gerrit</h2>

<h3 id="one-time-tasks">One-time tasks</h3>

<ol>
  <li>At the command-line, run the following. Replace “username” with the user name you chose in step 7 above.
<code>
git config --global gerrit.url ssh://username@asterix-gerrit.ics.uci.edu:29418/
</code></li>
  <li>Download my “git-gerrit” utility library:
<code>
git clone https://github.com/ceejatec/git-gerrit
</code></li>
  <li>Ensure that the <code>git-gerrit/git-gerrit</code> script is on your PATH. You could copy it to somewhere, but it would be best to leave it inside the github clone so you can easily get updates.</li>
</ol>

<h3 id="once-per-repository-tasks">Once-per-repository tasks</h3>

<ol>
  <li>
    <p>To work on (say) Asterix, first clone the Google Code repository (if you already have a local clone, great!).</p>

    <p>git clone https://github.com/apache/incubator-asterixdb</p>
  </li>
  <li>
    <p><code>cd</code> into the clone repo directory, and then run the following command to create the “gerrit” remote.</p>

    <p>git gerrit init</p>
  </li>
</ol>

<hr />

<h2 id="making-changes---working-method">Making Changes - working method</h2>

<ol>
  <li>
    <p>When you want to start working on a bug, feature, etc, first make a local <code>git</code> branch. Never work directly on <code>master</code>! <code>master</code> should always be a pure mirror of <code>origin/master</code>, ie, Google Code.</p>

    <pre><code>   git checkout -b my_branch
</code></pre>
  </li>
  <li>Make your changes, test them, etc. Feel free to <code>git commit</code> as often as you like.</li>
  <li>
    <p><strong>Optional</strong>: If you like, you can push your branch up to Google Code, either to share it with others or as a backup. You may do this at whatever point in time you like.</p>

    <pre><code>   git push origin my_branch
</code></pre>
  </li>
  <li>
    <p>Every so often, you should update your local <code>master</code> mirror, and then merge that onto your working branch. This will prevent your branch from falling too far out of date, and ensure that your code review proposals will merge successfully with <code>master</code>. There are a number of ways to do this, but <code>git-gerrit</code> provides a convenience function:</p>

    <pre><code>   git gerrit update
</code></pre>
  </li>
  <li>
    <p>When you are ready to submit changes for code review, first ensure that you have committed everything locally that is necessary (<code>git status</code> should report “nothing to commit, working directory clean”). This is also a good time to update (see step 4). Then run:</p>

    <pre><code>   git gerrit submit
</code></pre>
  </li>
  <li>This will pop open your editor to invite you to create a good commit message. This will be the single commit message which will be the only one to appear in the project’s master git history. Take the time to make it clear. The editor will contain the log messages of everything you committed on your branch as a reminder, but generally you will want to delete all this and replace it with a comprehensive message. Also: As noted in the initial message, the last line of the buffer will contain a <code>Change-Id</code> field. Do not delete that line! It is used by Gerrit to identify this particular merge proposal.</li>
  <li>
    <p>When you save your commit message, git-gerrit will push all of the changes from your working branch up to Gerrit. Assuming no errors, you should see output similar to the following:</p>

    <pre><code>   remote: Resolving deltas: 100% (1/1)
   remote: Processing changes: new: 1, refs: 1, done    
   remote: 
   remote: New Changes:
   remote:   http://fulliautomatix.ics.uci.edu:8443/30
   remote: 
   To ssh://ceej@fulliautomatix.ics.uci.edu:29418/ceej-gerrit-test
    * [new branch]      HEAD -&gt; refs/for/master
</code></pre>
  </li>
  <li>That URL under “New Changes” is your code review! Send it to others to request reviews.</li>
  <li>If you get any negative code reviews and need to make changes, you can just repeat steps 2 - 6 of the working method. Your local branch will still have all the history you put there, if you need to revert changes or look back and see what you did, etc.</li>
  <li>When you repeat step 6, you will notice two things: First, git-gerrit keeps the change message for you, including the Change-Id, so you don’t have to re-invent it every time. Second, the output from <code>git gerrit submit</code> will not include the URL of the review this time. I’m not sure why; I wish it did. But if you re-visit the old URL in your browser, you should see an additional “Patch Set” containing your revised changes for people to review.</li>
</ol>

<h2 id="making-more-changes">Making More Changes</h2>

<p>You may have as many feature branches as you want locally, and each may be at any point in the review cycle.</p>

<p>Once you are done with a change (that is, it has been Code Reviewed and approved in Gerrit and merged), it is probably best to start work on the next big thing on a new branch. However, git-gerrit attempts to be smart if you choose to re-use a branch. For example, it should notice if the “current” Change-Id for a branch has been merged to master, and it will create a new Change-Id and a new fresh commit message the next time you run <code>git gerrit submit</code>.</p>

<p>In that case, you may notice that the list of changes on the branch still contains older commits which have been merged. That is due to the unfortunate way Gerrit works; it requires squashing to a single git commit for review, which loses the association with the original commits in your history.</p>

<p>It is also possible that you may want to re-use a branch and git-gerrit fails to notice that the older change has been merged - or perhaps the change was Abandoned on Gerrit and not merged, and you want to continue working on the same branch to create a new proposal. In this case, run
<code>
git gerrit new
</code>
on your branch. This will force git-gerrit to create a new Change-Id and commit message the next time you run <code>git gerrit submit</code>.</p>

<hr />

<h2 id="using-jenkins-with-gerrit">Using Jenkins with Gerrit</h2>

<h3 id="verification">Verification</h3>

<p>As of right now, whenever a patch set is submitted to Gerrit (i.e. whenever a user performs ‘git gerrit submit’) are automatically picked up by Jenkins, which runs <code>mvn verify</code> to test the patch fully. Once the build finishes, Jenkins comments on the patchset and votes with the result (+1 for all tests passing, -1 for anything less). Ideally, and in most cases, verifocation of a patchset reqires no intervention. However there are a few exceptions to this as detailed below.</p>

<h3 id="retrigggering-builds-and-triggering-builds-manually">Retrigggering builds and triggering builds manually</h3>

<h4 id="retriggering">Retriggering</h4>
<p>Occasionally, there are builds in which tests failed, but perhaps not for a reason that has anything to do with the proposed patch’s changes. For example, on occasion the Integration tests can have issues with ports on the build server already being bound. The simple work around to this is to try building again.</p>

<p>One way to perform this is by simply visiting the link that is posted on Gerrit by Jenkins, and hitting the ‘Retrigger’ link on the left-hand side of the page. This will try retesting the build with the exact same parameters as last time, hopefully with a different result.</p>

<h4 id="manual-trigger">Manual Trigger</h4>
<p>Builds of Gerrit patches can also be fully manually triggered from Jenkins. This can be desirable if a change is now dependent on a Hyracks change (via the Topic field feature described below), or if the patch is a draft or is not triggered automatically for any other reason. To manually trigger a build of a patchset, visit the Jenkins front-page, and click the ‘Query and Trigger Gerrit patches’ link. This should link to a page allowing you to manually trigger Gerrit patches. In the search field any query that can be searched in the Gerrit web interface can be used, but the default query of all open patchsets is likely fine. Hit the ‘Search’ button, and then click the checkbox that represents the patch that needs to be built. Then simply click ‘Trigger Selected’ and the patch will start building.</p>

<h3 id="cross-project-dependencies">Cross-project Dependencies</h3>

<p>It is sometimes the case that a change in one related project alters interfaces or expected results that an upstream project relies on. The converse can be true as well, such as an AsterixDB change that needs a Hyracks feature. In these sorts of situations, there is a mechanism to describe to Jenkins this dependenc of one project’s patchset to a particular Hyracks Change, by using the ‘Topic’ field in Gerrit. To utilize
this feature, perform the following steps:</p>

<ol>
  <li>First submit the Hyracks change which the upstream (AsterixDB,etc..) change depends on if you have not done so already</li>
  <li>In the Hyracks change details on the Gerrit web interface, take note of the refspec in the <em>Download</em> field of the patchset details. It will look something like <code>refs/changes/07/207/1</code>. This is what uniquely identifies the Hyracks change in Gerrit.</li>
  <li>Submit the dependent change now, if you have not done so already. In the Gerrit web interface, view the change’s details. In the upper left-hand corner, there will be an empty field in a table, labeled <code>Topic</code>, with a notepad icon right-justified in the second column of the table. Click the notepad Icon, and in the resulting dialog box, enter in the refspec (<code>refs/changes/07/207/1</code>) as the Topic value.</li>
  <li>Now, manually trigger the dependent change in Jenkins (see previous section for details)</li>
</ol>

<hr />

</div>
</div>


   <hr />

   <footer>
        <div class="row">
        <div class="col-md-6 col-md-offset-3  text-center">
        <p>&copy; Copyright 2015 The Apache Software foundation. All Rights Reserved. </p>
        <p>Apache AsterixDB, Apache, and the Apache feather logo are trademarks of the Apache Software Foundation</p>
        </div>
        <div class="col-md-1 text-right">
        <img src="https://asterixdb.incubator.apache.org/img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
        </div>
        </div>
   </footer>
    </div> <!-- /container -->


    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="https://asterixdb.incubator.apache.org/js/bootstrap.min.js"></script>
  </body>
</html>
