diff --git a/source/dub/dependency.d b/source/dub/dependency.d index 8ba99ed..87bc693 100644 --- a/source/dub/dependency.d +++ b/source/dub/dependency.d @@ -305,6 +305,7 @@ d.m_cmpB = !doCmp(m_cmpB, b,b)? m_cmpB : o.m_cmpB; d.m_versB = b; d.m_optional = m_optional && o.m_optional; + if (!d.valid) return INVALID; return d; } diff --git a/source/dub/dub.d b/source/dub/dub.d index 9494788..e373e4c 100644 --- a/source/dub/dub.d +++ b/source/dub/dub.d @@ -207,6 +207,7 @@ auto versions = resolver.resolve(m_project.rootPackage, m_project.selections); if (options & UpgradeOptions.printUpgradesOnly) { + bool any = false; foreach (p, ver; versions) { if (!ver.path.empty) continue; @@ -214,6 +215,7 @@ if (!m_project.selections.hasSelectedVersion(basename)) { logInfo("Package %s can be installed with version %s.", basename, ver); + any = true; continue; } auto sver = m_project.selections.getSelectedVersion(basename); @@ -221,7 +223,9 @@ if (ver.version_ <= sver.version_) continue; logInfo("Package %s can be upgraded from %s to %s.", basename, sver, ver); + any = true; } + if (any) logInfo("Use \"dub upgrade\" to perform those changes."); return; } @@ -242,7 +246,7 @@ FetchOptions fetchOpts; fetchOpts |= (options & UpgradeOptions.preRelease) != 0 ? FetchOptions.usePrerelease : FetchOptions.none; fetchOpts |= (options & UpgradeOptions.forceRemove) != 0 ? FetchOptions.forceRemove : FetchOptions.none; - if (!pack) fetch(p, ver, defaultPlacementLocation, fetchOpts, "getting upgraded version"); + if (!pack) fetch(p, ver, defaultPlacementLocation, fetchOpts, "getting selected version"); if ((options & UpgradeOptions.select) && ver.path.empty && p != m_project.rootPackage.name) m_project.selections.selectVersion(p, ver.version_); }