davenverse / sbt-davenverse   0.1.4

MIT License GitHub

SBT Plugin For Ease Of Access and Use - Hopefully General to Most Builds

Scala versions: 2.12
sbt plugins: 1.x

sbt-davenverse - Shared Configs and Setup Maven Central Code of Consuct

Quick Start

To use sbt-davenverse in an existing SBT project with Scala 2.11 or a later version, add the following dependencies to your plugins.sbt depending on your needs:

addSbtPlugin("io.chrisdavenport" % "sbt-davenverse" % "<version>")

A basic setup for a page with a website like these other website might look like the following

ThisBuild / crossScalaVersions := Seq("2.12.13", "2.13.5")

lazy val `my-cool-project` = project.in(file("."))
  .disablePlugins(MimaPlugin)
  .enablePlugins(NoPublishPlugin)
  .aggregate(core)

lazy val core = project.in(file("core"))
  .settings(name := "my-cool-project")

lazy val site = project.in(file("site"))
  .enablePlugins(DavenverseMicrositePlugin)
  .disablePlugins(MimaPlugin)
  .dependsOn(core)
  .settings(
    micrositeDescription := "My Cool Project Does Stuff" // Override so your site has cool stuff on it.
  )
  // Site directory should put md files in /site/docs
  // The gemfile provided in the included site directory should be up to date for it.

// Override organization in your build
ThisBuild / organization := "io.chrisdavenport",
// Override developers in your build
ThisBuild / developers := List(
  Developer("ChristopherDavenport", "Christopher Davenport", "[email protected]", url("https://github.com/ChristopherDavenport"))
),
// Override licenses in your build
ThisBuild / licenses := Seq("MIT" -> url("http://opensource.org/licenses/MIT")),

Meanwhile on the other side of the coin if you don't want a microsite, then you might make something more minimal, in which case you don't need to add anymore settings to get full ci-testing, and the expected configurations in place.

name := "minimal-example"


// Override organization in your build
ThisBuild / organization := "io.chrisdavenport",
// Override developers in your build
ThisBuild / developers := List(
  Developer("ChristopherDavenport", "Christopher Davenport", "[email protected]", url("https://github.com/ChristopherDavenport"))
),
// Override licenses in your build
ThisBuild / licenses := Seq("MIT" -> url("http://opensource.org/licenses/MIT")),

The setting keys that this makes available are

  • davenverseGithubOwner - automatically picked up from git, but can be provided
  • davenverseGithubRepoName - automatically picked up from git, but can be provided

In the site plugin

  • davenverseSiteScalaVersion - This is the site scala version that is used to derive the condition for the microsite. Which is the highest version of scala 2 supported ideally.
  • davenverseSiteConditional - This is used for the site conditions, may be necessary checking to change to add features for unconsidered conditionals for this plugin yet.