Breaking: Change min to return the latest patch

The major/minor will be the minimum, but the patch will be the latest. E.g. `julia = "1.10"` would lead to e.g. 1.10.10 (not 1.10.0).
This commit is contained in:
Dilum Aluthge
2026-03-04 22:06:45 -05:00
committed by GitHub
parent 101e139aea
commit c8ff8a1937

View File

@@ -179,7 +179,15 @@ export function getJuliaVersion(availableReleases: string[], versionInput: strin
if (!juliaCompatRange) {
throw new Error('Unable to use version "min" when the Julia project file does not specify a compat for Julia')
}
version = semver.minSatisfying(availableReleases, juliaCompatRange, {includePrerelease})
// true_min_version is the actual minimum
// E.g. if the Julia [compat] entry is "1.10", then true_min_version is v"1.10.0"
let true_min_version = semver.minSatisfying(availableReleases, juliaCompatRange, {includePrerelease})
let my_tilde_range = `~${true_min_version}`
// min_with_patch is the minimum major/minor, but latest patch
// E.g. if the Julia [compat] entry is "1.10", then true_min_version is v"1.10.10" (or whatever the latest 1.10.x patch is)
// https://github.com/julia-actions/setup-julia/issues/372
min_with_patch = semver.maxSatisfying(availableReleases, my_tilde_range, {includePrerelease})
version = min_with_patch
} else if (versionInput == "lts") {
version = semver.maxSatisfying(availableReleases, LTS_VERSION, { includePrerelease: false });
} else if (versionInput == "pre") {