Skip to content

Commit eb87eff

Browse files
authored
Merge pull request #3527 from scala-steward-org/topic/scala-3
Cross-build with Scala 3
2 parents a35f3dc + 4bf0b66 commit eb87eff

File tree

10 files changed

+35
-12
lines changed

10 files changed

+35
-12
lines changed

.github/workflows/ci.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
strategy:
2929
matrix:
3030
os: [ubuntu-22.04]
31-
scala: [2.13]
31+
scala: [2.13, 3]
3232
java: [temurin@21, temurin@17, temurin@11]
3333
runs-on: ${{ matrix.os }}
3434
timeout-minutes: 60
@@ -177,6 +177,16 @@ jobs:
177177
tar xf targets.tar
178178
rm targets.tar
179179
180+
- name: Download target directories (3)
181+
uses: actions/download-artifact@v4
182+
with:
183+
name: target-${{ matrix.os }}-${{ matrix.java }}-3
184+
185+
- name: Inflate target directories (3)
186+
run: |
187+
tar xf targets.tar
188+
rm targets.tar
189+
180190
- name: Publish JARs
181191
env:
182192
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}

.mergify.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ pull_request_rules:
2424
- status-success=Test (ubuntu-22.04, 2.13, temurin@21)
2525
- status-success=Test (ubuntu-22.04, 2.13, temurin@17)
2626
- status-success=Test (ubuntu-22.04, 2.13, temurin@11)
27+
- status-success=Test (ubuntu-22.04, 3, temurin@21)
28+
- status-success=Test (ubuntu-22.04, 3, temurin@17)
29+
- status-success=Test (ubuntu-22.04, 3, temurin@11)
2730
actions:
2831
merge:
2932
method: merge

build.sbt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ val moduleCrossPlatformMatrix: Map[String, List[Platform]] = Map(
2121
)
2222

2323
val Scala213 = "2.13.15"
24+
val Scala3 = "3.3.4"
2425

2526
/// sbt-typelevel configuration
2627

