How to Contribute¶
Siddhi is a cloud native Streaming and Complex Event Processing engine that understands Streaming SQL queries in order to capture events from diverse data sources, process them, detect complex conditions, and publish output to various endpoints in real time.
It's an open-source project under Apache license and the work of hundreds of contributors.
We always appreciate and welcome your help. You can contribute to Siddhi in various ways; please find them below.
Siddhi-Dev Google Group Group is the main Siddhi project discussion forum for developers.
Users can you Siddhi-User Google Group to raise any queries and get some help to achieve their usecases.
StackOverflow is also can be used to get some support, and GitHub for issues and code repositories.
If you are unsure whether you have found a bug, please consider searching existing issues in github and asking in Siddhi-Dev Google Group.
To file non-security issues:
Click the Issues tab in the github repository,
Click the New Issue button,
Fill out all sections in the issue template and submit.
Accepting Contributor License Agreement (CLA)¶
Before you submit your first contribution please accept our Contributor License Agreement (CLA) here. When you send your first Pull Request (PR), GitHub will ask you to accept the CLA.
There is no need to do this before you send your first PR.
Subsequent PRs will not require CLA acceptance.
If for some (unlikely) reason at any time CLA changes, you will get presented with the new CLA text on your first PR after the change.
Obtaining the Source Code and Building the Project¶
- Oracle JDK 8, OpenJDK 8, or JDK 11 (Java 8 should be used for building in order to support both Java 8 and Java 11 at runtime)
- Maven 3.5.x or later version
Steps to Build¶
Get a clone or download source from Github
bash git clone https://github.com/siddhi-io/siddhi.git
Run the Maven command
mvn clean installfrom the root directory
||Build and install the artifacts into the local repository.|
||Build and install the artifacts into the local repository, without running any of the unit tests.|
Setting up the Developer Environment¶
Use any of your preferred IDEs (eg: IntelliJ IDEA, Eclipse.. ). Make sure, that your IDE is configured with proper JDK and Maven settings. Import the source code in your IDE and do necessary code changes. Then add necessary unit tests with respect to your changes. Finally, build the complete Siddhi project with tests and commit the changes to your Github folk once build is successful.
Commit the Changes¶
We follow these commit message requirements:
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
Please find details at: https://chris.beams.io/posts/git-commit/
Start with the discussion in the Siddhi-Dev Google Group.
Once there is enough consensus around the proposal, you will likely be asked to file an Issue in GitHub and label it as Proposal, to continue the discussion on details there.