Skip to content

Commit 7da0d99

Browse files
committed
Merge branch 'main' into update/scala-library-2.13.17
2 parents 7263cf1 + fbd533b commit 7da0d99

File tree

10 files changed

+111
-25
lines changed

10 files changed

+111
-25
lines changed

.scalafmt.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = 3.9.10
1+
version = 3.10.1
22
runner.dialect = scala213source3
33
assumeStandardLibraryStripMargin = true
44
align.openParenCallSite = false

build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,8 @@ lazy val dummy = myCrossProject("dummy")
287287
.settings(noPublishSettings)
288288
.settings(
289289
libraryDependencies ++= Seq(
290-
Dependencies.millMain,
291-
Dependencies.scalaStewardMillPlugin
290+
Dependencies.millMain.intransitive(),
291+
Dependencies.scalaStewardMillPlugin.intransitive()
292292
)
293293
)
294294

modules/core/src/main/resources/default.scala-steward.conf

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ updates.ignore = [
6969
{ groupId = "org.scala-lang", artifactId = "scaladoc", version = { exact = "3.6.1" } },
7070

7171
// Ignore the next Scala 3 LTS version until it is announced.
72-
{ groupId = "org.scala-lang", artifactId = "scala3-compiler", version = { exact = "3.3.7" } },
73-
{ groupId = "org.scala-lang", artifactId = "scala3-library", version = { exact = "3.3.7" } },
74-
{ groupId = "org.scala-lang", artifactId = "scala3-library_sjs1", version = { exact = "3.3.7" } },
75-
{ groupId = "org.scala-lang", artifactId = "tasty-core", version = { exact = "3.3.7" } },
76-
{ groupId = "org.scala-lang", artifactId = "scala3-language-server", version = { exact = "3.3.7" } },
77-
{ groupId = "org.scala-lang", artifactId = "scala3-presentation-compiler", version = { exact = "3.3.7" } },
78-
{ groupId = "org.scala-lang", artifactId = "scala3-staging", version = { exact = "3.3.7" } },
79-
{ groupId = "org.scala-lang", artifactId = "scala3-tasty-inspector", version = { exact = "3.3.7" } },
80-
{ groupId = "org.scala-lang", artifactId = "scaladoc", version = { exact = "3.3.7" } },
72+
{ groupId = "org.scala-lang", artifactId = "scala3-compiler", version = { exact = "3.3.8" } },
73+
{ groupId = "org.scala-lang", artifactId = "scala3-library", version = { exact = "3.3.8" } },
74+
{ groupId = "org.scala-lang", artifactId = "scala3-library_sjs1", version = { exact = "3.3.8" } },
75+
{ groupId = "org.scala-lang", artifactId = "tasty-core", version = { exact = "3.3.8" } },
76+
{ groupId = "org.scala-lang", artifactId = "scala3-language-server", version = { exact = "3.3.8" } },
77+
{ groupId = "org.scala-lang", artifactId = "scala3-presentation-compiler", version = { exact = "3.3.8" } },
78+
{ groupId = "org.scala-lang", artifactId = "scala3-staging", version = { exact = "3.3.8" } },
79+
{ groupId = "org.scala-lang", artifactId = "scala3-tasty-inspector", version = { exact = "3.3.8" } },
80+
{ groupId = "org.scala-lang", artifactId = "scaladoc", version = { exact = "3.3.8" } },
8181

8282
// Ignore the 3.6.0 version as it is abandoned due to broken compatibility
8383
{ groupId = "org.scala-lang", artifactId = "scala3-compiler", version = { exact = "3.6.0" } },

modules/core/src/main/scala/org/scalasteward/core/buildtool/mill/MillAlg.scala

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ final class MillAlg[F[_]](defaultResolvers: List[Resolver])(implicit
3939
workspaceAlg.buildRootDir(buildRoot).flatMap(findBuildFile).map(_.nonEmpty)
4040

4141
private def findBuildFile(buildRootDir: File): F[Option[File]] =
42-
List("build.sc", "build.mill", "build.mill.scala")
42+
List("build.mill", "build.mill.scala", "build.sc")
4343
.map(buildRootDir / _)
4444
.findM(fileAlg.isRegularFile)
4545

@@ -90,11 +90,23 @@ final class MillAlg[F[_]](defaultResolvers: List[Resolver])(implicit
9090
override protected val scalafixIssue: Option[String] =
9191
Some("https://github.com/scala-steward-org/scala-steward/issues/2838")
9292

93-
private def getMillVersion(buildRootDir: File): F[Option[Version]] =
94-
List(
95-
buildRootDir / s".$millVersionName",
96-
buildRootDir / ".config" / millVersionName
97-
).collectFirstSomeM(fileAlg.readFile).map(_.flatMap(parser.parseMillVersion))
93+
private def getMillVersion(buildRootDir: File): F[Option[Version]] = {
94+
val fromConfigFile =
95+
List(
96+
buildRootDir / s".$millVersionName",
97+
buildRootDir / ".config" / millVersionName
98+
).collectFirstSomeM(fileAlg.readFile(_).map(_.flatMap(parser.parseMillVersion)))
99+
val fromBuildFile = List(
100+
buildRootDir / "build.mill",
101+
buildRootDir / "build.mill.scala",
102+
buildRootDir / "build.sc"
103+
).collectFirstSomeM(fileAlg.readFile(_).map(_.flatMap(parser.parseBuildFileMillVersion)))
104+
105+
fromBuildFile.flatMap {
106+
case None => fromConfigFile
107+
case some => F.pure(some)
108+
}
109+
}
98110

99111
private def getMillPluginDeps(
100112
millVersion: Version,

modules/core/src/main/scala/org/scalasteward/core/buildtool/mill/parser.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ object parser {
4646
def parseMillVersion(s: String): Option[Version] =
4747
Option(s.trim).filter(_.nonEmpty).map(Version.apply)
4848

49+
private val millVersionRegex = """\s*\/\/\|\s*mill-version:\s*['"]?(.+?)['"]?\s*""".r
50+
def parseBuildFileMillVersion(s: String): Option[Version] =
51+
s.linesIterator.collectFirst { case millVersionRegex(version) =>
52+
Version(version)
53+
}
54+
4955
/** Used to correctly format the Mill plugin artifacts will when included look like:
5056
* - import $ivy.`com.goyeau::mill-scalafix::0.2.10`
5157
*

modules/core/src/test/scala/org/scalasteward/core/buildtool/BuildToolDispatcherTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,16 @@ class BuildToolDispatcherTest extends FunSuite {
4343
val expectedState = initial.copy(trace =
4444
Cmd("test", "-f", s"$repoDir/gradle/libs.versions.toml") +:
4545
Cmd("test", "-f", s"$repoDir/pom.xml") +:
46-
Cmd("test", "-f", s"$repoDir/build.sc") +:
4746
Cmd("test", "-f", s"$repoDir/build.mill") +:
4847
Cmd("test", "-f", s"$repoDir/build.mill.scala") +:
48+
Cmd("test", "-f", s"$repoDir/build.sc") +:
4949
Cmd("test", "-f", s"$repoDir/build.sbt") +:
5050
allGreps ++:
5151
Cmd("test", "-f", s"$repoDir/mvn-build/gradle/libs.versions.toml") +:
5252
Cmd("test", "-f", s"$repoDir/mvn-build/pom.xml") +:
53-
Cmd("test", "-f", s"$repoDir/mvn-build/build.sc") +:
5453
Cmd("test", "-f", s"$repoDir/mvn-build/build.mill") +:
5554
Cmd("test", "-f", s"$repoDir/mvn-build/build.mill.scala") +:
55+
Cmd("test", "-f", s"$repoDir/mvn-build/build.sc") +:
5656
Cmd("test", "-f", s"$repoDir/mvn-build/build.sbt") +:
5757
allGreps ++:
5858
Log("Get dependencies in . from sbt") +:

modules/core/src/test/scala/org/scalasteward/core/buildtool/mill/MillAlgTest.scala

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ class MillAlgTest extends FunSuite {
2222
val state = millAlg.getDependencies(buildRoot).runS(initial).unsafeRunSync()
2323
val expected = initial.copy(
2424
trace = Vector(
25+
Cmd("read", s"$buildRootDir/build.mill"),
26+
Cmd("read", s"$buildRootDir/build.mill.scala"),
27+
Cmd("read", s"$buildRootDir/build.sc"),
2528
Cmd("read", s"$buildRootDir/.mill-version"),
2629
Cmd("read", s"$buildRootDir/.config/mill-version"),
2730
Cmd("write", predef),
@@ -53,8 +56,13 @@ class MillAlgTest extends FunSuite {
5356
val state = millAlg.getDependencies(buildRoot).runS(initial).unsafeRunSync()
5457
val expected = initial.copy(
5558
trace = Vector(
59+
Cmd("read", s"$buildRootDir/build.mill"),
60+
Cmd("read", s"$buildRootDir/build.mill.scala"),
61+
Cmd("read", s"$buildRootDir/build.sc"),
5662
Cmd("read", s"$buildRootDir/.mill-version"),
5763
millCmd,
64+
Cmd("test", "-f", s"$buildRootDir/build.mill"),
65+
Cmd("test", "-f", s"$buildRootDir/build.mill.scala"),
5866
Cmd("test", "-f", s"$buildRootDir/build.sc"),
5967
Cmd("read", s"$buildRootDir/build.sc")
6068
)
@@ -84,15 +92,51 @@ class MillAlgTest extends FunSuite {
8492
val state = millAlg.getDependencies(buildRoot).runS(initial).unsafeRunSync()
8593
val expected = initial.copy(
8694
trace = Vector(
95+
Cmd("read", s"$buildRootDir/build.mill"),
96+
Cmd("read", s"$buildRootDir/build.mill.scala"),
97+
Cmd("read", s"$buildRootDir/build.sc"),
8798
Cmd("read", s"$buildRootDir/.mill-version"),
8899
millCmd,
100+
Cmd("test", "-f", s"$buildRootDir/build.mill"),
101+
Cmd("test", "-f", s"$buildRootDir/build.mill.scala"),
89102
Cmd("test", "-f", s"$buildRootDir/build.sc"),
90103
Cmd("read", s"$buildRootDir/build.sc")
91104
)
92105
)
93106
assertEquals(state, expected)
94107
}
95108

109+
test("getDependencies, 1 <= version") {
110+
val repo = Repo("mill-alg", "test-3")
111+
val buildRoot = BuildRoot(repo, ".")
112+
val buildRootDir = workspaceAlg.buildRootDir(buildRoot).unsafeRunSync()
113+
val millCmd = Cmd.execSandboxed(
114+
buildRootDir,
115+
"mill",
116+
"--no-server",
117+
"--ticker",
118+
"false",
119+
"--import",
120+
s"ivy:org.scala-steward::${BuildInfo.millPluginArtifactName}::${BuildInfo.millPluginVersion}",
121+
"show",
122+
extractDeps
123+
)
124+
val initial = MockState.empty
125+
.copy(commandOutputs = Map(millCmd -> Right(List("""{"modules":[]}"""))))
126+
.addFiles(buildRootDir / "build.mill" -> "//| mill-version: 1.0.6")
127+
.unsafeRunSync()
128+
val state = millAlg.getDependencies(buildRoot).runS(initial).unsafeRunSync()
129+
val expected = initial.copy(
130+
trace = Vector(
131+
Cmd("read", s"$buildRootDir/build.mill"),
132+
millCmd,
133+
Cmd("test", "-f", s"$buildRootDir/build.mill"),
134+
Cmd("read", s"$buildRootDir/build.mill")
135+
)
136+
)
137+
assertEquals(state, expected)
138+
}
139+
96140
test("predef-content") {
97141
assert(MillAlg.content(None).contains("_mill$MILL_BIN_PLATFORM"))
98142
assert(MillAlg.content(Some(Version("0.6.1"))).contains("_mill0.6"))

modules/core/src/test/scala/org/scalasteward/core/buildtool/mill/MillVersionParserTest.scala

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,28 @@ class MillVersionParserTest extends FunSuite {
1919
val parsed = parser.parseMillVersion(versionFileContent).map(_.value)
2020
assertEquals(parsed, expected)
2121
}
22+
23+
test(s"parse version from build.mill file") {
24+
val buildMillFileContent = """
25+
|//| mill-version: 1.0.5
26+
|""".stripMargin
27+
val parsed = parser.parseBuildFileMillVersion(buildMillFileContent).map(_.value)
28+
assertEquals(parsed, Some("1.0.5"))
29+
}
30+
31+
test(s"parse quoted version from build.mill file") {
32+
val buildMillFileContent = """
33+
|//| mill-version: "1.0.5"
34+
|""".stripMargin
35+
val parsed = parser.parseBuildFileMillVersion(buildMillFileContent).map(_.value)
36+
assertEquals(parsed, Some("1.0.5"))
37+
}
38+
39+
test(s"parse single quoted version from build.mill file") {
40+
val buildMillFileContent = """
41+
|//| mill-version: '1.0.5'
42+
|""".stripMargin
43+
val parsed = parser.parseBuildFileMillVersion(buildMillFileContent).map(_.value)
44+
assertEquals(parsed, Some("1.0.5"))
45+
}
2246
}

project/Dependencies.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ object Dependencies {
2828
val http4sEmberServer = "org.http4s" %% "http4s-ember-server" % http4sCore.revision
2929
val http4sJdkhttpClient = "org.http4s" %% "http4s-jdk-http-client" % "1.0.0-M10"
3030
val log4catsSlf4j = "org.typelevel" %% "log4cats-slf4j" % "2.7.1"
31-
val logbackClassic = "ch.qos.logback" % "logback-classic" % "1.5.19"
31+
val logbackClassic = "ch.qos.logback" % "logback-classic" % "1.5.20"
3232
val jjwtApi = "io.jsonwebtoken" % "jjwt-api" % "0.13.0"
3333
val jjwtImpl = "io.jsonwebtoken" % "jjwt-impl" % jjwtApi.revision
3434
val jjwtJackson = "io.jsonwebtoken" % "jjwt-jackson" % jjwtApi.revision
35-
val millMain = "com.lihaoyi" % "mill-main_2.13" % "0.12.16"
35+
val millMain = "com.lihaoyi" % "mill-runner-launcher_3" % "1.0.6"
3636
val monocleCore = "dev.optics" %% "monocle-core" % "3.3.0"
3737
val munit = "org.scalameta" %% "munit" % "1.2.0"
3838
val munitCatsEffect = "org.typelevel" %% "munit-cats-effect" % "2.1.0"
@@ -44,6 +44,6 @@ object Dependencies {
4444
val scalacheck = "org.scalacheck" %% "scalacheck" % "1.19.0"
4545
val scalaStewardMillPluginArtifactName = "scala-steward-mill-plugin"
4646
val scalaStewardMillPlugin =
47-
"org.scala-steward" % s"${scalaStewardMillPluginArtifactName}_mill0.11_2.13" % "0.18.2"
47+
"org.scala-steward" % s"${scalaStewardMillPluginArtifactName}_mill1_3" % "0.19.0"
4848
val tomlj = "org.tomlj" % "tomlj" % "1.1.1"
4949
}

project/plugins.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.2")
1010
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.8")
1111
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2")
1212
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.7.2")
13-
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.3.1")
14-
addSbtPlugin("org.typelevel" % "sbt-typelevel-mergify" % "0.8.1")
13+
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.4.0")
14+
addSbtPlugin("org.typelevel" % "sbt-typelevel-mergify" % "0.8.2")
1515

1616
ThisBuild / evictionErrorLevel := Level.Info

0 commit comments

Comments
 (0)