Skip to content

Latest commit

 

History

History
83 lines (55 loc) · 3.36 KB

contributing.md

File metadata and controls

83 lines (55 loc) · 3.36 KB

Contributor guide

Thanks for taking an interest in improving spata. Here you can find some hints on how to contribute to the project.

How to help

Different kinds of contributions are welcome, including, but not limited to:

  • improvements in the documentation - scope, accuracy, clarity and language,
  • providing additional examples on how to use the library,
  • reporting and fixing bugs,
  • refactoring existing code and enhancing tests,
  • proposing and implementing improvements and new features.

In case of any doubts, talk to us on the spata Gitter channel.

Proposing and submitting a change

If you would like to make any changes to the project, please:

  • let us know about this by commenting on an existing issue or creating a new one and describing your idea,

  • fork and build the project,

  • implement your contribution along with tests and a documentation update,

  • format the code and run the tests,

  • submit a pull request.

spata follows a standard fork and pull model for contributions.

Building the project

spata requires Java 11 and sbt.

All you need to do to build the project is to run sbt compile or preferably sbt test:compile.

Formatting and testing

spata uses Scalafmt to coherently and automatically format the code. To check if code is properly formatted run sbt scalafmtCheck. To format all sources run sbt scalafmtAll.

spata also uses Scalafix for linting. You can run a linter check by running sbt scalafix --check.

To check both, formatting and linting with single command, run sbt check.

Unit and integration tests should be run with sbt test. Test coverage may be verified with sbt clean coverage test coverageReport. Results are written to target/scala-2.13/scoverage-report/index.html

Performance tests may be run with sbt perf:test. There is no automatic regression verification for performance test, however it is still worth running them before and after implementing changes and comparing results.

To check binary compatibility with a previous stable version, please run sbt mimaReportBinaryIssues.

API documentation is built with sbt doc.

Full project verification before a pull request should be done with:

sbt -mem 2048 clean check doc test mimaReportBinaryIssues perf:test

Grant of license

spata is licensed under Apache-2.0. Opening a pull request implies your consent to license your contribution under Apache License 2.0.

Attributions

If your contribution has been derived from or inspired by other work, please state this in its scaladoc comment and provide proper attribution. When possible, include the original authors’ names and a link to the original work.

This guide borrows from fs2, http4s and cats contribution guides.