Skip to content

Commit f23df14

Browse files
authored
Fixed Update All so it correctly updates implicit dependencies (#699)
* Fixed Update All so it correctly updates implicit dependencies --------- Co-authored-by: JoC0de <[email protected]>
1 parent 439754a commit f23df14

File tree

1 file changed

+29
-18
lines changed

1 file changed

+29
-18
lines changed

src/NuGetForUnity/Editor/Ui/NugetWindow.cs

+29-18
Original file line numberDiff line numberDiff line change
@@ -190,23 +190,7 @@ private List<INugetPackage> FilteredUpdatePackages
190190
var installedPackages = InstalledPackagesManager.InstalledPackages;
191191

192192
// filter not updatable / not downgradable packages
193-
return result.Where(
194-
package =>
195-
{
196-
var installed = installedPackages.FirstOrDefault(p => p.Id.Equals(package.Id, StringComparison.OrdinalIgnoreCase));
197-
198-
if (installed == null || package.Versions.Count == 0)
199-
{
200-
// normally shouldn't happen but for now include it in the result
201-
return true;
202-
}
203-
204-
// we do not want to show packages that have no updates if we're showing updates
205-
// similarly, we do not show packages that are on the lowest possible version if we're showing downgrades
206-
return (showDowngrades && installed.PackageVersion > package.Versions[package.Versions.Count - 1]) ||
207-
(!showDowngrades && installed.PackageVersion < package.Versions[0]);
208-
})
209-
.ToList();
193+
return FilterUpdatableOrDowngradablePackages(result).ToList();
210194
}
211195
}
212196

@@ -405,6 +389,31 @@ private void OnEnable()
405389
UnityPathHelper.EnsurePackageInstallDirectoryIsSetup();
406390
}
407391

392+
/// <summary>
393+
/// Filter not updatable / not downgradable packages based on showDowngrades.
394+
/// </summary>
395+
private IEnumerable<INugetPackage> FilterUpdatableOrDowngradablePackages(IEnumerable<INugetPackage> packages)
396+
{
397+
var installedPackages = InstalledPackagesManager.InstalledPackages;
398+
399+
return packages.Where(
400+
package =>
401+
{
402+
var installed = installedPackages.FirstOrDefault(p => p.Id.Equals(package.Id, StringComparison.OrdinalIgnoreCase));
403+
404+
if (installed == null || package.Versions.Count == 0)
405+
{
406+
// normally shouldn't happen but for now include it in the result
407+
return true;
408+
}
409+
410+
// we do not want to show packages that have no updates if we're showing updates
411+
// similarly, we do not show packages that are on the lowest possible version if we're showing downgrades
412+
return (showDowngrades && installed.PackageVersion > package.Versions[package.Versions.Count - 1]) ||
413+
(!showDowngrades && installed.PackageVersion < package.Versions[0]);
414+
});
415+
}
416+
408417
private void ClearViewCache()
409418
{
410419
filteredInstalledPackages = null;
@@ -890,7 +899,9 @@ private void DrawUpdatesHeader()
890899
{
891900
if (!showDowngrades && GUILayout.Button("Update All", EditorStyles.toolbarButton, GUILayout.Width(100)))
892901
{
893-
NugetPackageUpdater.UpdateAll(updatePackages, InstalledPackagesManager.InstalledPackages);
902+
NugetPackageUpdater.UpdateAll(
903+
FilterUpdatableOrDowngradablePackages(updatePackages),
904+
InstalledPackagesManager.InstalledPackages);
894905
UpdateInstalledPackages();
895906
UpdateUpdatePackages();
896907
}

0 commit comments

Comments
 (0)