Fix usage of the selections file (was completely ignored) and improve diagnostic output.
1 parent b8e78ac commit d4d026861bf593c919ff69314b0a259e1e24d6a7
@Sönke Ludwig Sönke Ludwig authored on 10 Apr 2014
Showing 2 changed files
View
14
source/dub/dub.d
foreach (p, ver; versions) {
assert(!p.canFind(":"), "Resolved packages contain a sub package!?: "~p);
auto pack = m_packageManager.getBestPackage(p, ver);
if (!pack) fetch(p, ver, PlacementLocation.userWide, false, (options & UpgradeOptions.preRelease) != 0, (options & UpgradeOptions.forceRemove) != 0, false);
if (options & UpgradeOptions.select && ver.path.empty)
if ((options & UpgradeOptions.select) && ver.path.empty)
m_project.selections.selectVersion(p, ver.version_);
}
 
if (options & UpgradeOptions.select)
}
 
protected override Dependency[] getAllConfigs(string pack)
{
logDiagnostic("Search for versions of %s (%s package suppliers)", pack, m_dub.m_packageSuppliers.length);
if (!(m_options & UpgradeOptions.upgrade) && m_selectedVersions.hasSelectedVersion(pack))
return [m_selectedVersions.selectedVersion(pack)];
 
if (auto pvers = pack in m_packageVersions)
return *pvers;
 
if (!(m_options & UpgradeOptions.upgrade) && m_selectedVersions.hasSelectedVersion(pack)) {
auto ret = [m_selectedVersions.selectedVersion(pack)];
logDiagnostic("Using fixed selection %s %s", pack, ret[0]);
m_packageVersions[pack] = ret;
return ret;
}
 
logDiagnostic("Search for versions of %s (%s package suppliers)", pack, m_dub.m_packageSuppliers.length);
Version[] versions;
foreach (p; m_dub.packageManager.getPackageIterator(pack))
versions ~= p.ver;
 
View
2
■■■
source/dub/project.d
catch(Exception t) logDiagnostic("Failed to read .dub/dub.json: %s", t.msg);
 
auto selverfile = m_rootPackage.path ~ SelectedVersions.defaultFile;
if (existsFile(selverfile)) {
try m_selectedVersions = new SelectedVersions();
try m_selectedVersions = new SelectedVersions(selverfile);
catch(Exception e) {
logDiagnostic("A " ~ SelectedVersions.defaultFile ~ " file was not found or failed to load:\n%s", e.msg);
m_selectedVersions = new SelectedVersions;
}