Skip to content
Permalink
Browse files
community and dev-setup fixes
* remove incubator from mailing lists
* specify Eclipse version
* add IntelliJ IDEA to prerequisites
* some code formatting
* fix the "Manual Trigger" section

Change-Id: Ic7b3c53ed39b1465954162e7e1f31b67f9df699c
Reviewed-on: https://asterix-gerrit.ics.uci.edu/998
Reviewed-by: Yingyi Bu <buyingyi@gmail.com>
  • Loading branch information
westmann committed Jul 22, 2016
1 parent 7bb6ace commit ad8974b7614da1b68a9f0b2b30c42eca2c3263a9
Showing 4 changed files with 127 additions and 99 deletions.
@@ -14,12 +14,12 @@ answers to any AsterixDB-related questions.
Most AsterixDB and Hyracks related discussion takes place on these mailing lists. To subscribe, send a blank email to the subscription address.

{:.table .table-striped .table-bordered}
| Name | Address | Subscribe Address | Archives |
|---------------|----------------------------------------------|--------------------------------------------------------|----------|
| dev | dev@asterixdb.incubator.apache.org | dev-subscribe@asterixdb.incubator.apache.org | [link](https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-dev/)|
| users | users@asterixdb.incubator.apache.org | users-subscribe@asterixdb.incubator.apache.org | [link](https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-users/)|
| commits | commits@asterixdb.incubator.apache.org | commits-subscribe@asterixdb.incubator.apache.org | [link](https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-commits/)|
| notifications | notifications@asterixdb.incubator.apache.org | notifications-subscribe@asterixdb.incubator.apache.org | [link](https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-notifications/)|
| Name | Address | Subscribe Address | Archives |
|---------------|------------------------------------|----------------------------------------------|----------|
| dev | dev@asterixdb.apache.org | dev-subscribe@asterixdb.apache.org | [link](https://mail-archives.apache.org/mod_mbox/asterixdb-dev/)|
| users | users@asterixdb.apache.org | users-subscribe@asterixdb.apache.org | [link](https://mail-archives.apache.org/mod_mbox/asterixdb-users/)|
| commits | commits@asterixdb.apache.org | commits-subscribe@asterixdb.apache.org | [link](https://mail-archives.apache.org/mod_mbox/asterixdb-commits/)|
| notifications | notifications@asterixdb.apache.org | notifications-subscribe@asterixdb.apache.org | [link](https://mail-archives.apache.org/mod_mbox/asterixdb-notifications/)|

### IRC

@@ -129,27 +129,27 @@ <h3 id="mailing-lists">Mailing Lists</h3>
<tbody>
<tr>
<td>dev</td>
<td>dev@asterixdb.incubator.apache.org</td>
<td>dev-subscribe@asterixdb.incubator.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-dev/">link</a></td>
<td>dev@asterixdb.apache.org</td>
<td>dev-subscribe@asterixdb.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/asterixdb-dev/">link</a></td>
</tr>
<tr>
<td>users</td>
<td>users@asterixdb.incubator.apache.org</td>
<td>users-subscribe@asterixdb.incubator.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-users/">link</a></td>
<td>users@asterixdb.apache.org</td>
<td>users-subscribe@asterixdb.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/asterixdb-users/">link</a></td>
</tr>
<tr>
<td>commits</td>
<td>commits@asterixdb.incubator.apache.org</td>
<td>commits-subscribe@asterixdb.incubator.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-commits/">link</a></td>
<td>commits@asterixdb.apache.org</td>
<td>commits-subscribe@asterixdb.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/asterixdb-commits/">link</a></td>
</tr>
<tr>
<td>notifications</td>
<td>notifications@asterixdb.incubator.apache.org</td>
<td>notifications-subscribe@asterixdb.incubator.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/incubator-asterixdb-notifications/">link</a></td>
<td>notifications@asterixdb.apache.org</td>
<td>notifications-subscribe@asterixdb.apache.org</td>
<td><a href="https://mail-archives.apache.org/mod_mbox/asterixdb-notifications/">link</a></td>
</tr>
</tbody>
</table>
@@ -159,7 +159,7 @@ <h3 id="prerequisites">Prerequisites</h3>
<li>A suitable *nix environment (Linux, OSX)</li>
<li>JDK 1.8+</li>
<li>Maven 3.3.9 or greater</li>
<li>A relatively recent version of Eclipse</li>
<li>Eclipse Juno (or later) or IntelliJ IDEA 15.0 (or later)</li>
</ul>

<h3 id="steps">Steps</h3>
@@ -238,8 +238,8 @@ <h4 id="eclipse-ide-setup">Eclipse IDE Setup</h4>
</li>
<li>Set up Eclipse code formatting rules
<ul>
<li>Download files <a href="https://cwiki.apache.org/confluence/download/attachments/61322291/AsterixCodeFormatProfile.xml">AsterixCodeFormatProfile.xml</a>
<a href="https://cwiki.apache.org/confluence/download/attachments/61322291/AsterixCleanupFormatProfile.xml">AsterixCleanupFormatProfile.xml</a></li>
<li>Download files <a href="https://cwiki.apache.org/confluence/download/attachments/61322291/AsterixCodeFormatProfile.xml">AsterixCodeFormatProfile.xml</a>
<a href="https://cwiki.apache.org/confluence/download/attachments/61322291/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>
@@ -272,32 +272,33 @@ <h2 id="signing-up-for-gerrit">Signing Up for Gerrit</h2>
<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>From there, you will get a page asking you to allow <code>asterix-gerrit.ics.uci.edu</code> 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>
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 <code>.ssh/config</code> 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>
<p>Finally, verify that you have everything set up: From a command-line, type</p>

<pre><code> **** Welcome to Gerrit Code Review ****
<pre><code>ssh -p 29418 username@asterix-gerrit.ics.uci.edu
</code></pre>
</li>
<li>
<p>You should see</p>

Hi Full Name, you have successfully connected over SSH.
<pre><code>**** Welcome to Gerrit Code Review ****

Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
Hi Full Name, you have successfully connected over SSH.

git clone ssh://username@asterix-gerrit.ics.uci.edu:29418/REPOSITORY_NAME.git
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>
</li>
</ol>

<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>

@@ -308,15 +309,21 @@ <h2 id="configuring-your-local-working-environment-for-gerrit">Configuring your
<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>
<li>
<p>At the command-line, run the following. Replace “username” with the user name you chose in step 7 above.</p>

<pre><code>git config --global gerrit.url ssh://username@asterix-gerrit.ics.uci.edu:29418/
</code></pre>
</li>
<li>
<p>Download my “git-gerrit” utility library:</p>

<pre><code>git clone https://github.com/ceejatec/git-gerrit
</code></pre>
</li>
<li>
<p>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.</p>
</li>
</ol>

<h3 id="once-per-repository-tasks">Once-per-repository tasks</h3>
@@ -342,7 +349,7 @@ <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
<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>, i.e., the GitHub mirror or the ASF repository.</p>

<pre><code>git checkout -b my_branch
@@ -393,29 +400,42 @@ <h2 id="making-more-changes">Making More Changes</h2>

<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>
<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</p>

<pre><code>git gerrit new
</code></pre>

<p>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>
<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, verification 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>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>
<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>
<p>Builds of Gerrit patches can also be fully manually triggered from Jenkins.
This can be desirable 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>

<hr />

0 comments on commit ad8974b

Please sign in to comment.