Apache Samza is developed by an open and friendly community. Everybody is welcome to contribute and engage with the community. There are many such opportunities:
Apache Samza community is happy to answer any questions related to the project with any communication channels listed in mailing list.
Apache Samza uses JIRA to file bug reports. In order to file a bug report, please open Samza JIRA and include the following details:
If you need someone to immediately take a look at your JIRA, please don’t hesitate to send an email to the dev mailing list.
We tag tickets in JIRA with “newbie” label that are good for people getting started with the code base. When you feel confident, you can pick-up “newbie++” JIRAs. Picking up these JIRAs are the best way to familiarize yourself with the codebase.
More meaty projects are here. The process for working on a large project is documented in details in samza enhancement proposal. If you are unclear whether a change you are proposing requires a design document, ask us through our mailing list.
The Samza documentation is based on markdown files, which are built using Jekyll. To propose a change to documentation, edit their corresponding markdown source files in Samza’s docs/ directory. The README.md in the same directory shows how to build the documentation locally and test your changes. The process to propose a doc change is otherwise the same as the process for proposing code changes below.
The official Samza codebase is hosted on the Apache Git repository located here and we use Pull Requests on GitHub for code reviews. If you are unfamiliar with this workflow, Git Handbook has many useful introductions and instructions.
You should fork the Samza’s Github repository to create your own repository.
We use Gradle to build and test Samza. You do not need to install gradle, but you do need a Java SDK installed. You can develop on Linux and macOS.
The entire set of unit tests can be run with this command at the root of the git repository.
./gradlew test
Generate an IDEA project .ipr file with:
./gradlew idea
If there is no JIRA ticket for your work, please open one before creating a Pull Request. If it is a trivial fix (such as a typo, doc fix etc), you may skip ticket creation. Here’s the development workflow: