Skip to content

Commit 69dea08

Browse files
Don't check semver for nightly releases
1 parent 0360bf2 commit 69dea08

1 file changed

Lines changed: 32 additions & 13 deletions

File tree

extensions/ql-vscode/src/codeql-cli/distribution.ts

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -453,9 +453,18 @@ class ExtensionSpecificDistributionManager {
453453
void extLogger.log(
454454
`Searching for latest release including ${requiredAssetName}.`,
455455
);
456+
457+
const versionRange = this.usingNightlyReleases()
458+
? undefined
459+
: this.versionRange;
460+
const orderBySemver = !this.usingNightlyReleases();
461+
const includePrerelease =
462+
this.usingNightlyReleases() || this.config.includePrerelease;
463+
456464
return this.createReleasesApiConsumer().getLatestRelease(
457-
this.versionRange,
458-
this.config.includePrerelease,
465+
versionRange,
466+
orderBySemver,
467+
includePrerelease,
459468
(release) => {
460469
// v2.12.3 was released with a bug that causes the extension to fail
461470
// so we force the extension to ignore it.
@@ -512,6 +521,14 @@ class ExtensionSpecificDistributionManager {
512521
}
513522
}
514523

524+
private usingNightlyReleases(): boolean {
525+
return (
526+
!this.config.ownerName &&
527+
!this.config.repositoryName &&
528+
this.config.channel === "nightly"
529+
);
530+
}
531+
515532
private async bumpDistributionFolderIndex(): Promise<void> {
516533
const index = this.extensionContext.globalState.get(
517534
ExtensionSpecificDistributionManager._currentDistributionFolderIndexStateKey,
@@ -584,7 +601,8 @@ export class ReleasesApiConsumer {
584601
}
585602

586603
public async getLatestRelease(
587-
versionRange: semver.Range,
604+
versionRange: semver.Range | undefined,
605+
orderBySemver = true,
588606
includePrerelease = false,
589607
additionalCompatibilityCheck?: (release: GithubRelease) => boolean,
590608
): Promise<Release> {
@@ -597,12 +615,14 @@ export class ReleasesApiConsumer {
597615
return false;
598616
}
599617

600-
const version = semver.parse(release.tag_name);
601-
if (
602-
version === null ||
603-
!semver.satisfies(version, versionRange, { includePrerelease })
604-
) {
605-
return false;
618+
if (versionRange !== undefined) {
619+
const version = semver.parse(release.tag_name);
620+
if (
621+
version === null ||
622+
!semver.satisfies(version, versionRange, { includePrerelease })
623+
) {
624+
return false;
625+
}
606626
}
607627

608628
return (
@@ -611,10 +631,9 @@ export class ReleasesApiConsumer {
611631
});
612632
// Tag names must all be parsable to semvers due to the previous filtering step.
613633
const latestRelease = compatibleReleases.sort((a, b) => {
614-
const versionComparison = semver.compare(
615-
semver.parse(b.tag_name)!,
616-
semver.parse(a.tag_name)!,
617-
);
634+
const versionComparison = orderBySemver
635+
? semver.compare(semver.parse(b.tag_name)!, semver.parse(a.tag_name)!)
636+
: b.id - a.id;
618637
if (versionComparison !== 0) {
619638
return versionComparison;
620639
}

0 commit comments

Comments
 (0)