<!--
 ▄▄▄       ██▓███   ▄▄▄       ▄████▄   ██░ ██ ▓█████     ██▓  ▄████  ███▄    █  ██▓▄▄▄█████▓▓█████
▒████▄    ▓██░  ██▒▒████▄    ▒██▀ ▀█  ▓██░ ██▒▓█   ▀    ▓██▒ ██▒ ▀█▒ ██ ▀█   █ ▓██▒▓  ██▒ ▓▒▓█   ▀
▒██  ▀█▄  ▓██░ ██▓▒▒██  ▀█▄  ▒▓█    ▄ ▒██▀▀██░▒███      ▒██▒▒██░▄▄▄░▓██  ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█  ▄    ░██░░▓█  ██▓▓██▒  ▐▌██▒░██░░ ▓██▓ ░ ▒▓█  ▄
 ▓█   ▓██▒▒██▒ ░  ░ ▓█   ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒   ░██░░▒▓███▀▒▒██░   ▓██░░██░  ▒██▒ ░ ░▒████▒
 ▒▒   ▓▒█░▒▓▒░ ░  ░ ▒▒   ▓▒█░░ ░▒ ▒  ░ ▒ ░░▒░▒░░ ▒░ ░   ░▓   ░▒   ▒ ░ ▒░   ▒ ▒ ░▓    ▒ ░░   ░░ ▒░ ░
  ▒   ▒▒ ░░▒ ░       ▒   ▒▒ ░  ░  ▒    ▒ ░▒░ ░ ░ ░  ░    ▒ ░  ░   ░ ░ ░░   ░ ▒░ ▒ ░    ░     ░ ░  ░
  ░   ▒   ░░         ░   ▒   ░         ░  ░░ ░   ░       ▒ ░░ ░   ░    ░   ░ ░  ▒ ░  ░         ░
      ░  ░               ░  ░░ ░       ░  ░  ░   ░  ░    ░        ░          ░  ░              ░  ░
-->

<!--
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
"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.
-->

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <title>Apache Ignite - Community</title>
    <link media="all" rel="stylesheet" href="/css/all.css">
    <link href="https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>

    <!--#include virtual="/includes/sh.html" -->
