Contribute to Apache Ignite
This guide discusses various types of contribution to Apache Ignite extending generic ideas of the ASF Getting Started. Contributing to Ignite doesn’t just mean writing code. Helping new users on the mailing list and improving documentation are also important. In fact, proposing significant code changes usually requires first gaining experience and credibility within the community by helping in other ways.
The guide organizes contributions in an order that should be considered by new contributors who intend to get involved long-term. Build some track record of helping others, become more experienced with Ignite rather than solely focusing on code pull-requests.
Also, our communication and collaboration are based on The Apache Way that helps us, as a group of professionals, drive the project forward in a respectful and inclusive way.
Getting Started
The first thing to do is to join our dev mailing list and say "Hello" to everyone in the community. Tell us something 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 and areas of interest. Also, make sure to share your JIRA ID in the same email (create a new one if you don't have an ASF JIRA account yet). One of our community members will add you to the contributors' list.
Next, check the How to Collaborate 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 on Slack.
Contribute by Helping Others
A great way to contribute to Ignite and get more practical experience is by helping answer user questions on the user@ignite.apache.org mailing list or on StackOverflow. Ignite users ask dozens of questions daily; taking a few minutes to help answer a question or troubleshoot an issue is a very valuable contribution to the project and community success.
Subscribe to the user list and set up StackOverflow notifications to stay up to date on what’s happening in Ignite. Answering questions is an excellent and visible way to help the community, which also demonstrates your expertise.
Contribute Documentation Changes
Contributing to technical documentation and API references such as JavaDocs are as valuable as contributing to bug fixes or features. Ignite documentation is an integral part of the project, which educates Ignite users about Ignite capabilities, configuration techniques, optimization aspects and many other areas they need to understand to deploy Ignite successfully in production. Documentation and APIs are the faces of the project and the community puts a lot of effort in maintaining them properly and professionally.
Code changes contribution is not the only way to become an Ignite committer. Help the community to produce and maintain the documentation pages or API references, edit and correct existing content, stay active on the user and dev mailing lists, and you'll become a committer in due course.
- Came across a misprint or unclear documentation section? Use "Suggest Edits" feature of our main documentation portal to propose a change.
- Select any open documentation ticket and start working on it. Use "Suggest Edits" to submit improvements.
- To propose a change to API references such as JavaDocs, follow the process similar to the code contribution described below -- update the docs and send a pull-request.
Code Contributions
Before you start with code contributions, get to know our Contribution and Development process.
Ignite is used together with a huge selection of libraries and frameworks, and some of them are officially supported by the community. While some of the existing integrations such as with Spark, Spring Data, or Hibernate still reside in the primary Ignite repository, they all will eventually be moved to the Ignite Extensions repository. New integrations are accepted to the Extensions repository only.
Feel free to contribute a new extension to Ignite or select an open ticket to help improve existing integrations:
- Spring Framework integrations.
- Apache Spark integration.
- All other integrations.
Contribute to Ignite core
If you want to contribute to the core components of Ignite, then consider one of the tickets below. These tickets are of easy and moderate complexity, which can simplify your start:
- All the current easy and moderate tickets suited for a quick start.
- Machine Learning tickets for beginners.
- Or SQL tasks to start with.
- If you are more interested in .NET, Python, Node.JS, or other programming languages different from Java, then use this filter to select your first task.
- Curious in distributed data structures? Help to improve the existing ones or contribute a brand new.
Still haven't found anything gripping? Search through all the tickets in Ignite Jira, check the latest Ignite discussions on the dev list, or simply email us.
Become a Committer and PMC Member
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 choice to start your journey.
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.
Of course, code and documentation contributions are also important. Once you make a few of them, 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. This page explains how and when Ignite community members decide to propose contributors to the roles of committers or PMC members.
Start Coding
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 Contribution and Development page which explains the process in detail including reviews, pull-requests, etc. -- everything you need to know and do before a contribution can be accepted. While below you can find more detailed instructions, here is how you can checkout the Ignite repo and explore its code:
GIT checkout
# Master branch. $ git clone https://github.com/apache/ignite.git
Build Project
# Build project. $ mvn clean install -Pall-java,all-scala,licenses -DskipTests
See more detailed build instructions in the DEVNOTES.txt file.