Thank you for your interest in the project!
If you are new to the project, take a look at issues tagged with "Good first issue" or "Help wanted": these would be the best issues to work on as a new contributor. That being said, any issue in our backlog is up for grabs, so feel free to pitch in on anything that catches your eye!
Please note that unsolicited contributions (features not in our backlog) may take a lot longer to get reviewed and merged, and may get rejected entirely.
To ensure quality and consistency, we ask that contrbutions follow these guidelines:
- Your branch MUST compile through our Java CI with Gradle
- Code MUST be formatted according to our code style and defined import order
- Files in
tools.sctrade.companion.domain
MUST NOT import files from outside the package, with the exception oftools.sctrade.companion.utils
- Public classes and methods MUST be documented
- Changes MUST be unit tested
- Changes MUST NOT reduce the existing code coverage
- Changes SHOULD respect the general structure of the project
- Changes SHOULD be self-explanatory, using clear names and flow
- Libraries SHOULD be abstracted behind a facade
- Changes SHOULD NOT introduce new compiler warnings
- Changes SHOULD NOT introduce new CheckStyle warnings
The test harness is still in development (#65). For the moment, you can run the app locally and debug it when it processes screenshots as you would any java application.
Your changes do what they are supposed to? Great! You are ready to submit a pull request:
- Make sure the
gradlew clean build
completes successfully- Running
gradlew spotlessApply
will format the code and organize the imports correctly
- Running
- Create a pull request towards the
main
branch- Feel free to let us know you have outstanding changes ready for review in our slack channel
All public types and methods are thoroughly documented using standard javadoc comments. You can refer to that documentation directly in the code, or use the gradlew javadoc
command to generate HTML help pages, accessible at /build/javadoc/index.html
.
We're always happy to help would-be contributors to the project! If you run into issues or have comments/questions, feel free to reach out to the #help channel of our Discord server. We're open to discuss anything code related, but we will not be able to provide assistance with environment setup or basic computer science fundamentals.