mirror of
https://github.com/ankitects/anki.git
synced 2025-11-06 12:47:11 -05:00
Fix(launcher)/Exclude pre-release if a newer major_minor exists
The current main produces a list like "25.09.2, 25.08b5, 25.07.5, 25.06b7, 25.02.7" Here, 25.08b5 and 25.06b7 should be filtered out for the same reason this code filters out the older patch releases.
This commit is contained in:
parent
76d3237139
commit
9bb3f9fd5a
1 changed files with 11 additions and 2 deletions
|
|
@ -603,18 +603,27 @@ fn get_version_kind(state: &State) -> Result<Option<VersionKind>> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn with_only_latest_patch(versions: &[String]) -> Vec<String> {
|
fn with_only_latest_patch(versions: &[String]) -> Vec<String> {
|
||||||
// Only show the latest patch release for a given (major, minor)
|
// Assumes versions are sorted in descending order (newest first)
|
||||||
|
// Only show the latest patch release for a given (major, minor),
|
||||||
|
// and exclude pre-releases if a newer major_minor exists
|
||||||
let mut seen_major_minor = std::collections::HashSet::new();
|
let mut seen_major_minor = std::collections::HashSet::new();
|
||||||
versions
|
versions
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|v| {
|
.filter(|v| {
|
||||||
let (major, minor, _, _) = parse_version_for_filtering(v);
|
let (major, minor, _, is_prerelease) = parse_version_for_filtering(v);
|
||||||
if major == 2 {
|
if major == 2 {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
let major_minor = (major, minor);
|
let major_minor = (major, minor);
|
||||||
if seen_major_minor.contains(&major_minor) {
|
if seen_major_minor.contains(&major_minor) {
|
||||||
false
|
false
|
||||||
|
} else if is_prerelease
|
||||||
|
&& seen_major_minor
|
||||||
|
.iter()
|
||||||
|
.any(|&(seen_major, seen_minor)| (seen_major, seen_minor) > (major, minor))
|
||||||
|
{
|
||||||
|
// Exclude pre-release if a newer major_minor exists
|
||||||
|
false
|
||||||
} else {
|
} else {
|
||||||
seen_major_minor.insert(major_minor);
|
seen_major_minor.insert(major_minor);
|
||||||
true
|
true
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue