Skip to content

Commit 78573cc

Browse files
committed
Deprecate Dependency.versionSpec
All places which assumed that Dependency contained a VersionRange have been culled, so we can now start removing those properties.
1 parent 88ac972 commit 78573cc

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

source/dub/commandline.d

+1-1
Original file line numberDiff line numberDiff line change
@@ -2752,7 +2752,7 @@ private bool addDependency(Dub dub, ref PackageRecipe recipe, string depspec)
27522752
}
27532753
}
27542754
recipe.buildSettings.dependencies[depname] = dep;
2755-
logInfo("Adding dependency %s %s", depname, dep.versionSpec);
2755+
logInfo("Adding dependency %s %s", depname, dep.toString());
27562756
return true;
27572757
}
27582758

source/dub/dependency.d

+13-11
Original file line numberDiff line numberDiff line change
@@ -179,17 +179,19 @@ struct Dependency {
179179
(VersionRange v) => v,
180180
);
181181
enforce(range.isExactVersion(),
182-
"Dependency "~this.versionSpec~" is no exact version.");
182+
"Dependency "~range.toString()~" is no exact version.");
183183
return range.m_versA;
184184
}
185185

186186
/// Sets/gets the matching version range as a specification string.
187+
deprecated("Create a new `Dependency` instead and provide a `VersionRange`")
187188
@property void versionSpec(string ves) @trusted
188189
{
189190
this.m_value = VersionRange.fromString(ves);
190191
}
191192

192193
/// ditto
194+
deprecated("Use `Dependency.visit` and match `VersionRange`instead")
193195
@property string versionSpec() const @safe {
194196
return this.m_value.match!(
195197
(const NativePath p) => ANY_IDENT,
@@ -481,19 +483,19 @@ public auto visit (Handlers...) (auto ref Dependency dep)
481483

482484
unittest {
483485
Dependency a = Dependency(">=1.1.0"), b = Dependency(">=1.3.0");
484-
assert (a.merge(b).valid() && a.merge(b).versionSpec == ">=1.3.0", a.merge(b).toString());
486+
assert (a.merge(b).valid() && a.merge(b).toString() == ">=1.3.0", a.merge(b).toString());
485487

486488
assertThrown(Dependency("<=2.0.0 >=1.0.0"));
487489
assertThrown(Dependency(">=2.0.0 <=1.0.0"));
488490

489491
a = Dependency(">=1.0.0 <=5.0.0"); b = Dependency(">=2.0.0");
490-
assert (a.merge(b).valid() && a.merge(b).versionSpec == ">=2.0.0 <=5.0.0", a.merge(b).toString());
492+
assert (a.merge(b).valid() && a.merge(b).toString() == ">=2.0.0 <=5.0.0", a.merge(b).toString());
491493

492494
assertThrown(a = Dependency(">1.0.0 ==5.0.0"), "Construction is invalid");
493495

494496
a = Dependency(">1.0.0"); b = Dependency("<2.0.0");
495497
assert (a.merge(b).valid(), a.merge(b).toString());
496-
assert (a.merge(b).versionSpec == ">1.0.0 <2.0.0", a.merge(b).toString());
498+
assert (a.merge(b).toString() == ">1.0.0 <2.0.0", a.merge(b).toString());
497499

498500
a = Dependency(">2.0.0"); b = Dependency("<1.0.0");
499501
assert (!(a.merge(b)).valid(), a.merge(b).toString());
@@ -649,13 +651,13 @@ unittest {
649651
}
650652

651653
unittest {
652-
assert(Dependency("~>1.0.4").versionSpec == "~>1.0.4");
653-
assert(Dependency("~>1.4").versionSpec == "~>1.4");
654-
assert(Dependency("~>2").versionSpec == "~>2");
655-
assert(Dependency("~>1.0.4+1.2.3").versionSpec == "~>1.0.4");
656-
assert(Dependency("^0.1.2").versionSpec == "^0.1.2");
657-
assert(Dependency("^1.2.3").versionSpec == "^1.2.3");
658-
assert(Dependency("^1.2").versionSpec == "~>1.2"); // equivalent; prefer ~>
654+
assert(VersionRange.fromString("~>1.0.4").toString() == "~>1.0.4");
655+
assert(VersionRange.fromString("~>1.4").toString() == "~>1.4");
656+
assert(VersionRange.fromString("~>2").toString() == "~>2");
657+
assert(VersionRange.fromString("~>1.0.4+1.2.3").toString() == "~>1.0.4");
658+
assert(VersionRange.fromString("^0.1.2").toString() == "^0.1.2");
659+
assert(VersionRange.fromString("^1.2.3").toString() == "^1.2.3");
660+
assert(VersionRange.fromString("^1.2").toString() == "~>1.2"); // equivalent; prefer ~>
659661
}
660662

661663
/**

source/dub/recipe/sdl.d

+2-2
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ lflags "lf3"
554554
assert(rec.buildSettings.dependencies["projectname:subpackage1"].optional == false);
555555
assert(rec.buildSettings.dependencies["projectname:subpackage1"].path == NativePath("."));
556556
assert(rec.buildSettings.dependencyBuildSettings["projectname:subpackage1"].dflags == ["":["-g", "-debug"]]);
557-
assert(rec.buildSettings.dependencies["somedep"].versionSpec == "1.0.0");
557+
assert(rec.buildSettings.dependencies["somedep"].version_.toString() == "1.0.0");
558558
assert(rec.buildSettings.dependencies["somedep"].optional == true);
559559
assert(rec.buildSettings.dependencies["somedep"].path.empty);
560560
assert(rec.buildSettings.systemDependencies == "system dependencies");
@@ -671,7 +671,7 @@ dependency "package" repository="git+https://some.url" version="12345678"
671671
parseSDL(rec, sdl, null, "testfile");
672672
auto dependency = rec.buildSettings.dependencies["package"];
673673
assert(!dependency.repository.empty);
674-
assert(dependency.versionSpec == "12345678");
674+
assert(dependency.repository.ref_ == "12345678");
675675
}
676676

677677
unittest {

0 commit comments

Comments
 (0)