<commit_before>
lazy val baseSettings =
  sbtrelease.ReleasePlugin.releaseSettings ++
  GitVersion.settings ++
  Bintray.settings ++
  scoverage.ScoverageSbtPlugin.projectSettings

lazy val buildSettings = baseSettings ++ Seq(
          organization := BuildSettings.organization,
          scalaVersion := Dependencies.Versions.scala,
         scalacOptions ++= BuildSettings.compilerFlags,
            crossPaths := true,
    crossScalaVersions := Dependencies.Versions.crossScala,
         sourcesInBase := false,
            exportJars := true,   // Needed for one-jar, with multi-project
     externalResolvers := BuildSettings.resolvers,
   checkLicenseHeaders := License.checkLicenseHeaders(streams.value.log, sourceDirectory.value),
  formatLicenseHeaders := License.formatLicenseHeaders(streams.value.log, sourceDirectory.value)
)

lazy val root = project.in(file("."))
  .aggregate(
    `atlas-akka`,
    `atlas-chart`,
    `atlas-config`,
    `atlas-core`,
    `atlas-jmh`,
    `atlas-json`,
    `atlas-module-akka`,
    `atlas-module-webapi`,
    `atlas-standalone`,
    `atlas-test`,
    `atlas-webapi`,
    `atlas-wiki`)
  .settings(buildSettings: _*)
  .settings(BuildSettings.noPackaging: _*)

lazy val `atlas-akka` = project
  .dependsOn(`atlas-json`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.akkaActor,
    Dependencies.akkaSlf4j,
    Dependencies.iepService,
    Dependencies.spectatorSandbox,
    Dependencies.sprayCan,
    Dependencies.sprayRouting,
    Dependencies.typesafeConfig,
    Dependencies.akkaTestkit % "test",
    Dependencies.sprayTestkit % "test"
  ))

lazy val `atlas-chart` = project
  .dependsOn(`atlas-core`, `atlas-json`, `atlas-test` % "test")
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)

lazy val `atlas-config` = project
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)

lazy val `atlas-core` = project
  .dependsOn(`atlas-config`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.caffeine,
    Dependencies.equalsVerifier % "test",
    Dependencies.jol % "test"
  ))

lazy val `atlas-jmh` = project
  .dependsOn(`atlas-core`)
  .enablePlugins(pl.project13.scala.sbt.SbtJmh)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)

lazy val `atlas-json` = project
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.jacksonCore2,
    Dependencies.jacksonJoda2,
    Dependencies.jacksonMapper2,
    Dependencies.jacksonScala2,
    Dependencies.jacksonSmile2,
    Dependencies.jodaConvert
  ))

lazy val `atlas-module-akka` = project
  .dependsOn(`atlas-akka`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.guiceCore,
    Dependencies.guiceMulti,
    Dependencies.iepGuice
  ))

lazy val `atlas-module-webapi` = project
  .dependsOn(`atlas-webapi`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.guiceCore,
    Dependencies.iepGuice
  ))

lazy val `atlas-standalone` = project
  .dependsOn(`atlas-module-akka`, `atlas-module-webapi`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.iepGuice,
    Dependencies.guiceCore,
    Dependencies.guiceMulti,
    Dependencies.log4jApi,
    Dependencies.log4jCore,
    Dependencies.log4jSlf4j,
    Dependencies.spectatorLog4j
  ))

lazy val `atlas-test` = project
  .dependsOn(`atlas-core`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= Seq(
    Dependencies.scalatest
  ))

lazy val `atlas-webapi` = project
  .dependsOn(`atlas-akka`, `atlas-chart`, `atlas-core`, `atlas-json`, `atlas-test` % "test")
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.spectatorSandbox,
    Dependencies.akkaTestkit % "test",
    Dependencies.sprayTestkit % "test"
  ))

lazy val `atlas-wiki` = project
  .dependsOn(`atlas-core`, `atlas-webapi`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= Seq(
    Dependencies.scalaCompiler
  ))

val commonDeps = Seq(
  Dependencies.jsr305,
  Dependencies.scalaLogging,
  Dependencies.slf4jApi,
  Dependencies.spectatorApi,
  Dependencies.typesafeConfig,
  Dependencies.scalatest % "test")

lazy val checkLicenseHeaders = taskKey[Unit]("Check the license headers for all source files.")
lazy val formatLicenseHeaders = taskKey[Unit]("Fix the license headers for all source files.")<commit_msg>fix "wrong forward reference" warnings<commit_after>
lazy val baseSettings =
  sbtrelease.ReleasePlugin.releaseSettings ++
  GitVersion.settings ++
  Bintray.settings ++
  scoverage.ScoverageSbtPlugin.projectSettings

