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

<!--
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 lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/community/contribute.html" />
    <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>Contribute - Apache Ignite</title>
    <!--#include virtual="/includes/styles.html" -->

    <!--#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">
            <h1 class="first">Contribute to Apache Ignite</h1>
            <p>
                Before you get involved in Apache Ignite development, please sign up to the
                <a href="mailto:dev@ignite.apache.org">dev mailing list</a> and say "Hello" to everyone in
                the community. Tell us as much as you can about your areas of expertise mentioning how
                exactly you would like to contribute. We are a friendly and inclusive community and will try to
                simplify your "onboarding" considering your strengths or areas of interest.

                Also, make sure to share your JIRA ID in the same email
                (<a href="https://issues.apache.org/jira/projects/IGNITE"target="_blank">create a new one</a>
                if you don't have an ASF JIRA account yet). One of our community members will add you to
                the contributors' list and you will be able to go ahead and book Ignite tasks you'd like to work on.
                </li>
            </p>
            <p>
                Again, a small formality, 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>
            <p>
                Finally, check <a href="https://cwiki.apache.org/confluence/display/IGNITE/How+to+Collaborate" target="_blank">
                How to Collaborate</a> page for more details on various communication channels used by the community
                members. Even though most of the discussions take place on the dev list, we hang out in Slack.
            </p>
            <div class="page-heading">Contribution Process</div>
            <p>
                Before you start contributing, spend some time to get to know our
                <a href="https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute" target="_blank">Contribution and
                    Development</a> process. In short, our communication and collaboration are based on
                <a href="http://www.apache.org/theapacheway/index.html" target="_blank">The Apache Way</a> that helps
                us, as a group of professionals, drive the project forward in a respectful and inclusive way.
            </p>

            <div class="page-heading">Pick a Ticket</div>
            <p>
                Select a task of your interest and finish the first contributions! Start paving a path to the role of an
                Apache Ignite committer! To simplify your first choice, we prepared a list of tickets of easy and
                moderate complexity:
            </p>
            <ul class="page-list">
                <li>
                    All the current
                    <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20labels%20in%20(newbie)%20and%20status%20%3D%20OPEN" target="_blank">
                        easy and moderate tickets</a> suited for a quick start.
                </li>
                <li>
                    Machine Learning
                    <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20labels%20in%20(newbie)%20and%20component%20in%20(ML)%20and%20status%20%3D%20OPEN" target="_blank">
                        tickets for beginners</a>.
                </li>
                <li>
                    Or <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20labels%20in%20(newbie)%20and%20component%20in%20(sql)%20and%20status%20%3D%20OPEN" target="_blank">
                    SQL tasks</a> to start with.
                </li>
                <li>
                    If you are more interested in .NET, Python, Node.JS or other programming languages different from
                    Java then use <a
                        href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20labels%20in%20(newbie)%20and%20component%20in%20(platforms)%20and%20status%20%3D%20OPEN" target="_blank">
                    this filter</a> for the selection of the first tasks.
                </li>
                <li>
                    Are you willing to integrate Ignite with other frameworks and technologies? Check one of
                    <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20component%20in%20(Integrations)%20and%20status%20%3D%20OPEN"
                    target="_blank">these tickets </a> or propose your integration.
                </li>
                <li>
                    Curious in distributed data structures?
                    <a
                            href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20IGNITE%20AND%20component%20in%20(%22data%20structures%22)%20and%20status%20%3D%20OPEN" target="_blank">
                        Help to improve</a> existing ones or contribute a brand new.
                </li>
            </ul>
            <p>
                Still haven't found anything gripping? Search through all the tickets in
                <a href="https://issues.apache.org/jira/browse/IGNITE/">Ignite Jira</a>, check the latest Ignite
                discussions on the dev list or simply email us.
            </p>

            <div class="page-heading">Become a Committer and PMC Member</div>
            <p>
                We love contributions and gladly promote active contributors to committers and PMC members! If you
                are new to Apache Software Foundation then Ignite will be an excellent
            </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 in 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.
                <a href="https://cwiki.apache.org/confluence/display/IGNITE/Committership+Bar+Guidance" target="_blank">
                    This page</a> explains how and when Ignite community members decide to propose contributors to
                the roles of committers or PMC members.
            </p>
        </section>

        <section id="ignite-dev" class="page-section">
            <h2>Start Coding</h2>
            <p>
                Apache Ignite uses GIT for its VCS system. The "master" branch contains the last released version.
                The "ignite-{version}" branch contains the latest code for the latest or upcoming release.

                Refer to the <a href="https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute" target="_blank">Contribution and
                Development</a> page that explains the process in detail including reviews, pull-requests, etc. --
                everything you need to know and to do before a contribution can be accepted.
                While below you can find quick instructions if you can't wait and want to checkout the Ignite repo,
                explore its code and do some changes:
            </p>
            <div class="page-heading">GIT checkout</div>
            <pre class="brush:bash">
                # Master branch.
                $ git clone https://github.com/apache/ignite.git
            </pre>
            <div class="page-heading">Build Project</div>
            <pre class="brush:bash">
                # Build project.
                $ mvn clean install -Pall-java,all-scala,licenses -DskipTests
            </pre>
            <p>
                See more detailed build instructions in the
                <a href="https://github.com/apache/ignite/blob/master/DEVNOTES.txt" target="_blank" rel="noopener">DEVNOTES.txt</a> file.
            </p>
        </section>
    </main>
    <!--#include virtual="/includes/footer.html" -->
</main>
</div>
<!--#include virtual="/includes/scripts.html" -->
</body>
</html>
