Skip to content

Commit 6b21b54

Browse files
committed
Update: Fixed minor matching on semver. Now support watch on macOS
1 parent 24f6108 commit 6b21b54

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
- uses: MrcSnm/setup-dlang@v2
3636
with:
3737
compiler: ldc-latest
38-
redub: 1.25.2
38+
redub: master
3939

4040
- name: Build
4141
if: runner.os != 'macOS'

semver/source/redub/libs/semver.d

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,13 @@ struct SemVer
247247

248248

249249
private alias cr = ComparisonResult;
250-
enum ComparisonTypes : ComparisonResult[3]
250+
enum ComparisonTypes : ComparisonResult[3]
251251
{
252252
/// Implementation when directly specified version, or `=` is used.
253253
mustBeEqual = [cr.equal, cr.equal, cr.equal],
254254
/// Implementation when using `~`
255255
greaterPatchesOnly = [cr.equal, cr.equal, cr.gtEqual],
256+
greaterMinors = [cr.equal, cr.gtEqual, cr.any],
256257
/// Implementation when using `*`
257258
any = [cr.any, cr.any, cr.any],
258259
///Implementation when using '>='
@@ -286,9 +287,9 @@ private bool parseOperator(ref SemVer sv, string op, size_t partsLength) @nogc n
286287
case "^": sv.comparison = [equal, atOnce, gtEqual]; break;
287288
case "~", "~>":
288289
if(partsLength <= 2)
289-
sv.comparison = [equal, atOnce, gtEqual];
290+
sv.comparison = ComparisonTypes.greaterMinors;
290291
else
291-
sv.comparison = [equal, equal, gtEqual];
292+
sv.comparison = ComparisonTypes.greaterPatchesOnly;
292293
break;
293294
case ">": sv.comparison = [atOnce, greaterThan, greaterThan]; break;
294295
case ">=": sv.comparison = [atOnce, gtEqual, gtEqual]; break;
@@ -366,6 +367,15 @@ unittest
366367
// assert(SemVer("~5").satisfies("5.0.0"));
367368
}
368369

370+
@("Compare using ~>")
371+
unittest
372+
{
373+
SemVer matchMinor = SemVer("~>12.1");
374+
assert(!SemVer("12.0.0").satisfies(matchMinor));
375+
assert(SemVer("12.1.0").satisfies(matchMinor));
376+
assert(!SemVer("13.1.0").satisfies(matchMinor));
377+
}
378+
369379
@("Compare Using Metadata")
370380
unittest
371381
{

source/redub/buildapi.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import redub.package_searching.api;
88

99

1010
///vX.X.X
11-
enum RedubVersionOnly = "v1.25.5";
11+
enum RedubVersionOnly = "v1.25.6";
1212
///Redub vX.X.X
1313
enum RedubVersionShort = "Redub "~RedubVersionOnly;
1414
///Redub vX.X.X - Description

0 commit comments

Comments
 (0)