project/ProjectAutoPlugin.scala (87 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * license agreements; and to You under the Apache License, version 2.0: * * https://www.apache.org/licenses/LICENSE-2.0 * * This file is part of the Apache Pekko project, which was derived from Akka. */ import sbt.Keys._ import sbt._ import sbt.plugins.JvmPlugin import org.mdedetrich.apache.sonatype.ApacheSonatypePlugin import sbtdynver.DynVerPlugin import sbtdynver.DynVerPlugin.autoImport.dynverSonatypeSnapshots object ProjectAutoPlugin extends AutoPlugin { object autoImport {} override val requires = JvmPlugin && ApacheSonatypePlugin && DynVerPlugin override def globalSettings = Seq( homepage := Some(url("https://pekko.apache.org/docs/pekko-persistence-jdbc/current/")), scmInfo := Some( ScmInfo(url("https://github.com/apache/pekko-persistence-jdbc"), "git@github.com:apache/pekko-persistence-jdbc.git")), developers += Developer( "contributors", "Contributors", "dev@pekko.apache.org", url("https://github.com/apache/pekko-persistence-jdbc/graphs/contributors")), description := "A plugin for storing events in an event journal pekko-persistence-jdbc", startYear := Some(2022)) override val trigger: PluginTrigger = allRequirements override val projectSettings: Seq[Setting[_]] = Seq( crossVersion := CrossVersion.binary, crossScalaVersions := Dependencies.ScalaVersions, scalaVersion := Dependencies.Scala213, Test / fork := false, Test / parallelExecution := false, Test / logBuffered := true, scalacOptions ++= Seq( "-encoding", "UTF-8", "-unchecked", "-Xlog-reflective-calls", "-language:higherKinds", "-language:implicitConversions", "-release:8"), Compile / scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, 13)) => disciplineScalacOptions -- Set( "-Ywarn-inaccessible", "-Ywarn-infer-any", "-Ywarn-nullary-override", "-Ywarn-nullary-unit", "-Ypartial-unification", "-Yno-adapted-args") case Some((2, 12)) => disciplineScalacOptions case _ => Nil }).toSeq, scalacOptions += "-Ydelambdafy:method", Compile / doc / scalacOptions := scalacOptions.value ++ Seq( "-doc-title", "Apache Pekko Persistence JDBC", "-doc-version", version.value, "-sourcepath", (ThisBuild / baseDirectory).value.toString) ++ { if (scalaBinaryVersion.value == "3") List("-skip-packages:pekko.pattern") else List("-skip-packages", "pekko.pattern") } ++ List("-doc-source-url", { val branch = if (isSnapshot.value) "main" else s"v${version.value}" s"https://github.com/apache/pekko-persistence-jdbc/tree/${branch}€{FILE_PATH_EXT}#L€{FILE_LINE}" }, "-doc-canonical-base-url", "https://pekko.apache.org/api/pekko-persistence-jdbc/current/"), // show full stack traces and test case durations Test / testOptions += Tests.Argument("-oDF")) override lazy val buildSettings = Seq( dynverSonatypeSnapshots := true) val disciplineScalacOptions = Set( // "-Xfatal-warnings", "-feature", "-Yno-adapted-args", "-deprecation", "-Xlint", "-Ywarn-dead-code", "-Ywarn-inaccessible", "-Ywarn-infer-any", "-Ywarn-nullary-override", "-Ywarn-nullary-unit", "-Ywarn-unused:_", "-Ypartial-unification", "-Ywarn-extra-implicit") }