How To ContributeWe are always very happy to have contributions, whether for trivial cleanups or big new features.
If you don't know Java or Scala you can still contribute to the project. An important area is the clients. We want to have high quality, well documented clients for each programming language. These, as well as the surrounding ecosystem of integration tools that people use with Kafka, are critical aspects of the project.
Nor is code the only way to contribute to the project. We strongly value documentation and gladly accept patches against the docs.
Contributing a PatchTo submit a patch for inclusion please do the following:
- Create a patch that applies cleanly against trunk.
- If the patch is non-trivial we would prefer it come with some unit tests that cover the new functionality.
- If you are introducing a completely new feature or API it is a good idea to start a wiki and get consensus on the basic design first.
- Make sure you have observed the recommendations in the style guide.
- Open a JIRA ticket describing the patch and attach your patch to the JIRA. Include in the JIRA information about the issue and the approach you took in fixing it (if this isn't obvious). Also, mark the jira as "Patch Available" by clicking on the "Submit Patch" button (this is done automatically if you use the code review tool below). Creating the JIRA will automatically send an email to the developer email list alerting us of the new issue.
- It is our job to follow up on patches in a timely fashion. Nag us if we aren't doing our job (sometimes we drop things). If the patch needs improvement, the reviwer will mark the jira back to "In Progress" after reviewing.
Finding A Project To Work OnThe easiest way to get started working with the code base is to pick up a really easy JIRA and work on that. This will help you get familiar with the code base, build system, review process, etc. We flag these kind of starter bugs here.
Please contact us to be added the contributor list. After that you can assign yourself to the JIRA ticket you have started working on so others will notice.
Once you have gotten through the basic process of checking in code, you may want to move on to a more substantial project. We try to curate this kind of project as well, and you can find these here.