Skip to content

Commit 93c8b54

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

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
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'

dub.json

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,16 @@
1414
"versions": ["RedubCLI", "FSWForcePoll", "RedubWatcher"],
1515
"dependencies": {
1616
"fswatch": "~>0.6.1",
17-
"arsd-official:terminal": "~>12.0"
17+
"arsd-official:terminal": "~>12.1"
1818
}
1919
},
20-
{
21-
"name": "cli-osx",
22-
"targetType": "executable",
23-
"platforms": ["osx"],
24-
"versions": ["RedubCLI"]
25-
},
2620
{
2721
"name": "cli-dev",
2822
"versions": ["RedubCLI", "Developer", "RedubWatcher", "FSWForcePoll"],
2923
"targetType": "executable",
3024
"dependencies": {
3125
"fswatch": "~>0.6.1",
32-
"arsd-official:terminal": "~>12.0"
26+
"arsd-official:terminal": "~>12.1"
3327
}
3428
},
3529
{

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)