Skip to content
This repository was archived by the owner on Mar 21, 2023. It is now read-only.

Commit 73ab3ec

Browse files
authored
feat: support new 2.13 artifacts (#429)
* feat: support new 2.13 artifacts * Compare server version by semver
1 parent b2b6f2e commit 73ab3ec

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

src/__tests__/fetchMetals.test.ts

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { calcServerDependency } from "../fetchMetals";
2+
3+
describe("fetchMetals", () => {
4+
describe("calcServerDependency", () => {
5+
function expectedDep(binaryVersion: string, serverVersion: string): string {
6+
return `org.scalameta:metals_${binaryVersion}:${serverVersion}`;
7+
}
8+
it("should download from appropriate binaryVersion", () => {
9+
expect(calcServerDependency("0.11.1")).toBe(
10+
expectedDep("2.12", "0.11.1")
11+
);
12+
expect(calcServerDependency("0.11.2")).toBe(
13+
expectedDep("2.12", "0.11.2")
14+
);
15+
expect(calcServerDependency("0.11.2-SNAPSHOT")).toBe(
16+
expectedDep("2.12", "0.11.2-SNAPSHOT")
17+
);
18+
expect(calcServerDependency("0.11.2-RC1")).toBe(
19+
expectedDep("2.12", "0.11.2-RC1")
20+
);
21+
expect(calcServerDependency("0.11.3")).toBe(
22+
expectedDep("2.13", "0.11.3")
23+
);
24+
expect(calcServerDependency("0.11.3-SNAPSHOT")).toBe(
25+
expectedDep("2.13", "0.11.3-SNAPSHOT")
26+
);
27+
expect(calcServerDependency("0.11.3-RC1")).toBe(
28+
expectedDep("2.13", "0.11.3-RC1")
29+
);
30+
});
31+
});
32+
});

src/fetchMetals.ts

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import * as semver from "semver";
12
import { ChildProcessPromise, spawn } from "promisify-child-process";
23
import { JavaConfig } from "./getJavaConfig";
34

@@ -16,10 +17,7 @@ export function fetchMetals({
1617
(p) => !p.startsWith("-agentlib")
1718
);
1819

19-
const serverDependency = serverVersion.includes(":")
20-
? serverVersion
21-
: `org.scalameta:metals_2.12:${serverVersion}`;
22-
20+
const serverDependency = calcServerDependency(serverVersion);
2321
return spawn(
2422
javaPath,
2523
[
@@ -54,3 +52,10 @@ export function fetchMetals({
5452
}
5553
);
5654
}
55+
56+
export function calcServerDependency(serverVersion: string): string {
57+
const binaryVersion = semver.gt(serverVersion, "0.11.2") ? "2.13" : "2.12";
58+
return serverVersion.includes(":")
59+
? serverVersion
60+
: `org.scalameta:metals_${binaryVersion}:${serverVersion}`;
61+
}

0 commit comments

Comments
 (0)