diff --git a/changelog/single-api-requests.dd b/changelog/single-api-requests.dd new file mode 100644 index 0000000..a8b15a3 --- /dev/null +++ b/changelog/single-api-requests.dd @@ -0,0 +1,4 @@ +DUB uses single API requests to upgrade/resolve dependencies. + +`dub` now uses single API request to upgrade/resolve dependencies. +For more details, see $(LINK2 https://github.com/dlang/dub/pull/1366, pull #1366). diff --git a/source/dub/packagesuppliers/registry.d b/source/dub/packagesuppliers/registry.d index 546dac0..eb5118a 100644 --- a/source/dub/packagesuppliers/registry.d +++ b/source/dub/packagesuppliers/registry.d @@ -86,7 +86,7 @@ m_metadataCache.remove(packageId); } - auto url = m_registryUrl ~ NativePath("api/packages/" ~ packageId ~ "/info?minimize=true"); + auto url = m_registryUrl ~ NativePath("api/packages/" ~ packageId ~ "/dependencies?minimize=true"); logDebug("Downloading metadata for %s", packageId); string jsonData; @@ -102,8 +102,12 @@ } Json json = parseJsonString(jsonData, url.toString()); - m_metadataCache[packageId] = CacheEntry(json, now); - return json; + foreach (pkg, info; json.get!(Json[string])) + { + logDebug("adding %s to metadata cache", pkg); + m_metadataCache[pkg] = CacheEntry(info, now); + } + return json[packageId]; } SearchResult[] searchPackages(string query) {