diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f59dc9f..3290e3a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -114,6 +114,9 @@ jobs: - version-input: ">=0.4.25,<0.5" expected-version: "0.4.25" resolution-strategy: "lowest" + - version-input: ">=0.4.25" + expected-version: "0.4.25" + resolution-strategy: "lowest" - version-input: ">=0.1,<0.2" expected-version: "0.1.45" resolution-strategy: "highest" diff --git a/biome.json b/biome.json index df1e86c..5289cab 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.2.4/schema.json", + "$schema": "https://biomejs.dev/schemas/2.2.5/schema.json", "assist": { "actions": { "source": { diff --git a/dist/setup/index.js b/dist/setup/index.js index f2dc045..5102ed3 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -129214,24 +129214,25 @@ async function resolveVersion(versionInput, manifestFile, githubToken, resolutio core.debug(`Resolving version: ${versionInput}`); let version; const isSimpleMinimumVersionSpecifier = versionInput.includes(">") && !versionInput.includes(","); - if (isSimpleMinimumVersionSpecifier) { + const resolveVersionSpecifierToLatest = isSimpleMinimumVersionSpecifier && resolutionStrategy === "highest"; + if (resolveVersionSpecifierToLatest) { core.info("Found minimum version specifier, using latest version"); } if (manifestFile) { version = - versionInput === "latest" || isSimpleMinimumVersionSpecifier + versionInput === "latest" || resolveVersionSpecifierToLatest ? await (0, version_manifest_1.getLatestKnownVersion)(manifestFile) : versionInput; } else { version = - versionInput === "latest" || isSimpleMinimumVersionSpecifier + versionInput === "latest" || resolveVersionSpecifierToLatest ? await getLatestVersion(githubToken) : versionInput; } if (tc.isExplicitVersion(version)) { core.debug(`Version ${version} is an explicit version.`); - if (isSimpleMinimumVersionSpecifier) { + if (resolveVersionSpecifierToLatest) { if (!pep440.satisfies(version, versionInput)) { throw new Error(`No version found for ${versionInput}`); } diff --git a/src/download/download-version.ts b/src/download/download-version.ts index fa86ebe..3e7096c 100644 --- a/src/download/download-version.ts +++ b/src/download/download-version.ts @@ -141,23 +141,25 @@ export async function resolveVersion( let version: string; const isSimpleMinimumVersionSpecifier = versionInput.includes(">") && !versionInput.includes(","); - if (isSimpleMinimumVersionSpecifier) { + const resolveVersionSpecifierToLatest = + isSimpleMinimumVersionSpecifier && resolutionStrategy === "highest"; + if (resolveVersionSpecifierToLatest) { core.info("Found minimum version specifier, using latest version"); } if (manifestFile) { version = - versionInput === "latest" || isSimpleMinimumVersionSpecifier + versionInput === "latest" || resolveVersionSpecifierToLatest ? await getLatestVersionInManifest(manifestFile) : versionInput; } else { version = - versionInput === "latest" || isSimpleMinimumVersionSpecifier + versionInput === "latest" || resolveVersionSpecifierToLatest ? await getLatestVersion(githubToken) : versionInput; } if (tc.isExplicitVersion(version)) { core.debug(`Version ${version} is an explicit version.`); - if (isSimpleMinimumVersionSpecifier) { + if (resolveVersionSpecifierToLatest) { if (!pep440.satisfies(version, versionInput)) { throw new Error(`No version found for ${versionInput}`); }