</head>
<body>
<div id="wrapper">
    <!--#include virtual="/includes/header.html" -->

    <main id="main" role="main" class="container">
        <section id="contribute" class="page-section">
            <h2 class="first">Start Contributing</h2>
            <p>
                Before you start working on Apache Ignite, you should sign up to the
                <a href="mailto:dev@ignite.apache.org">dev mailing list</a> and say "Hello" to everyone in
                the community. We have a very friendly group and intend to make joining the project as easy as possible.
            </p>
            <p>
                Note, you need to subscribe to the dev list, before sending emails to it. To subscribe, send an empty email
                to <a href="mailto:dev-subscribe@ignite.apache.org?subject=Subscribe"><nobr>dev-subscribe@ignite.apache.org</nobr></a> and follow
                simple instructions in the reply.
            </p>
            <div class="page-heading">Ignite Jira:</div>
            <p>
                You should also sign up to <a href="https://issues.apache.org/jira/browse/IGNITE">Ignite Jira</a> and
                browse through open tickets.
            </p>
            <div class="page-heading">Development Process:</div>
            <p>
                Before you start contributing, it helps to familiarize yourself with
                <a href="https://cwiki.apache.org/confluence/display/IGNITE/Development+Process">Ignite Development Process</a>.
            </p>
            <div class="page-heading">To Get Started:</div>
            <ul class="page-list">
                <li>
                    Choose any of the tickets below.
                </li>
                <li>
                    Send an email to the <a href="mailto:dev@ignite.apache.org">dev list</a> letting us know
                    that you want to work on it (make sure to
                    <a href="mailto:dev-subscribe@ignite.apache.org">subscribe</a> first).
                </li>
                <li>
                    One of the committers will add you to the contributor list and assign the ticket to you.
                </li>
            </ul>
        </section>

        <section id="pick-ticket" class="page-section">
            <h2>Pick a Ticket</h2>
            <div class="page-heading">Easy Issues:</div>
            <p>
                Easy issues to help newcomers get started with Ignite can be found
                <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20labels%20in%20(newbie)%20and%20status%20%3D%20OPEN">here</a>.
            </p>
            <div class="page-heading">Integrations:</div>
            <p>
            <ul class="page-list">
                <li>Spring Transaction Manager, <a href="https://issues.apache.org/jira/browse/IGNITE-1227">IGNITE-1227</a></li>
                <li>L2 Cache for MyBatis, <a href="https://issues.apache.org/jira/browse/IGNITE-2448">IGNITE-2448</a> </li>
            </ul>
            </p>
            <div class="page-heading">Streaming:</div>
            <p>
                Parent Jira ticket for the streaming work: <a href="https://issues.apache.org/jira/browse/IGNITE-108">IGNITE-108</a>. 
                <ul class="page-list">
                    <li>Streaming from Akka, <a href="https://issues.apache.org/jira/browse/IGNITE-532">IGNITE-532</a></li>
                    <li>Streaming from ZeroMQ, <a href="https://issues.apache.org/jira/browse/IGNITE-533">IGNITE-533</a></li>
                    <li>Streaming from Amazon Kinesis, <a href="https://issues.apache.org/jira/browse/IGNITE-536">IGNITE-536</a></li>
               </ul>
            </p>
            <div class="page-heading">Data Structures:</div>
            <p>
                Parent Jira ticket for the data structures work: <a href="https://issues.apache.org/jira/browse/IGNITE-641">IGNITE-641</a>. 
                <ul class="page-list">
                    <li>Distributed reentrant lock, <a href="https://issues.apache.org/jira/browse/IGNITE-642">IGNITE-642</a></li>
                    <li>Distributed reentrant read-write lock, <a href="https://issues.apache.org/jira/browse/IGNITE-637">IGNITE-637</a></li>
                    <li>Distributed multi-map, <a href="https://issues.apache.org/jira/browse/IGNITE-640">IGNITE-640</a></li>
                    <li>Queue persistence, <a href="https://issues.apache.org/jira/browse/IGNITE-2389">IGNITE-2389</a></li>
               </ul>
            </p>
            <div class="page-heading">Hadoop & Spark:</div>
            <p>
                <ul class="page-list">
                    <li>Implementation of IgfsSecondaryFileSystem for local file system, <a href="https://issues.apache.org/jira/browse/IGNITE-1926">IGNITE-1926</a></li>
                    <li>Python API for Ignite RDD for Spark, <a href="https://issues.apache.org/jira/browse/IGNITE-949">IGNITE-949</a></li>
               </ul>
            </p>
        </section>

        <section id="ignite-dev" class="page-section">
            <h2>Start Developing</h2>
            <p>
                Apache Ignite uses GIT for its VCS system. The "master" branch contains the last released version. The "sprint-N" branch contains the latest code for the Nth sprint.
            </p>
            <div class="page-heading">GIT checkout:</div>
            <pre class="brush:bash">
                # Master branch.
                $ git clone https://git-wip-us.apache.org/repos/asf/ignite

                # Release branch.
                $ git clone https://git-wip-us.apache.org/repos/asf/ignite -b ignite-1.3.0
            </pre>
            <div class="page-heading">Build Project:</div>
            <pre class="brush:bash">
                # Build project.
                $ mvn clean package -DskipTests

                # Run Apache RAT
                $ mvn clean validate -Pcheck-licenses
            </pre>
            <p>
                See more detailed build instructions in the
                <a href="https://github.com/apache/ignite/blob/master/DEVNOTES.txt" target="_blank">DEVNOTES.txt</a> file.
            </p>
            <div class="page-heading">To Start Contributing:</div>
            <ul class="page-list">
                <li>
                    Pick a ticket from
                    <a href="https://issues.apache.org/jira/browse/IGNITE" target="_blank">Ignite Jira</a>
                </li>
                <li>Follow GitHub pull-request's based contribution way that is described 
                <a href="https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute#HowtoContribute-1.CreateGitHubpull-request">here</a> in details.</li>
            </ul>
        </section>

        <section id="become-committer" class="page-section">
            <h2>Become a Committer</h2>
            <p>
                We love contributions and gladly promote active contributors to committers and PMC members!
            </p>
            <p>
                The most important point of becoming a committer for Apache projects is active participation
                within the community. Being an active community member means participating on mailing list
                discussions, helping to answer questions, being respectful towards others, and following the
                meritocratic principles of community management.
            </p>
            <p>
                Of course, code contributions are also important. Once you make a few code contributions,
                you will become eligible to join Ignite committers, and possibly Ignite PMC.
                Candidates for new committers or PMC members are suggested by the current committers, mentors, or
                PMC members, and then must be approved by the PMC voting process.
            </p>
        </section>
    </main>
    <!--#include virtual="/includes/footer.html" -->
</div>
<!--#include virtual="/includes/scripts.html" -->
</body>
</html>
