51 lines
2 KiB
Markdown
51 lines
2 KiB
Markdown
|
---
|
||
|
id: contributing
|
||
|
title: 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](https://travis-ci.org/stasis/stasis).
|
||
|
- **Format your code with scalafmt**. Run `./scalafmt` from the project root
|
||
|
directory.
|
||
|
- **PRs for features should almost always include _some_ changes to the
|
||
|
[Documentation](https://stasis.io/docs)** 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
|
||
|
|
||
|
-
|
||
|
|