Skip to content

Latest commit

 

History

History
38 lines (31 loc) · 3.39 KB

CONTRIBUTING.md

File metadata and controls

38 lines (31 loc) · 3.39 KB

Contributing

Thank you for your interest in the project!

What to work on

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.

Guidelines

To ensure quality and consistency, we ask that contrbutions follow these guidelines:

  1. Your branch MUST compile through our Java CI with Gradle
  2. Code MUST be formatted according to our code style and defined import order
  3. Files in tools.sctrade.companion.domain MUST NOT import files from outside the package, with the exception of tools.sctrade.companion.utils
  4. Public classes and methods MUST be documented
  5. Changes MUST be unit tested
  6. Changes MUST NOT reduce the existing code coverage
  7. Changes SHOULD respect the general structure of the project
  8. Changes SHOULD be self-explanatory, using clear names and flow
  9. Libraries SHOULD be abstracted behind a facade
  10. Changes SHOULD NOT introduce new compiler warnings
  11. Changes SHOULD NOT introduce new CheckStyle warnings

Testing

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.

Submitting your contribution

Your changes do what they are supposed to? Great! You are ready to submit a pull request:

  1. Make sure the gradlew clean build completes successfully
    • Running gradlew spotlessApply will format the code and organize the imports correctly
  2. Create a pull request towards the main branch

Need help?

Javadoc

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.

Ask away!

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.