This is a Giter8 template for creating libraries ready to be published.
sbt new alexandru/typelevel-library.g8
- Build setup for multiple sub-projects
- Sane Scala compiler defaults for doing FP (including kind-projector and better-monadic-for)
- Continuous integration via GitHub Actions
- Usual contributing, code of conduct, license boilerplate
- Scala.js cross-compilation
- sbt-crossproject for managing the JVM / JS configuration
- sbt-unidoc for unifying the API documentation of the sub-projects
- sbt-doctest for testing the ScalaDoc
- sbt-microsites for building the documentation website, type checked via mdoc
- sbt-header for automatic copyright headers
- sbt-scalafmt default setup for auto-formatting
- sbt-git setup for version management based on Git tags and SHAs
- sbt-sonatype for faster and easier releases
- Sane setup for usage of sbt-scoverage for code coverage
- ...
Cloned from scala/scala-seed, inspired by the build definition of Monix and by ChristopherDavenport/library.g8, another template with similar goals.
To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this template to the public domain worldwide. This template is distributed without any warranty. See http://creativecommons.org/publicdomain/zero/1.0/.