layout: default title: “Contributions” permalink: /contribute/

Contributions

Apache DistributedLog is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache DistributedLog. There are several ways to interact with the community and to contribute to DistributedLog including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.

Ask questions!

The Apache DistributedLog community is eager to help and to answer your questions. We have a [mailing list]({{ site.baseurl }}/community).


File a bug report

Please let us know if you experienced a problem with DistributedLog and file a bug report. Open [DistributedLog's JIRA]({{ site.jira_url }}) and click on the blue Create button at the top. Please give detailed information about the problem you encountered and, if possible, add a description that helps to reproduce the problem. Thank you very much.


Propose an improvement or a new feature

Our community is constantly looking for feedback to improve Apache DistributedLog. If you have an idea how to improve DistributedLog or have a new feature in mind that would be beneficial for DistributedLog users, please open an issue in [DistributedLog's JIRA]({{ site.jira_url }}). The improvement or new feature should be described in appropriate detail and include the scope and its requirements if possible. Detailed information is important for a few reasons:

  • It ensures your requirements are met when the improvement or feature is implemented.
  • It helps to estimate the effort and to design a solution that addresses your needs.
  • It allow for constructive discussions that might arise around this issue.

Detailed information is also required, if you plan to contribute the improvement or feature you proposed yourself. Please read the [Contribute code]({{ site.base }}/contribute-code) guide in this case as well.

We recommend to first reach consensus with the community on whether a new feature is required and how to implement a new feature, before starting with the implementation. Some features might be out of scope of the project, and it's best to discover this early.


Help others and join the discussions

Most communication in the Apache DistributedLog community happens on the mailing list:

  • The mailing list distributedlog-dev@bookkeeper.apache.org is the place where DistributedLog developers exchange ideas and discuss new features, upcoming releases, and the development process in general. If you are interested in contributing code to DistributedLog, you should join this mailing list.

You are very welcome to [subscribe to mailing lists]({{ site.baseurl }}/community).


Test a release candidate

Apache DistributedLog is continuously improved by its active community. Every few weeks, we release a new version of Apache DistributedLog with bug fixes, improvements, and new features. The process of releasing a new version consists of the following steps:

  1. Building a new release candidate and starting a vote (usually for 72 hours).
  2. Testing the release candidate and voting (+1 if no issues were found, -1 if the release candidate has issues).
  3. Going back to step 1 if the release candidate had issues otherwise we publish the release.

Release testing is a big effort if done by a small group of people but can be easily scaled out to more people. The DistributedLog community encourages everybody to participate in the testing of a release candidate. By testing a release candidate, you can ensure that the next DistributedLog release is working properly for your setup and help to improve the quality of releases.


Contribute code

Apache DistributedLog is maintained, improved, and extended by code contributions of volunteers. The Apache DistributedLog community encourages anybody to contribute source code. In order to ensure a pleasant contribution experience for contributors and reviewers and to preserve the high quality of the code base, we follow a contribution process that is explained in our [Contribute code]( {{ site.base }}/contribute-code) guide. The guide does also include instructions to setup a development environment, our coding guidelines and code style, and explains how to submit a code contribution.

Please read the [Contribute code]( {{ site.base }}/contribute-code) guide before you start to work on a code contribution.

Looking for an issue to work on?

{:.no_toc}

We maintain a list of all known bugs, proposed improvements and suggested features in [DistributedLog's JIRA]({{ site.jira_url }}).

Also, Project Ideas is also a good page to check out for big ideas.


Contribute documentation

[TBD]


Improve the website

[TBD]


More ways to contribute...

There are many more ways to contribute to the DistributedLog community. For example you can

  • give a talk about DistributedLog and tell others how you use it.
  • organize a local Meetup or user group.
  • talk to people about DistributedLog.
  • ...