27-
ThisBuild / crossScalaVersions := Seq(Scala213)
28+
ThisBuild / crossScalaVersions := Seq(Scala213, Scala3)
2829
ThisBuild / githubWorkflowTargetTags ++= Seq("v*")
2930
ThisBuild / githubWorkflowPublishTargetBranches := Seq(
3031
RefPredicate.Equals(Ref.Branch(mainBranch)),
@@ -109,6 +110,7 @@ lazy val benchmark = myCrossProject("benchmark")
109110
.enablePlugins(JmhPlugin)
110111
.settings(noPublishSettings)
111112
.settings(
113+
crossScalaVersions := Seq(Scala213, Scala3),
112114
scalacOptions -= "-Wnonunit-statement",
113115
coverageEnabled := false,
114116
unusedCompileDependencies := Set.empty
@@ -118,6 +120,7 @@ lazy val core = myCrossProject("core")
118120
.enablePlugins(BuildInfoPlugin, JavaAppPackaging, DockerPlugin)
119121
.settings(dockerSettings)
120122
.settings(
123+
crossScalaVersions := Seq(Scala213, Scala3),
121124
libraryDependencies ++= Seq(
122125
Dependencies.bcprovJdk15to18,
123126
Dependencies.betterFiles,
@@ -129,8 +132,8 @@ lazy val core = myCrossProject("core")
129132
Dependencies.circeParser,
130133
Dependencies.circeRefined,
131134
Dependencies.commonsIo,
132-
Dependencies.coursierCore,
133-
Dependencies.coursierSbtMaven,
135+
Dependencies.coursierCore.cross(CrossVersion.for3Use2_13),
136+
Dependencies.coursierSbtMaven.cross(CrossVersion.for3Use2_13),
134137
Dependencies.cron4sCore,
135138
Dependencies.decline,
136139
Dependencies.fs2Core,
@@ -158,6 +161,9 @@ lazy val core = myCrossProject("core")
158161
Dependencies.refinedScalacheck % Test,
159162
Dependencies.scalacheck % Test
160163
),
164+
// Workaround for https://github.com/cb372/sbt-explicit-dependencies/issues/117
165+
unusedCompileDependenciesFilter -=
166+
moduleFilter(organization = Dependencies.coursierCore.organization),
161167
assembly / test := {},
162168
assembly / assemblyMergeStrategy := {
163169
case PathList("META-INF", "versions", "9", "module-info.class") =>
@@ -244,6 +250,7 @@ lazy val docs = myCrossProject("docs")
244250
.enablePlugins(MdocPlugin)
245251
.settings(noPublishSettings)
246252
.settings(
253+
scalacOptions += "-Ytasty-reader",
247254
mdocIn := baseDirectory.value / ".." / "mdoc",
248255
mdocOut := (LocalRootProject / baseDirectory).value / "docs",
249256
mdocVariables := Map(

modules/core/src/main/scala/org/scalasteward/core/client/ClientConfiguration.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ object ClientConfiguration {
5050
val params = javax.net.ssl.SSLContext.getDefault().getDefaultSSLParameters()
5151
params.setProtocols(params.getProtocols().filter(_ != "TLSv1.3"))
5252
builder.sslParameters(params)
53+
()
5354
}
5455

5556
builder.executor(exec)

modules/core/src/main/scala/org/scalasteward/core/forge/github/GitHubAuthAlg.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ final class GitHubAuthAlg[F[_]](
152152
val expMillis = nowMillis + ttlMillis
153153
val exp = new Date(expMillis)
154154
builder.expiration(exp)
155+
()
155156
}
156157
builder.compact()
157158
}

modules/core/src/main/scala/org/scalasteward/core/nurture/UpdateInfoUrlFinder.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ object UpdateInfoUrlFinder {
8989
fileNames.map(f => wrap(forgeRepo.fileUrlFor(f)))
9090

9191
gitHubReleaseNotesFor(forgeRepo, update.nextVersion) ++
92-
customUrls(CustomReleaseNotes, possibleReleaseNotesFilenames) ++
93-
customUrls(CustomChangelog, possibleChangelogFilenames) ++
92+
customUrls(CustomReleaseNotes.apply, possibleReleaseNotesFilenames) ++
93+
customUrls(CustomChangelog.apply, possibleChangelogFilenames) ++
9494
possibleVersionDiffs(forgeRepo, update)
9595
}
9696

modules/core/src/main/scala/org/scalasteward/core/repoconfig/PullRequestFrequency.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package org.scalasteward.core.repoconfig
1919
import cats.Eq
2020
import cats.syntax.all._
2121
import cron4s.lib.javatime._
22+
import cron4s.syntax.cron._
2223
import io.circe.{Decoder, Encoder}
2324
import org.scalasteward.core.repoconfig.PullRequestFrequency._
2425
import org.scalasteward.core.util.Timestamp

modules/core/src/main/scala/org/scalasteward/core/repoconfig/UpdatesConfig.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import org.scalasteward.core.buildtool.maven.pomXmlName
2626
import org.scalasteward.core.buildtool.mill.MillAlg
2727
import org.scalasteward.core.buildtool.sbt.buildPropertiesName
2828
import org.scalasteward.core.data.{GroupId, Update}
29-
import org.scalasteward.core.repoconfig.UpdatesConfig.defaultLimit
3029
import org.scalasteward.core.scalafmt.scalafmtConfName
3130
import org.scalasteward.core.update.FilterAlg.{
3231
FilterResult,
@@ -42,7 +41,7 @@ final case class UpdatesConfig(
4241
private val allowPreReleases: Option[List[UpdatePattern]] = None,
4342
private val ignore: Option[List[UpdatePattern]] = None,
4443
private val retracted: Option[List[RetractedArtifact]] = None,
45-
limit: Option[NonNegInt] = defaultLimit,
44+
limit: Option[NonNegInt] = UpdatesConfig.defaultLimit,
4645
private val fileExtensions: Option[List[String]] = None
4746
) {
4847
private[repoconfig] def pinOrDefault: List[UpdatePattern] =

modules/core/src/test/scala/org/scalasteward/core/BuiltinConfigFilesTest.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.scalasteward.core.mock.MockContext.context.{
1212
scalafixMigrationsLoader
1313
}
1414
import org.scalasteward.core.mock.MockContext.mockState
15+
import org.scalasteward.core.mock.MockEffOps
1516
import org.scalasteward.core.repoconfig.RepoConfigLoader
1617
import org.scalasteward.core.update.artifact.ArtifactMigrationsLoader
1718
import scala.util.{Failure, Success, Try}

modules/core/src/test/scala/org/scalasteward/core/util/uriTest.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ package org.scalasteward.core.util
33
import munit.FunSuite
44
import org.http4s.Uri.UserInfo
55
import org.http4s.syntax.literals._
6+
import org.scalasteward.core.util
67

78
class uriTest extends FunSuite {
89
test("withUserInfo") {
910
val url = uri"https://api.github.com/repos/"
10-
assertEquals(
11-
uri.withUserInfo.replace(UserInfo("user", Some("pass")))(url).toString,
12-
"https://user:[email protected]/repos/"
13-
)
11+
val obtained = util.uri.withUserInfo.replace(UserInfo("user", Some("pass")))(url).toString
12+
val expected = "https://user:[email protected]/repos/"
13+
assertEquals(obtained, expected)
1414
}
1515
}

0 commit comments

Comments
 (0)