Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This page documents the various steps required in order to contribute Kafka code changes. This page should be read after Kafka's Contributing page.

There may be bugs or possible improvements to this page, so help us improve it. This page should be read after Kafka's Contributing page.. Credit to the Spark project for tackling the issue of receiving contributions to an Apache project via GitHub pull requests. We have borrowed liberally from their process, tools, and documentation. 

Tip
When you contribute code, you affirm that the contribution is your original work and that you license the work to the project under the project's open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.

...

  1. Find the existing Kafka JIRA that the change pertains to.

    1. Do not create a new JIRA if creating a change to address an existing issue in JIRA; add to the existing discussion and work instead

    2. Look for existing pull requests that are linked from the JIRA, to understand if someone is already working on the JIRA

  2. If the change is new, then it usually needs a new JIRA. However, trivial changes, where "what should change" is virtually the same as "how it should change" do not require a JIRA. Example: "Fix typos in Foo scaladoc"

  3. If required, create a new JIRA:

    1. Provide a descriptive Title. "Update web UI" or "Problem in scheduler" is not sufficient. "Kafka support fails to handle empty queue in cluster modeduring shutdown" is good.

    2. Write a detailed Description. For bug reports, this should ideally include a short reproduction of the problem. For new features, it may include a design document (or a Kafka Improvement Proposal if it's a major change).

    3. Set required fields.

    4. Do not include a patch file; pull requests are used to propose the actual change.

  4. If the change is a large change, consider inviting discussion on the issue at dev@kafka.apache.org first before proceeding to implement the change.

...