From 3d29b9509994a686f1382190e80e530c5f3f197c Mon Sep 17 00:00:00 2001 From: Sergio Zharinov <zharinov@users.noreply.github.com> Date: Tue, 28 Jul 2020 12:37:55 +0400 Subject: [PATCH] feat(sbt): Update scala version (#6816) * feat(sbt): Update scala version * Fixes * Fixes Co-authored-by: Michael Kriese <michael.kriese@visualon.de> --- lib/manager/common.ts | 1 + .../sbt/__snapshots__/extract.spec.ts.snap | 45 +++++++++++++++++++ lib/manager/sbt/extract.ts | 22 ++++++--- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/lib/manager/common.ts b/lib/manager/common.ts index 2d86f6616d..0d219da80c 100644 --- a/lib/manager/common.ts +++ b/lib/manager/common.ts @@ -172,6 +172,7 @@ export interface PackageDependency<T = Record<string, any>> extends Package<T> { autoReplaceStringTemplate?: string; depIndex?: number; editFile?: string; + separateMinorPatch?: boolean; } export interface Upgrade<T = Record<string, any>> diff --git a/lib/manager/sbt/__snapshots__/extract.spec.ts.snap b/lib/manager/sbt/__snapshots__/extract.spec.ts.snap index 7751cbb0b4..f55954f2b1 100644 --- a/lib/manager/sbt/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/sbt/__snapshots__/extract.spec.ts.snap @@ -3,6 +3,16 @@ exports[`lib/manager/sbt/extract extractPackageFile() extract deps from native scala file with private variables 1`] = ` Object { "deps": Array [ + Object { + "currentValue": "2.13.0-RC5", + "datasource": "maven", + "depName": "scala", + "lookupName": "org.scala-lang:scala-library", + "registryUrls": Array [ + "https://repo.maven.apache.org/maven2", + ], + "separateMinorPatch": true, + }, Object { "currentValue": "0.7.1", "datasource": "sbt-package", @@ -28,6 +38,16 @@ Object { exports[`lib/manager/sbt/extract extractPackageFile() extract deps from native scala file with variables 1`] = ` Object { "deps": Array [ + Object { + "currentValue": "2.13.0-RC5", + "datasource": "maven", + "depName": "scala", + "lookupName": "org.scala-lang:scala-library", + "registryUrls": Array [ + "https://repo.maven.apache.org/maven2", + ], + "separateMinorPatch": true, + }, Object { "currentValue": "0.7.1", "datasource": "sbt-package", @@ -53,6 +73,21 @@ Object { exports[`lib/manager/sbt/extract extractPackageFile() extracts deps for generic use-cases 1`] = ` Object { "deps": Array [ + Object { + "currentValue": "2.9.10", + "datasource": "maven", + "depName": "scala", + "lookupName": "org.scala-lang:scala-library", + "registryUrls": Array [ + "https://repo.maven.apache.org/maven2", + "https://example.com/repos/1/", + "https://example.com/repos/2/", + "https://example.com/repos/3/", + "https://example.com/repos/4/", + "https://example.com/repos/5/", + ], + "separateMinorPatch": true, + }, Object { "currentValue": "0.0.1", "datasource": "sbt-package", @@ -358,6 +393,16 @@ Object { exports[`lib/manager/sbt/extract extractPackageFile() extracts deps when scala version is defined with a trailing comma 1`] = ` Object { "deps": Array [ + Object { + "currentValue": "2.12.10", + "datasource": "maven", + "depName": "scala", + "lookupName": "org.scala-lang:scala-library", + "registryUrls": Array [ + "https://repo.maven.apache.org/maven2", + ], + "separateMinorPatch": true, + }, Object { "currentValue": "0.0.2", "datasource": "sbt-package", diff --git a/lib/manager/sbt/extract.ts b/lib/manager/sbt/extract.ts index fba8120c76..c8f5ae264b 100644 --- a/lib/manager/sbt/extract.ts +++ b/lib/manager/sbt/extract.ts @@ -1,3 +1,4 @@ +import * as datasourceMaven from '../../datasource/maven'; import { MAVEN_REPO } from '../../datasource/maven/common'; import * as datasourceSbtPackage from '../../datasource/sbt-package'; import * as datasourceSbtPlugin from '../../datasource/sbt-plugin'; @@ -181,6 +182,7 @@ function parseDepExpr( return result; } + interface ParseOptions { isMultiDeps?: boolean; scalaVersion?: string; @@ -207,7 +209,15 @@ function parseSbtLine( if (!isComment(line)) { if (isScalaVersion(line)) { isMultiDeps = false; - scalaVersion = normalizeScalaVersion(getScalaVersion(line)); + const rawScalaVersion = getScalaVersion(line); + scalaVersion = normalizeScalaVersion(rawScalaVersion); + dep = { + datasource: datasourceMaven.id, + depName: 'scala', + lookupName: 'org.scala-lang:scala-library', + currentValue: rawScalaVersion, + separateMinorPatch: true, + }; } else if (isScalaVersionVariable(line)) { isMultiDeps = false; scalaVersionVariable = getScalaVersionVariable(line); @@ -252,10 +262,12 @@ function parseSbtLine( } if (dep) { - if (dep.depType === 'plugin') { - dep.datasource = datasourceSbtPlugin.id; - } else { - dep.datasource = datasourceSbtPackage.id; + if (!dep.datasource) { + if (dep.depType === 'plugin') { + dep.datasource = datasourceSbtPlugin.id; + } else { + dep.datasource = datasourceSbtPackage.id; + } } deps.push({ registryUrls, -- GitLab