Customization

The complete list of plugins, settings, and utilities is given below. The sbt-typelevel-ci-release and sbt-typelevel super-plugins automatically load most of them. The diagram at the bottom of the page shows their inter-dependencies.

Instead of using the super-plugins, for finer-grained control you can always add plugins individually to your project and even build your own custom super-plugin.

Modules

sbt-typelevel-no-publish

NoPublishPlugin

sbt-typelevel-kernel

TypelevelKernelPlugin

sbt-typelevel-versioning

TypelevelVersioningPlugin: Establishes a git-based, early semantic versioning scheme.

sbt-typelevel-mima

TypelevelMimaPlugin: Determines previous MiMa artifacts via your version setting and git tags.

sbt-typelevel-sonatype

TypelevelSonatypePlugin: Sets up publishing to Sonatype/Maven.

TypelevelUnidocPlugin: Sets up publishing a Scaladoc-only artifact to Sonatype/Maven.

sbt-typelevel-settings

TypelevelSettingsPlugin: Good and/or opinionated defaults for scalac settings etc., inspired by sbt-tpolecat.

sbt-typelevel-github

TypelevelGitHubPlugin: Populates boilerplate settings assuming you are using GitHub.

TypelevelScalaJSGitHubPlugin: Points your sourcemaps to GitHub permalinks. Only activated for Scala.js projects.

sbt-typelevel-github-actions

GitHubActionsPlugin: Provides general functionality, giving builds the ability to introspect on their host workflow and whether or not they are running in GitHub Actions.

GenerativePlugin: Makes it easier to maintain GitHub Actions builds for sbt projects by generating ci.yml and clean.yml workflow definition files.

Both plugins are documented in sbt-typelevel-github-actions.

sbt-typelevel-ci

TypelevelCiPlugin: Sets up GitHub actions to run tests and submit dependencies for vulnerability scanning. You can optionally enable checks for headers, formatting, scalafix, MiMa, and scaladoc.

sbt-typelevel-sonatype-ci-release

TypelevelSonatypeCiReleasePlugin: Sets up GitHub actions to publish to Sonatype in CI.

sbt-typelevel-ci-signing

TypelevelCiSigningPlugin: Sets up GitHub actions to sign your artifacts in CI.

sbt-typelevel-ci-release

TypelevelCiReleasePlugin: The super-plugin that sets you up with versioning, mima, signing, and sonatype publishing, all in GitHub actions. Using this plugin the following 2 settings have new default values:

sbt-typelevel-scalafix

TypelevelScalafixPlugin

sbt-typelevel

TypelevelPlugin: The super-super-plugin intended for bootstrapping the typical Typelevel project. Sets up CI release including snapshots, scalac settings, headers, and formatting.

TypelevelBspPlugin: A plugin that controls for which cross-project platforms the bspEnabled setting should be set to true. By default it becomes enabled for JVMPlatform only.

sbt-typelevel-site

TypelevelSitePlugin: Sets up an mdoc/Laika-generated website, automatically published to GitHub pages in CI.

sbt-typelevel-mergify

MergifyPlugin: Sets up .mergify.yml file generation

Dependency diagram

sbt-typelevel plugins are in red and the super-plugins are boxed.