Skip to content

Commit b7bf789

Browse files
authored
Fix "lowest" resolution strategy with lower-bound only (#649)
- towards #648 Fix the bug described there, but this doesn't add the fast-path optimisation suggested in that issue.
1 parent cb6c0a5 commit b7bf789

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

.github/workflows/test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ jobs:
114114
- version-input: ">=0.4.25,<0.5"
115115
expected-version: "0.4.25"
116116
resolution-strategy: "lowest"
117+
- version-input: ">=0.4.25"
118+
expected-version: "0.4.25"
119+
resolution-strategy: "lowest"
117120
- version-input: ">=0.1,<0.2"
118121
expected-version: "0.1.45"
119122
resolution-strategy: "highest"

biome.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
2+
"$schema": "https://biomejs.dev/schemas/2.2.5/schema.json",
33
"assist": {
44
"actions": {
55
"source": {

dist/setup/index.js

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/download/download-version.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,23 +141,25 @@ export async function resolveVersion(
141141
let version: string;
142142
const isSimpleMinimumVersionSpecifier =
143143
versionInput.includes(">") && !versionInput.includes(",");
144-
if (isSimpleMinimumVersionSpecifier) {
144+
const resolveVersionSpecifierToLatest =
145+
isSimpleMinimumVersionSpecifier && resolutionStrategy === "highest";
146+
if (resolveVersionSpecifierToLatest) {
145147
core.info("Found minimum version specifier, using latest version");
146148
}
147149
if (manifestFile) {
148150
version =
149-
versionInput === "latest" || isSimpleMinimumVersionSpecifier
151+
versionInput === "latest" || resolveVersionSpecifierToLatest
150152
? await getLatestVersionInManifest(manifestFile)
151153
: versionInput;
152154
} else {
153155
version =
154-
versionInput === "latest" || isSimpleMinimumVersionSpecifier
156+
versionInput === "latest" || resolveVersionSpecifierToLatest
155157
? await getLatestVersion(githubToken)
156158
: versionInput;
157159
}
158160
if (tc.isExplicitVersion(version)) {
159161
core.debug(`Version ${version} is an explicit version.`);
160-
if (isSimpleMinimumVersionSpecifier) {
162+
if (resolveVersionSpecifierToLatest) {
161163
if (!pep440.satisfies(version, versionInput)) {
162164
throw new Error(`No version found for ${versionInput}`);
163165
}

0 commit comments

Comments
 (0)