stasis/docs/contributing.md
2019-06-25 16:12:40 -04:00

2 KiB

id title
contributing Contributing

Compiling project

  • It's recommended to use Java 11.
  • Build with sbt, to install sbt see https://www.scala-sbt.org/
  • Use sbt tests/test instead of sbt test, the former runs modestly fast unit tests for the JVM while sbt test is slower because it runs cross-platform test and tests benchmark code and also compiles the documentation.
  • You should be able to import the project into IntelliJ as normal: File -> New -> Project from existing source and pick the build.sbt file.

Opening pull requests

  • All code PRs should come with: a meaningful description, inline-comments for important things, unit tests (positive and negative), and a green build in CI.
  • Format your code with scalafmt. Run ./scalafmt from the project root directory.
  • PRs for features should almost always include some changes to the Documentation as well.
  • Be prepared to discuss/advocate-for your changes if you want them merged! You will probably need to refactor so your changes fit into the larger code base - If your code is hard to unit test, and you don't want to unit test it, that's okay, but you will need to support your case.
  • The maintainers of this project might reject your changes they might rewrite them, or remove them in the future. This is normal and true for all changes regardless of the author.
  • Even a rejected/reverted PR is valuable! It helps explore the solution space, and know what works and what doesn't. For every line in the repository, there exists some rejected work.
  • Feel free to send Proof-Of-Concept PRs that you don't intend to get merged. Simply indicate that in the PR.

Opening issues

Please always include concrete code examples with obtained and expected output.

Releasing

  • Ensure the release notes are up to date and complete.
  • Pushing a git tag should trigger a release to Maven Central from the CI.

Random stuff