From ff0ffd2e9093ec3ccb74bc6bf12cdf826f00e31a Mon Sep 17 00:00:00 2001 From: Vladislav Dolbilov <darl@yandex-team.ru> Date: Tue, 14 Jan 2020 12:24:48 +0100 Subject: [PATCH] fix(sbt): normalize scala version --- lib/manager/sbt/extract.ts | 12 ++++++++++-- .../sbt/__snapshots__/extract.spec.ts.snap | 18 +++++++++--------- .../sbt/_fixtures/scala-version-variable.sbt | 2 +- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/lib/manager/sbt/extract.ts b/lib/manager/sbt/extract.ts index 16b20647ba..10b2e0ba66 100644 --- a/lib/manager/sbt/extract.ts +++ b/lib/manager/sbt/extract.ts @@ -20,6 +20,14 @@ const isScalaVersion = (str: string): boolean => const getScalaVersion = (str: string): string => str.replace(/^\s*scalaVersion\s*:=\s*"/, '').replace(/"\s*$/, ''); +/* + https://www.scala-sbt.org/release/docs/Cross-Build.html#Publishing+conventions + */ +const normalizeScalaVersion = (str: string): string => + /^\d+\.\d+\.\d+$/.test(str) + ? str.replace(/^(\d+)\.(\d+)\.\d+$/, '$1.$2') + : str; + const isScalaVersionVariable = (str: string): boolean => /^\s*scalaVersion\s*:=\s*[_a-zA-Z][_a-zA-Z0-9]*\s*$/.test(str); @@ -170,7 +178,7 @@ function parseSbtLine( if (!isComment(line)) { if (isScalaVersion(line)) { isMultiDeps = false; - scalaVersion = getScalaVersion(line); + scalaVersion = normalizeScalaVersion(getScalaVersion(line)); } else if (isScalaVersionVariable(line)) { isMultiDeps = false; scalaVersionVariable = getScalaVersionVariable(line); @@ -227,7 +235,7 @@ function parseSbtLine( scalaVersion || (scalaVersionVariable && variables[scalaVersionVariable] && - variables[scalaVersionVariable].val), + normalizeScalaVersion(variables[scalaVersionVariable].val)), }; if (deps.length) return { deps }; return null; diff --git a/test/manager/sbt/__snapshots__/extract.spec.ts.snap b/test/manager/sbt/__snapshots__/extract.spec.ts.snap index 96fb1dca21..58f73549a3 100644 --- a/test/manager/sbt/__snapshots__/extract.spec.ts.snap +++ b/test/manager/sbt/__snapshots__/extract.spec.ts.snap @@ -144,7 +144,7 @@ Object { "currentValue": "0.0.1", "datasource": "sbt", "depName": "org.example:foo", - "fileReplacePosition": 192, + "fileReplacePosition": 195, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -158,7 +158,7 @@ Object { "currentValue": "0.0.2", "datasource": "sbt", "depName": "org.example:bar_2.12", - "fileReplacePosition": 248, + "fileReplacePosition": 251, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -172,7 +172,7 @@ Object { "currentValue": "0.0.3", "datasource": "sbt", "depName": "org.example:baz_2.12", - "fileReplacePosition": 312, + "fileReplacePosition": 315, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -186,7 +186,7 @@ Object { "currentValue": "0.0.4", "datasource": "sbt", "depName": "org.example:qux", - "fileReplacePosition": 347, + "fileReplacePosition": 350, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -200,7 +200,7 @@ Object { "currentValue": "0.0.5", "datasource": "sbt", "depName": "org.example:quux", - "fileReplacePosition": 406, + "fileReplacePosition": 409, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -215,7 +215,7 @@ Object { "datasource": "sbt", "depName": "org.example:quuz_2.12", "depType": "test", - "fileReplacePosition": 550, + "fileReplacePosition": 553, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -230,7 +230,7 @@ Object { "datasource": "sbt", "depName": "org.example:corge", "depType": "Provided", - "fileReplacePosition": 608, + "fileReplacePosition": 611, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -245,7 +245,7 @@ Object { "datasource": "sbt", "depName": "org.example:grault", "depType": "Test", - "fileReplacePosition": 48, + "fileReplacePosition": 51, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", @@ -260,7 +260,7 @@ Object { "datasource": "sbt", "depName": "org.example:waldo", "depType": "plugin", - "fileReplacePosition": 1010, + "fileReplacePosition": 1013, "registryUrls": Array [ "https://repo.maven.apache.org/maven2", "https://example.com/repos/1/", diff --git a/test/manager/sbt/_fixtures/scala-version-variable.sbt b/test/manager/sbt/_fixtures/scala-version-variable.sbt index 9cdeb6bb71..fd0abe2efd 100644 --- a/test/manager/sbt/_fixtures/scala-version-variable.sbt +++ b/test/manager/sbt/_fixtures/scala-version-variable.sbt @@ -1,4 +1,4 @@ -val ScalaVersion = "2.12" +val ScalaVersion = "2.12.10" val versionExample = "0.0.8" scalaVersion := ScalaVersion -- GitLab