-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.sbt
103 lines (96 loc) · 3.7 KB
/
build.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import org.typelevel.sbt.gha.WorkflowStep.Sbt
ThisBuild / organization := "com.dwolla"
ThisBuild / description := "Adds support for decrypting values in TypeSafe Config files"
ThisBuild / homepage := Some(url("https://github.com/Dwolla/scala-secure-config"))
ThisBuild / licenses += ("MIT", url("http://opensource.org/licenses/MIT"))
ThisBuild / developers := List(
Developer(
"bpholt",
"Brian Holt",
url("https://dwolla.com")
),
)
ThisBuild / crossScalaVersions := Seq(
"2.13.15",
"3.3.4",
)
ThisBuild / scalaVersion := crossScalaVersions.value.head
ThisBuild / startYear := Option(2018)
ThisBuild / tlBaseVersion := "0.4"
ThisBuild / tlJdkRelease := Some(8)
ThisBuild / githubWorkflowBuild := List(Sbt(List("compile", "test")))
ThisBuild / tlCiReleaseBranches := Seq("main")
ThisBuild / sonatypeCredentialHost := xerial.sbt.Sonatype.sonatypeLegacy
ThisBuild / mergifyRequiredJobs ++= Seq("validate-steward")
ThisBuild / mergifyStewardConfig ~= { _.map {
_.withAuthor("dwolla-oss-scala-steward[bot]")
.withMergeMinors(true)
}}
Global / tlCommandAliases := {
def forEachScalaVersion(l: String *): Seq[String] =
githubWorkflowScalaVersions.value.flatMap { v =>
s"++ $v" :: l.toList
}
val base = List("reload", "project /")
Map(
"tlRelease" -> (base ++ forEachScalaVersion("mimaReportBinaryIssues", "publish") ++ List("tlSonatypeBundleReleaseIfRelevant")),
"tlReleaseLocal" -> (base ++ forEachScalaVersion("compile", "publishLocal"))
)
}
lazy val `smithy4s-preprocessors` = project
.in(file("smithy4s-preprocessors"))
.settings(
scalaVersion := "2.12.20", // 2.12 to match what SBT uses
scalacOptions -= "-source:future",
libraryDependencies ++= {
Seq(
"org.typelevel" %% "cats-core" % "2.10.0",
"software.amazon.smithy" % "smithy-build" % smithy4s.codegen.BuildInfo.smithyVersion,
)
},
)
.enablePlugins(NoPublishPlugin)
// TODO add tests for this
lazy val `scalafix-rules` = project.in(file("scalafix/rules"))
.settings(
libraryDependencies ++= Seq(
"ch.epfl.scala" %% "scalafix-core" % _root_.scalafix.sbt.BuildInfo.scalafixVersion cross CrossVersion.for3Use2_13,
"org.scalameta" %% "munit" % "1.0.0" % Test,
"com.eed3si9n.expecty" %% "expecty" % "0.16.0" % Test,
),
dependencyOverrides ++= Seq(
"com.google.protobuf" % "protobuf-java" % "3.25.5", // CVE-2024-7254
),
scalacOptions ~= {
_.filterNot(_ == "-Xfatal-warnings")
},
)
ThisBuild / semanticdbEnabled := true
ThisBuild / semanticdbVersion := scalafixSemanticdb.revision
lazy val `secure-config` = (project in file("."))
.settings(
libraryDependencies ++= {
Seq(
"com.github.pureconfig" %% "pureconfig-cats-effect" % "0.17.7",
"io.monix" %% "newtypes-core" % "0.3.0",
"com.disneystreaming.smithy4s" %% "smithy4s-http4s" % smithy4sVersion.value,
"com.disneystreaming.smithy4s" %% "smithy4s-aws-http4s" % smithy4sVersion.value,
"org.scodec" %% "scodec-bits" % "1.2.1",
"org.typelevel" %% "mouse" % "1.3.2",
"org.scalameta" %% "munit" % "1.0.2" % Test,
"org.http4s" %% "http4s-ember-client" % "0.23.28" % Test,
)
},
smithy4sAwsSpecs ++= Seq(AWS.kms),
scalacOptions += "-Wconf:src=src_managed/.*:s",
Compile / smithy4sModelTransformers += "com.dwolla.config.smithy.ShadeNamespace",
Compile / smithy4sAllDependenciesAsJars += (`smithy4s-preprocessors` / Compile / packageBin).value,
Compile / smithy4sSmithyLibrary := false,
Compile / scalafix / unmanagedSources := (Compile / sources).value,
scalafixOnCompile := true,
)
.enablePlugins(
Smithy4sCodegenPlugin,
)
.dependsOn(`scalafix-rules` % ScalafixConfig)