Skip to content

Commit

Permalink
refactor: Tidy Scala version normalization code (#29642)
Browse files Browse the repository at this point in the history
  • Loading branch information
george-wilson-rea committed Jun 13, 2024
1 parent 7743c77 commit 7178da3
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 7 deletions.
6 changes: 1 addition & 5 deletions lib/modules/manager/sbt/extract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -201,16 +201,12 @@ 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:
scalaVersionForPackageName && useScalaVersion
? `${depName}_${scalaVersionForPackageName}`
: depName,
scalaVersion && useScalaVersion ? `${depName}_${scalaVersion}` : depName,
currentValue,
};

Expand Down
39 changes: 38 additions & 1 deletion lib/modules/manager/sbt/util.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { sortPackageFiles } from './util';
import { normalizeScalaVersion, sortPackageFiles } from './util';

describe('modules/manager/sbt/util', () => {
describe('sortPackageFiles()', () => {
Expand All @@ -15,4 +15,41 @@ describe('modules/manager/sbt/util', () => {
]);
});
});

describe('normalizeScalaVersion()', () => {
it('does not normalize prior to 2.10', () => {
const version = '2.9.3';
expect(normalizeScalaVersion(version)).toBe('2.9.3');
});

it('normalizes a Scala 2.10 version number', () => {
const version = '2.10.7';
expect(normalizeScalaVersion(version)).toBe('2.10');
});

it('normalizes a Scala 2.11 version number', () => {
const version = '2.11.12';
expect(normalizeScalaVersion(version)).toBe('2.11');
});

it('normalizes a Scala 2.12 version number', () => {
const version = '2.12.19';
expect(normalizeScalaVersion(version)).toBe('2.12');
});

it('normalizes a Scala 2.13 version number', () => {
const version = '2.13.14';
expect(normalizeScalaVersion(version)).toBe('2.13');
});

it('normalizes a Scala 3 LTS version number', () => {
const version = '3.3.3';
expect(normalizeScalaVersion(version)).toBe('3');
});

it('normalizes a Scala 3 current version number', () => {
const version = '3.4.2';
expect(normalizeScalaVersion(version)).toBe('3');
});
});
});
7 changes: 6 additions & 1 deletion lib/modules/manager/sbt/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,13 @@ export function normalizeScalaVersion(str: string): string {
return str;
}
}
const isScala3 = versioning.isGreaterThan(str, '3.0.0');
if (regEx(/^\d+\.\d+\.\d+$/).test(str)) {
return str.replace(regEx(/^(\d+)\.(\d+)\.\d+$/), '$1.$2');
if (isScala3) {
return str.replace(regEx(/^(\d+)\.(\d+)\.\d+$/), '$1');
} else {
return str.replace(regEx(/^(\d+)\.(\d+)\.\d+$/), '$1.$2');
}
}
// istanbul ignore next
return str;
Expand Down

0 comments on commit 7178da3

Please sign in to comment.