diff --git a/_site/dev-setup.html b/_site/dev-setup.html
new file mode 100644
index 0000000..4201441
--- /dev/null
+++ b/_site/dev-setup.html
@@ -0,0 +1,391 @@
+<!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.6<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.7-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="#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="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.7+</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>
