diff --git a/lib/modules/manager/sbt/extract.spec.ts b/lib/modules/manager/sbt/extract.spec.ts index 98f919b21f346204aeb6948c84f9327c124acfb1..624847a6093731be7d8b8e1abfe431934bc8cda0 100644 --- a/lib/modules/manager/sbt/extract.spec.ts +++ b/lib/modules/manager/sbt/extract.spec.ts @@ -243,6 +243,26 @@ describe('modules/manager/sbt/extract', () => { }); }); + it('extracts deps correctly when dealing with scala 3', () => { + const content = ` + scalaVersion := "3.3.4" + libraryDependencies += "org.example" %% "bar" % "0.0.5" + `; + + expect(extractPackageFile(content)).toMatchObject({ + deps: [ + { + packageName: 'org.scala-lang:scala3-library_3', + currentValue: '3.3.4', + }, + { + packageName: 'org.example:bar_3', + currentValue: '0.0.5', + }, + ], + }); + }); + it('extracts deps when scala version is defined in a variable with ThisBuild scope', () => { const content = ` val ScalaVersion = "2.12.10" diff --git a/lib/modules/manager/sbt/extract.ts b/lib/modules/manager/sbt/extract.ts index 42b2293af4da6e414dc0fcf216238fa87bd13792..812fde85cec6fca791de730f5480e38136fdbe6c 100644 --- a/lib/modules/manager/sbt/extract.ts +++ b/lib/modules/manager/sbt/extract.ts @@ -201,12 +201,16 @@ function depHandler(ctx: Ctx): Ctx { delete ctx.variableName; const depName = `${groupId!}:${artifactId!}`; + const isScala3 = scalaVersion?.[0] === '3'; + const scalaVersionForPackageName = isScala3 ? '3' : scalaVersion; const dep: PackageDependency = { datasource: SbtPackageDatasource.id, depName, packageName: - scalaVersion && useScalaVersion ? `${depName}_${scalaVersion}` : depName, + scalaVersionForPackageName && useScalaVersion + ? `${depName}_${scalaVersionForPackageName}` + : depName, currentValue, };