blob: 096c6ebf6253c89a8ed057339982bb10e7f688c7 [file] [log] [blame]
<!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">
<link href='images/favicon.ico' rel='shortcut icon' type='image/x-icon'>
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>CarbonData</title>
<style>
</style>
<!-- Bootstrap -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link href="css/style.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.scom/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
</head>
<body>
<header>
<nav class="navbar navbar-default navbar-custom cd-navbar-wrapper">
<div class="container">
<div class="navbar-header">
<button aria-controls="navbar" aria-expanded="false" data-target="#navbar" data-toggle="collapse"
class="navbar-toggle collapsed" type="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="index.html" class="logo">
<img src="images/CarbonDataLogo.png" alt="CarbonData logo" title="CarbocnData logo"/>
</a>
</div>
<div class="navbar-collapse collapse cd_navcontnt" id="navbar">
<ul class="nav navbar-nav navbar-right navlist-custom">
<li><a href="index.html" class="hidden-xs"><i class="fa fa-home" aria-hidden="true"></i> </a>
</li>
<li><a href="index.html" class="hidden-lg hidden-md hidden-sm">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle " data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false"> Download <span class="caret"></span></a>
<ul class="dropdown-menu">
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.2.0/"
target="_blank">Apache CarbonData 2.2.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.1.1/"
target="_blank">Apache CarbonData 2.1.1</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.1.0/"
target="_blank">Apache CarbonData 2.1.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.0.1/"
target="_blank">Apache CarbonData 2.0.1</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/2.0.0/"
target="_blank">Apache CarbonData 2.0.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.6.1/"
target="_blank">Apache CarbonData 1.6.1</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.6.0/"
target="_blank">Apache CarbonData 1.6.0</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.4/"
target="_blank">Apache CarbonData 1.5.4</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.3/"
target="_blank">Apache CarbonData 1.5.3</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.2/"
target="_blank">Apache CarbonData 1.5.2</a></li>
<li>
<a href="https://dist.apache.org/repos/dist/release/carbondata/1.5.1/"
target="_blank">Apache CarbonData 1.5.1</a></li>
<li>
<a href="https://cwiki.apache.org/confluence/display/CARBONDATA/Releases"
target="_blank">Release Archive</a></li>
</ul>
</li>
<li><a href="documentation.html" class="active">Documentation</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">Community <span class="caret"></span></a>
<ul class="dropdown-menu">
<li>
<a href="https://github.com/apache/carbondata/blob/master/docs/how-to-contribute-to-apache-carbondata.md"
target="_blank">Contributing to CarbonData</a></li>
<li>
<a href="https://github.com/apache/carbondata/blob/master/docs/release-guide.md"
target="_blank">Release Guide</a></li>
<li>
<a href="https://cwiki.apache.org/confluence/display/CARBONDATA/PMC+and+Committers+member+list"
target="_blank">Project PMC and Committers</a></li>
<li>
<a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=66850609"
target="_blank">CarbonData Meetups</a></li>
<li><a href="security.html">Apache CarbonData Security</a></li>
<li><a href="https://issues.apache.org/jira/browse/CARBONDATA" target="_blank">Apache
Jira</a></li>
<li><a href="videogallery.html">CarbonData Videos </a></li>
</ul>
</li>
<li class="dropdown">
<a href="http://www.apache.org/" class="apache_link hidden-xs dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Apache</a>
<ul class="dropdown-menu">
<li><a href="http://www.apache.org/" target="_blank">Apache Homepage</a></li>
<li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html"
target="_blank">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
</ul>
</li>
<li class="dropdown">
<a href="http://www.apache.org/" class="hidden-lg hidden-md hidden-sm dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Apache</a>
<ul class="dropdown-menu">
<li><a href="http://www.apache.org/" target="_blank">Apache Homepage</a></li>
<li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html"
target="_blank">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
</ul>
</li>
<li>
<a href="#" id="search-icon"><i class="fa fa-search" aria-hidden="true"></i></a>
</li>
</ul>
</div><!--/.nav-collapse -->
<div id="search-box">
<form method="get" action="http://www.google.com/search" target="_blank">
<div class="search-block">
<table border="0" cellpadding="0" width="100%">
<tr>
<td style="width:80%">
<input type="text" name="q" size=" 5" maxlength="255" value=""
class="search-input" placeholder="Search...." required/>
</td>
<td style="width:20%">
<input type="submit" value="Search"/></td>
</tr>
<tr>
<td align="left" style="font-size:75%" colspan="2">
<input type="checkbox" name="sitesearch" value="carbondata.apache.org" checked/>
<span style=" position: relative; top: -3px;"> Only search for CarbonData</span>
</td>
</tr>
</table>
</div>
</form>
</div>
</div>
</nav>
</header> <!-- end Header part -->
<div class="fixed-padding"></div> <!-- top padding with fixde header -->
<section><!-- Dashboard nav -->
<div class="container-fluid q">
<div class="col-sm-12 col-md-12 maindashboard">
<div class="verticalnavbar">
<nav class="b-sticky-nav">
<div class="nav-scroller">
<div class="nav__inner">
<a class="b-nav__intro nav__item" href="./introduction.html">introduction</a>
<a class="b-nav__quickstart nav__item" href="./quick-start-guide.html">quick start</a>
<a class="b-nav__uses nav__item" href="./usecases.html">use cases</a>
<div class="nav__item nav__item__with__subs">
<a class="b-nav__docs nav__item nav__sub__anchor" href="./language-manual.html">Language Reference</a>
<a class="nav__item nav__sub__item" href="./ddl-of-carbondata.html">DDL</a>
<a class="nav__item nav__sub__item" href="./dml-of-carbondata.html">DML</a>
<a class="nav__item nav__sub__item" href="./streaming-guide.html">Streaming</a>
<a class="nav__item nav__sub__item" href="./configuration-parameters.html">Configuration</a>
<a class="nav__item nav__sub__item" href="./index-developer-guide.html">Indexes</a>
<a class="nav__item nav__sub__item" href="./supported-data-types-in-carbondata.html">Data Types</a>
</div>
<div class="nav__item nav__item__with__subs">
<a class="b-nav__datamap nav__item nav__sub__anchor" href="./index-management.html">Index Managament</a>
<a class="nav__item nav__sub__item" href="./bloomfilter-index-guide.html">Bloom Filter</a>
<a class="nav__item nav__sub__item" href="./lucene-index-guide.html">Lucene</a>
<a class="nav__item nav__sub__item" href="./secondary-index-guide.html">Secondary Index</a>
<a class="nav__item nav__sub__item" href="../spatial-index-guide.html">Spatial Index</a>
<a class="nav__item nav__sub__item" href="../mv-guide.html">MV</a>
</div>
<div class="nav__item nav__item__with__subs">
<a class="b-nav__api nav__item nav__sub__anchor" href="./sdk-guide.html">API</a>
<a class="nav__item nav__sub__item" href="./sdk-guide.html">Java SDK</a>
<a class="nav__item nav__sub__item" href="./csdk-guide.html">C++ SDK</a>
</div>
<a class="b-nav__perf nav__item" href="./performance-tuning.html">Performance Tuning</a>
<a class="b-nav__s3 nav__item" href="./s3-guide.html">S3 Storage</a>
<a class="b-nav__indexserver nav__item" href="./index-server.html">Index Server</a>
<a class="b-nav__prestodb nav__item" href="./prestodb-guide.html">PrestoDB Integration</a>
<a class="b-nav__prestosql nav__item" href="./prestosql-guide.html">PrestoSQL Integration</a>
<a class="b-nav__flink nav__item" href="./flink-integration-guide.html">Flink Integration</a>
<a class="b-nav__scd nav__item" href="./scd-and-cdc-guide.html">SCD & CDC</a>
<a class="b-nav__faq nav__item" href="./faq.html">FAQ</a>
<a class="b-nav__contri nav__item" href="./how-to-contribute-to-apache-carbondata.html">Contribute</a>
<a class="b-nav__security nav__item" href="./security.html">Security</a>
<a class="b-nav__release nav__item" href="./release-guide.html">Release Guide</a>
</div>
</div>
<div class="navindicator">
<div class="b-nav__intro navindicator__item"></div>
<div class="b-nav__quickstart navindicator__item"></div>
<div class="b-nav__uses navindicator__item"></div>
<div class="b-nav__docs navindicator__item"></div>
<div class="b-nav__datamap navindicator__item"></div>
<div class="b-nav__api navindicator__item"></div>
<div class="b-nav__perf navindicator__item"></div>
<div class="b-nav__s3 navindicator__item"></div>
<div class="b-nav__indexserver navindicator__item"></div>
<div class="b-nav__prestodb navindicator__item"></div>
<div class="b-nav__prestosql navindicator__item"></div>
<div class="b-nav__flink navindicator__item"></div>
<div class="b-nav__scd navindicator__item"></div>
<div class="b-nav__faq navindicator__item"></div>
<div class="b-nav__contri navindicator__item"></div>
<div class="b-nav__security navindicator__item"></div>
</div>
</nav>
</div>
<div class="mdcontent">
<section>
<div style="padding:10px 15px;">
<div id="viewpage" name="viewpage">
<div class="row">
<div class="col-sm-12 col-md-12">
<div>
<h1>
<a id="how-to-contribute-to-apache-carbondata" class="anchor" href="#how-to-contribute-to-apache-carbondata" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>How to contribute to Apache CarbonData</h1>
<p>The Apache CarbonData community welcomes all kinds of contributions from anyone with a passion for
faster data format! Apache CarbonData is a new file format for faster interactive query using
advanced columnar storage, index, compression and encoding techniques to improve computing
efficiency,in turn it will help speedup queries an order of magnitude faster over PetaBytes of data.</p>
<p>We use a review-then-commit workflow in CarbonData for all contributions.</p>
<ul>
<li>Engage -&gt; Design -&gt; Code -&gt; Review -&gt; Commit</li>
</ul>
<h2>
<a id="engage" class="anchor" href="#engage" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Engage</h2>
<h3>
<a id="mailing-lists" class="anchor" href="#mailing-lists" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Mailing list(s)</h3>
<p>We discuss design and implementation issues on <a href="mailto:dev@carbondata.apache.org">dev@carbondata.apache.org</a> Join by
emailing <a href="mailto:dev-subscribe@carbondata.apache.org">dev-subscribe@carbondata.apache.org</a></p>
<h3>
<a id="apache-jira" class="anchor" href="#apache-jira" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Apache JIRA</h3>
<p>We use <a href="https://issues.apache.org/jira/browse/CARBONDATA" target=_blank rel="nofollow">Apache JIRA</a> as an issue tracking and
project management tool, as well as a way to communicate among a very diverse and distributed set
of contributors. To be able to gather feedback, avoid frustration, and avoid duplicated efforts all
CarbonData-related work should be tracked there.</p>
<p>If you do not already have an Apache JIRA account, sign up <a href="https://issues.apache.org/jira/" target=_blank rel="nofollow">here</a>.</p>
<p>If a quick search doesn?t turn up an existing JIRA issue for the work you want to contribute,
create it. Please discuss your proposal with a committer or the component lead in JIRA or,
alternatively, on the developer mailing list(<a href="mailto:dev@carbondata.apache.org">dev@carbondata.apache.org</a>).</p>
<p>If there?s an existing JIRA issue for your intended contribution, please comment about your
intended work. Once the work is understood, a committer will assign the issue to you.
(If you don?t have a JIRA role yet, you?ll be added to the "contributor" role.) If an issue is
currently assigned, please check with the current assignee before reassigning.</p>
<p>For moderate or large contributions, you should not start coding or writing a design doc unless
there is a corresponding JIRA issue assigned to you for that work. Simple changes,
like fixing typos, do not require an associated issue.</p>
<h3>
<a id="design" class="anchor" href="#design" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Design</h3>
<p>To clearly express your thoughts and get early feedback from other community members, we encourage you to clearly scope, document the design of non-trivial contributions and discuss with the CarbonData community before you start coding.</p>
<p>Generally, the JIRA issue is the best place to gather relevant design docs, comments, or references. It?s great to explicitly include relevant stakeholders early in the conversation. For designs that may be generally interesting, we also encourage conversations on the developer?s mailing list.</p>
<h3>
<a id="code" class="anchor" href="#code" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Code</h3>
<p>We use GitHub?s pull request functionality to review proposed code changes.
If you do not already have a personal GitHub account, sign up <a href="https://github.com" target=_blank>here</a>.</p>
<h3>
<a id="git-config" class="anchor" href="#git-config" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Git config</h3>
<p>Ensure to finish the below config(user.email, user.name) before starting PR works.</p>
<pre><code>$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
</code></pre>
<h4>
<a id="fork-the-repository-on-github" class="anchor" href="#fork-the-repository-on-github" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Fork the repository on GitHub</h4>
<p>Go to the <a href="https://github.com/apache/carbondata" target=_blank>Apache CarbonData GitHub mirror</a> and
fork the repository to your account.
This will be your private workspace for staging changes.</p>
<h4>
<a id="clone-the-repository-locally" class="anchor" href="#clone-the-repository-locally" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Clone the repository locally</h4>
<p>You are now ready to create the development environment on your local machine.
Clone CarbonData?s read-only GitHub mirror.</p>
<pre><code>$ git clone https://github.com/apache/carbondata.git
$ cd carbondata
</code></pre>
<p>Add your forked repository as an additional Git remote, where you?ll push your changes.</p>
<pre><code>$ git remote add &lt;GitHub_user&gt; https://github.com/&lt;GitHub_user&gt;/carbondata.git
</code></pre>
<p>You are now ready to start developing!</p>
<h4>
<a id="create-a-branch-in-your-fork" class="anchor" href="#create-a-branch-in-your-fork" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Create a branch in your fork</h4>
<p>You?ll work on your contribution in a branch in your own (forked) repository. Create a local branch,
initialized with the state of the branch you expect your changes to be merged into.
Keep in mind that we use several branches, including master, feature-specific, and
release-specific branches. If you are unsure, initialize with the state of the master branch.</p>
<pre><code>$ git fetch --all
$ git checkout -b &lt;my-branch&gt; origin/master
</code></pre>
<p>At this point, you can start making and committing changes to this branch in a standard way.</p>
<h4>
<a id="syncing-and-pushing-your-branch" class="anchor" href="#syncing-and-pushing-your-branch" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Syncing and pushing your branch</h4>
<p>Periodically while you work, and certainly before submitting a pull request, you should update
your branch with the most recent changes to the target branch.</p>
<pre><code>$ git pull --rebase
</code></pre>
<p>Remember to always use --rebase parameter to avoid extraneous merge commits.</p>
<p>To push your local, committed changes to your (forked) repository on GitHub, run:</p>
<pre><code>$ git push &lt;GitHub_user&gt; &lt;my-branch&gt;
</code></pre>
<h4>
<a id="testing" class="anchor" href="#testing" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Testing</h4>
<p>All code should have appropriate unit testing coverage. New code should have new tests in the
same contribution. Bug fixes should include a regression test to prevent the issue from reoccurring.</p>
<p>For contributions to the Java code, run unit tests locally via Maven.</p>
<pre><code>$ mvn clean verify
</code></pre>
<h3>
<a id="review" class="anchor" href="#review" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Review</h3>
<p>Once the initial code is complete and the tests pass, it?s time to start the code review process.
We review and discuss all code, no matter who authors it. It?s a great way to build community,
since you can learn from other developers, and they become familiar with your contribution.
It also builds a strong project by encouraging a high quality bar and keeping code consistent
throughout the project.</p>
<h4>
<a id="create-a-pull-request" class="anchor" href="#create-a-pull-request" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Create a pull request</h4>
<p>Organize your commits to make your reviewer?s job easier. Use the following command to
re-order, squash, edit, or change description of individual commits.</p>
<pre><code>$ git rebase -i origin/master
</code></pre>
<p>Navigate to the CarbonData GitHub mirror to create a pull request. The title of the pull request
should be strictly in the following format:</p>
<pre><code>[CARBONDATA-JiraTicketNumer][FeatureName] Description of pull request
</code></pre>
<p>Please include a descriptive pull request message to help make the reviewer?s job easier:</p>
<pre><code> - The root cause/problem statement
- What is the implemented solution
</code></pre>
<p>If you know a good committer to review your pull request, please make a comment like the following.
If not, don?t worry, a committer will pick it up.</p>
<pre><code>Hi @&lt;committer/reviewer name&gt;, can you please take a look?
</code></pre>
<h4>
<a id="code-review-and-revision" class="anchor" href="#code-review-and-revision" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Code Review and Revision</h4>
<p>During the code review process, don?t rebase your branch or otherwise modify published commits,
since this can remove existing comment history and be confusing to the reviewer,
When you make a revision, always push it in a new commit.</p>
<p>Our GitHub mirror automatically provides pre-commit testing coverage using Jenkins.
Please make sure those tests pass,the contribution cannot be merged otherwise.</p>
<h4>
<a id="lgtm" class="anchor" href="#lgtm" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>LGTM</h4>
<p>Once the reviewer is happy with the change, they?ll respond with an LGTM ("looks good to me!").
At this point, the committer will take over, possibly make some additional touch ups,
and merge your changes into the codebase.</p>
<p>In the case both the author and the reviewer are committers, either can merge the pull request.
Just be sure to communicate clearly whose responsibility it is in this particular case.</p>
<p>Thank you for your contribution to Apache CarbonData!</p>
<h4>
<a id="deleting-your-branchoptional" class="anchor" href="#deleting-your-branchoptional" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Deleting your branch(optional)</h4>
<p>Once the pull request is merged into the Apache CarbonData repository, you can safely delete the
branch locally and purge it from your forked repository.</p>
<p>From another local branch, run:</p>
<pre><code>$ git fetch --all
$ git branch -d &lt;my-branch&gt;
$ git push &lt;GitHub_user&gt; --delete &lt;my-branch&gt;
</code></pre>
<script>
// Show selected style on nav item
$(function() { $('.b-nav__contri').addClass('selected'); });
</script></div>
</div>
</div>
</div>
<div class="doc-footer">
<a href="#top" class="scroll-top">Top</a>
</div>
</div>
</section>
</div>
</div>
</div>
</section><!-- End systemblock part -->
<script src="js/custom.js"></script>
</body>
</html>