Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 3.41 KB

CONTRIBUTING.md

File metadata and controls

59 lines (41 loc) · 3.41 KB

Contribution Guidelines

Thank you for your interest in contributing to the Axon Framework Kafka Extension. To make sure using Axon is a smooth experience for everybody, we've set up a number of guidelines to follow.

There are different ways in which you can contribute to the framework:

  1. You can report any bugs, feature requests or ideas about improvements on our issue page. All ideas are welcome. Please be as exact as possible when reporting bugs. This will help us reproduce and thus solve the problem faster.
  2. If you have created a component for your own application that you think might be useful to include in the framework, send us a pull request (or a patch / zip containing the source code). We will evaluate it and try to fit it in the framework. Please make sure code is properly documented using JavaDoc. This helps us to understand what is going on.
  3. If you know of any other way you think you can help us, do not hesitate to send a message to the AxonIQ's discussion platform.

Code Contributions

If you're contributing code, please take care of the following:

Contributor Licence Agreement

To keep everyone out of trouble (both you and us), we require that all contributors (digitally) sign a Contributor License Agreement. Basically, the agreement says that we may freely use the code you contribute to the Axon Framework Kafka Extension, and that we won't hold you liable for any unfortunate side effects that the code may cause.

To sign the CLA, visit: https://cla-assistant.io/AxonFramework/extension-kafka

Code Style

We're trying very hard to maintain a consistent style of coding throughout the code base. Think of things like indenting using 4 spaces, putting opening brackets (the '{') on the same line and putting proper JavaDoc on all non-private members.

If you're using IntelliJ IDEA, you can download the code style definition here. Simply import the XML file in under "Settings -> Code Style -> Scheme -> Import Scheme". Doing so should make the code style selectable immediately.

Project Build

The project is built with Apache Maven, supplied by the Maven Wrapper mvnw. For separate aspects of the build Maven profiles are used.

For a regular build, execute from your command line: ./mvnw. This operation will run the build and execute JUnit tests of all modules and package the resulting artifacts.

This repository contains an example project. You can skip its build by adding -DskipExamples to your build command.

There are long-running integration tests present (starting Spring Boot Application and/or running Kafka in a TestContainer), which ARE NOT executed by default. A unique integration-test build is needed to run those long-running tests. If you want to run them, please call ./mvnw -Pintegration-test from your command line. When introducing additional integration tests, make sure the class name ends with IntegrationTest.

The project uses JaCoCo to measure test coverage of the code and automatically generate coverage reports on regular and integration-test builds. If you are interested in the overall test coverage, please run ./mvnw -Pcoverage after running both without clean. and check the resulting aggregated report in ./coverage-report/target/site/jacoco-aggregate/index.html