Feedback and pull requests are very welcome.
Feel free to create feature request and bug report in the issues. Only make sure that your request/report is not a duplicate of an exiting one.
You may also come discuss or ask for help on gitter
Issue marked up-for-grabs are supposed to be easy and isolated enough to be done by anyone having interest in contributing.
I assign myself to the isue to signal on what I am working at the moment. So you can safely pick any unassigned issue.
You may (but don't have to) write a message in the issue to say you are working on it.
Make sure that the environment variable JAVA_HOME
point to a JDK installation (version 11 or newer)
This project use a standard gradle setup. Here are the most important tasks you may want to run:
./gradlew check
Build and test/check everything (Best first task for a fresh clone)../gradlew test
Compile sources and run unit tests./gradlew sphinx
Generate documentation (result will be inbuild/site/index.html
)./gradlew detekt
Run a static code analysis and report code smells (may fail if too many code smells are found)
Follow the Kotlin conventions
Run the static code analysis (./gradlew detekt
) to get a reports of the code smells.
- Make sure the change is wanted by discussing it first int the issues
- Keep your pull request small, and split it in may smaller ones if necessary
- a pull request that solves only part of an issue, is perfectly fine. It might still be merged and the issue splitted into many smaller ones.
- Write automated tests covering the new feature or fix
- if you are not sure how to test your changes, open the pull request as Draft. I'll gladly help you to write the tests.
- Make sure it passes the build (run
./gradlew check
) - Write a description
- explaining what problem is solved (with a reference to an existing issue if applicable)
- helping to read and understand the code changes
- pointing parts that requires special attention or consideration
- Update documentation if necessary
- Documentation sources are in folder
docs
- you can generate it locally with
./gradlew sphinx
- locally generated documentation will be available in
build/site/index.html
- Documentation sources are in folder