lazy val buildSettings = baseSettings ++ Seq(
          organization := BuildSettings.organization,
          scalaVersion := Dependencies.Versions.scala,
         scalacOptions ++= BuildSettings.compilerFlags,
            crossPaths := true,
    crossScalaVersions := Dependencies.Versions.crossScala,
         sourcesInBase := false,
            exportJars := true,   // Needed for one-jar, with multi-project
     externalResolvers := BuildSettings.resolvers,
   checkLicenseHeaders := License.checkLicenseHeaders(streams.value.log, sourceDirectory.value),
  formatLicenseHeaders := License.formatLicenseHeaders(streams.value.log, sourceDirectory.value)
)

val commonDeps = Seq(
  Dependencies.jsr305,
  Dependencies.scalaLogging,
  Dependencies.slf4jApi,
  Dependencies.spectatorApi,
  Dependencies.typesafeConfig,
  Dependencies.scalatest % "test")

lazy val root = project.in(file("."))
  .aggregate(
    `atlas-akka`,
    `atlas-chart`,
    `atlas-config`,
    `atlas-core`,
    `atlas-jmh`,
    `atlas-json`,
    `atlas-module-akka`,
    `atlas-module-webapi`,
    `atlas-standalone`,
    `atlas-test`,
    `atlas-webapi`,
    `atlas-wiki`)
  .settings(buildSettings: _*)
  .settings(BuildSettings.noPackaging: _*)

lazy val `atlas-akka` = project
  .dependsOn(`atlas-json`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.akkaActor,
    Dependencies.akkaSlf4j,
    Dependencies.iepService,
    Dependencies.spectatorSandbox,
    Dependencies.sprayCan,
    Dependencies.sprayRouting,
    Dependencies.typesafeConfig,
    Dependencies.akkaTestkit % "test",
    Dependencies.sprayTestkit % "test"
  ))

lazy val `atlas-chart` = project
  .dependsOn(`atlas-core`, `atlas-json`, `atlas-test` % "test")
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)

lazy val `atlas-config` = project
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)

lazy val `atlas-core` = project
  .dependsOn(`atlas-config`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.caffeine,
    Dependencies.equalsVerifier % "test",
    Dependencies.jol % "test"
  ))

lazy val `atlas-jmh` = project
  .dependsOn(`atlas-core`)
  .enablePlugins(pl.project13.scala.sbt.SbtJmh)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)

lazy val `atlas-json` = project
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.jacksonCore2,
    Dependencies.jacksonJoda2,
    Dependencies.jacksonMapper2,
    Dependencies.jacksonScala2,
    Dependencies.jacksonSmile2,
    Dependencies.jodaConvert
  ))

lazy val `atlas-module-akka` = project
  .dependsOn(`atlas-akka`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.guiceCore,
    Dependencies.guiceMulti,
    Dependencies.iepGuice
  ))

lazy val `atlas-module-webapi` = project
  .dependsOn(`atlas-webapi`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.guiceCore,
    Dependencies.iepGuice
  ))

lazy val `atlas-standalone` = project
  .dependsOn(`atlas-module-akka`, `atlas-module-webapi`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.iepGuice,
    Dependencies.guiceCore,
    Dependencies.guiceMulti,
    Dependencies.log4jApi,
    Dependencies.log4jCore,
    Dependencies.log4jSlf4j,
    Dependencies.spectatorLog4j
  ))

lazy val `atlas-test` = project
  .dependsOn(`atlas-core`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= Seq(
    Dependencies.scalatest
  ))

lazy val `atlas-webapi` = project
  .dependsOn(`atlas-akka`, `atlas-chart`, `atlas-core`, `atlas-json`, `atlas-test` % "test")
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= commonDeps)
  .settings(libraryDependencies ++= Seq(
    Dependencies.spectatorSandbox,
    Dependencies.akkaTestkit % "test",
    Dependencies.sprayTestkit % "test"
  ))

lazy val `atlas-wiki` = project
  .dependsOn(`atlas-core`, `atlas-webapi`)
  .settings(buildSettings: _*)
  .settings(libraryDependencies ++= Seq(
    Dependencies.scalaCompiler
  ))

lazy val checkLicenseHeaders = taskKey[Unit]("Check the license headers for all source files.")
lazy val formatLicenseHeaders = taskKey[Unit]("Fix the license headers for all source files.")
{'fraction_non_alphanumeric': 0.1256555269922879, 'fraction_numerical': 0.0034961439588688946, 'mean_word_length': 4.31185144729656, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5464415', 'n_tokens_mistral': 3372, 'n_tokens_neox': 3114, 'n_words': 505}