Skip to content

Commit

Permalink
Deprecate Dependency.versionSpec
Browse files Browse the repository at this point in the history
All places which assumed that Dependency contained a VersionRange have been culled,
so we can now start removing those properties.
  • Loading branch information
Geod24 committed Aug 6, 2022
1 parent 041404f commit 2b9dda6
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 14 deletions.
2 changes: 1 addition & 1 deletion source/dub/commandline.d
Original file line number Diff line number Diff line change
Expand Up @@ -2752,7 +2752,7 @@ private bool addDependency(Dub dub, ref PackageRecipe recipe, string depspec)
}
}
recipe.buildSettings.dependencies[depname] = dep;
logInfo("Adding dependency %s %s", depname, dep.versionSpec);
logInfo("Adding dependency %s %s", depname, dep.toString());
return true;
}

Expand Down
24 changes: 13 additions & 11 deletions source/dub/dependency.d
Original file line number Diff line number Diff line change
Expand Up @@ -179,17 +179,19 @@ struct Dependency {
(VersionRange v) => v,
);
enforce(range.isExactVersion(),
"Dependency "~this.versionSpec~" is no exact version.");
"Dependency "~range.toString()~" is no exact version.");
return range.m_versA;
}

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

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

unittest {
Dependency a = Dependency(">=1.1.0"), b = Dependency(">=1.3.0");
assert (a.merge(b).valid() && a.merge(b).versionSpec == ">=1.3.0", a.merge(b).toString());
assert (a.merge(b).valid() && a.merge(b).toString() == ">=1.3.0", a.merge(b).toString());

assertThrown(Dependency("<=2.0.0 >=1.0.0"));
assertThrown(Dependency(">=2.0.0 <=1.0.0"));

a = Dependency(">=1.0.0 <=5.0.0"); b = Dependency(">=2.0.0");
assert (a.merge(b).valid() && a.merge(b).versionSpec == ">=2.0.0 <=5.0.0", a.merge(b).toString());
assert (a.merge(b).valid() && a.merge(b).toString() == ">=2.0.0 <=5.0.0", a.merge(b).toString());

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

a = Dependency(">1.0.0"); b = Dependency("<2.0.0");
assert (a.merge(b).valid(), a.merge(b).toString());
assert (a.merge(b).versionSpec == ">1.0.0 <2.0.0", a.merge(b).toString());
assert (a.merge(b).toString() == ">1.0.0 <2.0.0", a.merge(b).toString());

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

unittest {
assert(Dependency("~>1.0.4").versionSpec == "~>1.0.4");
assert(Dependency("~>1.4").versionSpec == "~>1.4");
assert(Dependency("~>2").versionSpec == "~>2");
assert(Dependency("~>1.0.4+1.2.3").versionSpec == "~>1.0.4");
assert(Dependency("^0.1.2").versionSpec == "^0.1.2");
assert(Dependency("^1.2.3").versionSpec == "^1.2.3");
assert(Dependency("^1.2").versionSpec == "~>1.2"); // equivalent; prefer ~>
assert(VersionRange.fromString("~>1.0.4").toString() == "~>1.0.4");
assert(VersionRange.fromString("~>1.4").toString() == "~>1.4");
assert(VersionRange.fromString("~>2").toString() == "~>2");
assert(VersionRange.fromString("~>1.0.4+1.2.3").toString() == "~>1.0.4");
assert(VersionRange.fromString("^0.1.2").toString() == "^0.1.2");
assert(VersionRange.fromString("^1.2.3").toString() == "^1.2.3");
assert(VersionRange.fromString("^1.2").toString() == "~>1.2"); // equivalent; prefer ~>
}

/**
Expand Down
4 changes: 2 additions & 2 deletions source/dub/recipe/sdl.d
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ lflags "lf3"
assert(rec.buildSettings.dependencies["projectname:subpackage1"].optional == false);
assert(rec.buildSettings.dependencies["projectname:subpackage1"].path == NativePath("."));
assert(rec.buildSettings.dependencyBuildSettings["projectname:subpackage1"].dflags == ["":["-g", "-debug"]]);
assert(rec.buildSettings.dependencies["somedep"].versionSpec == "1.0.0");
assert(rec.buildSettings.dependencies["somedep"].version_.toString() == "1.0.0");
assert(rec.buildSettings.dependencies["somedep"].optional == true);
assert(rec.buildSettings.dependencies["somedep"].path.empty);
assert(rec.buildSettings.systemDependencies == "system dependencies");
Expand Down Expand Up @@ -671,7 +671,7 @@ dependency "package" repository="git+https://some.url" version="12345678"
parseSDL(rec, sdl, null, "testfile");
auto dependency = rec.buildSettings.dependencies["package"];
assert(!dependency.repository.empty);
assert(dependency.versionSpec == "12345678");
assert(dependency.repository.ref_ == "12345678");
}

unittest {
Expand Down

0 comments on commit 2b9dda6

Please sign in to comment.