Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -240,9 +240,11 @@ open class APIDataStoreImpl : APIDataStore {
forceUpdate: Boolean,
logEntries: Boolean
): AdoptRepos {
// Scan the currently available versions plus 5
// Scan the currently available versions plus 5, and also include known EA versions
val versions = releaseInfo.available_releases.toList()
.plus((releaseInfo.available_releases.last()..releaseInfo.available_releases.last() + 5))
.plus(releaseInfo.available_ea_releases.toList())
.distinct()
.filter { it <= MAX_VERSION_TO_LOAD }

val update = loadDataFromDb(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ open class ApiDataStoreStub : APIDataStore {
11,
12,
13,
15
15,
arrayOf(8, 9, 10, 11, 12, 18)
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ class ReleaseInfo {
@Schema(example = "[8,11]", description = "The LTS versions for which adopt have produced a ga release")
val available_lts_releases: Array<Int>

@Schema(example = "[20,21]", description = "The versions for which adopt have produced an ea release")
val available_ea_releases: Array<Int>

@Schema(example = "11", description = "The highest LTS version for which adopt have produced a ga release")
val most_recent_lts: Int

Expand All @@ -28,13 +31,15 @@ class ReleaseInfo {
most_recent_lts: Int,
most_recent_feature_release: Int,
most_recent_feature_version: Int,
tip_version: Int
tip_version: Int,
available_ea_releases: Array<Int> = emptyArray()
) {
this.available_releases = available_releases
this.available_lts_releases = available_lts_releases
this.most_recent_lts = most_recent_lts
this.most_recent_feature_release = most_recent_feature_release
this.most_recent_feature_version = most_recent_feature_version
this.tip_version = tip_version
this.available_ea_releases = available_ea_releases
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,35 +12,39 @@ class ReleaseVersionResolver @Inject constructor(
) {

fun formReleaseInfo(repo: AdoptRepos): ReleaseInfo {
val gaReleases = repo
val allReleases = repo
.allReleases
.getReleases()
.filter { it.release_type == ReleaseType.ga }
.toList()

val gaReleases = allReleases
.filter { it.release_type == ReleaseType.ga }

val availableReleases = gaReleases
.map { it.version_data.major }
.distinct()
.sorted()
.toList()
.toTypedArray()
val mostRecentFeatureRelease: Int = availableReleases.lastOrNull() ?: 0

val ltsVersions = versionSupplier.getLtsVersions()

val availableLtsReleases: Array<Int> = gaReleases
.asSequence()
.filter { ltsVersions.contains(it.version_data.major) }
.map { it.version_data.major }
.distinct()
.sorted()
.toList()
.toTypedArray()
val mostRecentLts = availableLtsReleases.lastOrNull() ?: 0

val mostRecentFeatureVersion: Int = repo
.allReleases
.getReleases()
val availableEaReleases: Array<Int> = allReleases
.filter { it.release_type == ReleaseType.ea }
.map { it.version_data.major }
.distinct()
.sorted()
.toTypedArray()

val mostRecentFeatureVersion: Int = allReleases
.map { it.version_data.major }
.distinct()
.sorted()
Expand All @@ -54,7 +58,8 @@ class ReleaseVersionResolver @Inject constructor(
mostRecentLts,
mostRecentFeatureRelease,
mostRecentFeatureVersion,
tip
tip,
availableEaReleases
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,17 @@ class ReleaseVersionResolverTest : BaseTest() {
}
}

@Test
fun availableEaReleasesIsCorrect() {
check { releaseInfo ->
// all versions have ea releases (versions in TEST_RESOURCES), including version 18 which is ea-only
val versions = AdoptReposTestDataGenerator.generate().repos.keys
.toTypedArray()

releaseInfo.available_ea_releases.contentEquals(versions)
}
}

@Test
fun tipVersionIsCorrect() {
check { releaseInfo ->
Expand Down
Loading