/// <summary> /// Update package info. /// </summary> static bool UpdatePackageVersions(Package package, IEnumerable <AvailableVersion> versions) { Debug.Log(kHeader, $"[UpdatePackageVersions] {package.GetName()} has {versions.Count()} versions"); var pInfoCurrent = package.GetInstalledVersion(); pInfoCurrent.UnlockVersion(); var versionInfos = versions .Select(v => v.ToPackageVersion(pInfoCurrent)) .Concat(new[] { pInfoCurrent }) .Where(pInfo => pInfo == pInfoCurrent || pInfo.GetVersion() != pInfoCurrent.GetVersion()) .OrderBy(pInfo => pInfo.GetVersion()) .ToArray(); if (package.GetVersionCount() != versionInfos.Length) { Debug.Log(kHeader, "[UpdatePackageVersions] package source changing"); package.UpdateVersions(versionInfos); return(true); } return(false); }
private static void RemovePreviewVersions(UpmPackage package) { package.UpdateVersions(package.versions.Where(v => v.HasTag(PackageTag.Release)).Cast <UpmPackageVersion>()); }