Skip to content

Commit 1aa87b6

Browse files
Copilotbrunoborges
andauthored
Preserve compound Liberica build versions from .sdkmanrc (#1268)
* Initial plan * Preserve compound Liberica build versions from release metadata Co-authored-by: brunoborges <129743+brunoborges@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: brunoborges <129743+brunoborges@users.noreply.github.com>
1 parent de7274f commit 1aa87b6

4 files changed

Lines changed: 68 additions & 3 deletions

File tree

__tests__/distributors/liberica-installer.test.ts

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,39 @@ describe('findPackageForDownload', () => {
253253
expect(result.version).toBe(expected);
254254
});
255255

256+
describe('compound build versions', () => {
257+
beforeEach(() => {
258+
distribution['getAvailableVersions'] = async () =>
259+
['1', '1.1', '1.2', '1.10'].map(build => ({
260+
featureVersion: 25,
261+
interimVersion: 0,
262+
updateVersion: 4,
263+
buildVersion: 1,
264+
version: `25.0.4+${build}`,
265+
downloadUrl: `https://download.bell-sw.com/java/25.0.4+${build}/bellsoft-jdk25.0.4+${build}-macos-aarch64.tar.gz`
266+
}));
267+
});
268+
269+
it.each([
270+
['25.0.4+1.1', '25.0.4+1.1'],
271+
['25.0.4+1', '25.0.4+1'],
272+
['25.0.4', '25.0.4+1.10'],
273+
['25', '25.0.4+1.10']
274+
])('version is %s -> %s', async (input, expected) => {
275+
const result = await distribution['findPackageForDownload'](input);
276+
expect(result).toEqual({
277+
version: expected,
278+
url: `https://download.bell-sw.com/java/${expected}/bellsoft-jdk${expected}-macos-aarch64.tar.gz`
279+
});
280+
});
281+
282+
it('does not substitute a different compound build', async () => {
283+
await expect(
284+
distribution['findPackageForDownload']('25.0.4+1.3')
285+
).rejects.toThrow(/No matching version found for SemVer/);
286+
});
287+
});
288+
256289
it('should throw an error', async () => {
257290
await expect(distribution['findPackageForDownload']('17')).rejects.toThrow(
258291
/No matching version found for SemVer/
@@ -335,6 +368,36 @@ describe('convertVersionToSemver', () => {
335368
buildVersion: 13
336369
},
337370
'11.0.0+13'
371+
],
372+
[
373+
{
374+
version: '25.0.4+1.1',
375+
featureVersion: 25,
376+
interimVersion: 0,
377+
updateVersion: 4,
378+
buildVersion: 1
379+
},
380+
'25.0.4+1.1'
381+
],
382+
[
383+
{
384+
version: '25+36',
385+
featureVersion: 25,
386+
interimVersion: 0,
387+
updateVersion: 0,
388+
buildVersion: 36
389+
},
390+
'25.0.0+36'
391+
],
392+
[
393+
{
394+
version: '8u202',
395+
featureVersion: 8,
396+
interimVersion: 0,
397+
updateVersion: 202,
398+
buildVersion: 8
399+
},
400+
'8.0.202+8'
338401
]
339402
])('%s -> %s', (input, expected) => {
340403
const actual = distributions['convertVersionToSemver']({

__tests__/util.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ describe('getVersionFromFileContent', () => {
276276
['java=21.0.5-graal', '21.0.5', 'graalvm'],
277277
['java=17.0.9-graalce', '17.0.9', 'graalvm'],
278278
['java=11.0.25-librca', '11.0.25', 'liberica'],
279+
['java=25.0.4+1.1-librca', '25.0.4+1.1', 'liberica'],
279280
['java=11.0.25-ms', '11.0.25', 'microsoft'],
280281
['java=21.0.5-oracle', '21.0.5', 'oracle'],
281282
['java=11.0.25-sapmchn', '11.0.25', 'sapmachine'],

dist/setup/63.index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ class LibericaDistributions extends _base_installer_js__WEBPACK_IMPORTED_MODULE_
128128
}
129129
}
130130
convertVersionToSemver(version) {
131-
const { buildVersion, featureVersion, interimVersion, updateVersion } = version;
131+
const { featureVersion, interimVersion, updateVersion } = version;
132+
const buildVersion = version.version.split('+')[1] || version.buildVersion;
132133
const mainVersion = [featureVersion, interimVersion, updateVersion].join('.');
133134
if (buildVersion != 0) {
134135
return `${mainVersion}+${buildVersion}`;

src/distributions/liberica/installer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ export class LibericaDistributions extends JavaBase {
166166
}
167167

168168
private convertVersionToSemver(version: LibericaVersion): string {
169-
const {buildVersion, featureVersion, interimVersion, updateVersion} =
170-
version;
169+
const {featureVersion, interimVersion, updateVersion} = version;
170+
const buildVersion = version.version.split('+')[1] || version.buildVersion;
171171
const mainVersion = [featureVersion, interimVersion, updateVersion].join(
172172
'.'
173173
);

0 commit comments

Comments
 (0)