val scala3: String = "3.7.4" ThisBuild / scalaVersion := scala3 ThisBuild / versionScheme := Some("semver-spec") ThisBuild / gsProjectName := "gs-predicate" ThisBuild / externalResolvers := Seq( "Garrity Software Mirror" at "https://maven.garrity.co/releases", "Garrity Software Releases" at "https://maven.garrity.co/gs" ) ThisBuild / licenses := Seq( "MIT" -> url("https://git.garrity.co/garrity-software/gs-predicate/LICENSE") ) val sharedSettings = Seq( scalaVersion := scala3, version := semVerSelected.value, coverageFailOnMinimum := true /* coverageMinimumStmtTotal := 100, coverageMinimumBranchTotal := 100 */ ) val Deps = new { val Circe = new { val Core: ModuleID = "io.circe" %% "circe-core" % "0.14.15" val Generic: ModuleID = "io.circe" %% "circe-generic" % "0.14.15" val Optics: ModuleID = "io.circe" %% "circe-optics" % "0.15.1" val Parser: ModuleID = "io.circe" %% "circe-parser" % "0.14.15" } val Gs = new { val Datagen: ModuleID = "gs" %% "gs-datagen-core-v0" % "0.3.3" } val MUnit: ModuleID = "org.scalameta" %% "munit" % "1.1.1" } lazy val testSettings = Seq( libraryDependencies ++= Seq( Deps.MUnit % Test, Deps.Gs.Datagen % Test ) ) lazy val `gs-predicate` = project .in(file(".")) .settings(sharedSettings) .settings(testSettings) .settings(name := s"${gsProjectName.value}-v${semVerMajor.value}") .settings( libraryDependencies ++= Seq( Deps.Circe.Core, Deps.Circe.Generic, Deps.Circe.Optics, Deps.Circe.Parser ) )