Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions Editor/Coffee.UpmGitExtension/Extensions/PackageExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,22 @@ internal static class UpmPackageExtensions
{
public static UpmPackage UpdateVersionsSafety(this UpmPackage self, IEnumerable<UpmPackageVersion> versions)
{
#if UNITY_2023_1_OR_NEWER
#if UNITY_6000_0_OR_NEWER
var factory = UnityEditor.ScriptableSingleton<ServicesContainer>.instance.Resolve<UpmPackageFactory>();
var cache = factory.Get("m_UpmCache") as IUpmCache;
var m_UpmClient = factory.Get("m_UpmClient") as IUpmClient;
var packageName = self.name;

PackageInfo installedPackageInfo = cache.GetInstalledPackageInfo(packageName);
PackageInfo searchPackageInfo = cache.GetSearchPackageInfo(packageName);
bool flag = searchPackageInfo?.unityLifecycle?.isDeprecated ?? (installedPackageInfo?.unityLifecycle?.isDeprecated).GetValueOrDefault();
string deprecationMessage = ((!flag) ? null : (searchPackageInfo?.unityLifecycle?.deprecationMessage ?? installedPackageInfo?.unityLifecycle?.deprecationMessage));
RegistryType availableRegistryType = m_UpmClient.GetAvailableRegistryType(searchPackageInfo ?? installedPackageInfo);
Dictionary<string, PackageInfo> extraPackageInfos = cache.GetExtraPackageInfos(packageName);
UpmVersionList upmVersionList = new UpmVersionList(searchPackageInfo, installedPackageInfo, availableRegistryType, PackageTag.None, cache.IsLoadAllVersions(packageName), extraPackageInfos);

self = factory.CreatePackage(self.name, upmVersionList);
#elif UNITY_2023_1_OR_NEWER
var factory = UnityEditor.ScriptableSingleton<ServicesContainer>.instance.Resolve<UpmPackageFactory>();
self = factory.CreatePackage(self.name, new UpmVersionList(versions.OrderBy(v => v.version)));
#elif UNITY_2022_2_OR_NEWER || UNITY_2021_3_26_OR_NEWER
Expand Down Expand Up @@ -123,13 +138,15 @@ private static string GetRepoUrl(string packageId, bool https = false)
// }
// return null;
//}

public static void UnlockVersion(this UpmPackageVersion self)
{
#if UNITY_6000_0_OR_NEWER
var tag = (PackageTag)self.Get("m_Tag");
#else
var tag = (PackageTag)self.Get("m_Tag") & ~PackageTag.VersionLocked;
#endif
self.Set("m_Tag", tag);
}

public static UpmPackageVersion GetInstalledVersion(this UpmPackage self)
{
#if UNITY_2020_1_OR_NEWER
Expand Down
7 changes: 6 additions & 1 deletion Editor/Coffee.UpmGitExtension/GitPackageDataBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,12 @@ internal static IPackageVersion GetPackageVersion(string packageUniqueId, string
{
IPackage package;
IPackageVersion version;
_packageDatabase.GetPackageAndVersion(packageUniqueId, versionUniqueId, out package, out version);
#if UNITY_6000_0_OR_NEWER
package = GetPackage(packageUniqueId);
version = package?.versions.FirstOrDefault((IPackageVersion v) => v.uniqueId == versionUniqueId);
#else
_packageDatabase.GetPackageAndVersion(packageUniqueId, versionUniqueId, out package, out version);
#endif
return version;
}

Expand Down