internal static UpmPackageVersion ToPackageVersion(this AvailableVersion self, UpmPackageVersion baseInfo) { var semver = SemVersion.Parse(self.refNameVersion); var newPInfo = JsonUtility.FromJson <UnityEditor.PackageManager.PackageInfo>(JsonUtility.ToJson(baseInfo.packageInfo)); newPInfo.m_Version = self.version; newPInfo.m_Git = new GitInfo("", self.refName); #if UNITY_2019_4_10_OR_NEWER var p = new UpmPackageVersion(newPInfo, false, semver, newPInfo.displayName, false); #else var p = new UpmPackageVersion(newPInfo, false, semver, newPInfo.displayName); #endif // Update tag. PackageTag tag = PackageTag.Git | PackageTag.Installable | PackageTag.Removable; if (semver.Major == 0 || !string.IsNullOrEmpty(semver.Prerelease)) { tag |= PackageTag.Preview; } else if (semver.IsRelease()) { tag |= PackageTag.Release; } p.m_Tag = tag; p.m_IsFullyFetched = true; p.m_PackageId = string.Format("{0}@{1}#{2}", self.packageName, self.repoUrl, self.refName); return(p); }
void Reset() { TestCaseCount = 0; TestMode = 0; TestCasePassedCount = 0; mockPackageVersion = null; upmPackageVersion = null; }
public void Test(IPackageVersion packageVersion, TestMode testMode) { Reset(); if (packageVersion is MockPackageVersion) { mockPackageVersion = packageVersion as MockPackageVersion; } else { upmPackageVersion = packageVersion as UpmPackageVersion; } TestMode = testMode; ShowTestRunnerWindow(); Run(); }
internal static void UnlockVersion(this UpmPackageVersion self) { self.m_Tag = self.m_Tag & ~PackageTag.VersionLocked; }
internal static SemVersion GetVersion(this UpmPackageVersion self) { return(self.version ?? new SemVersion(0)); }
internal static UnityEditor.PackageManager.PackageInfo GetPackageInfo(this UpmPackageVersion self) { return(self.packageInfo); }
/// <summary> /// Update package info. /// </summary> #if UNITY_2019_3_OR_NEWER void UpdatePackageVersions(UpmPackage package, IEnumerable <string> versions) { var pInfo = package.installedVersion as UpmPackageVersion; var json = JsonUtility.ToJson(pInfo.packageInfo); string packageName, repoUrl, installedRefName; PackageUtils.SplitPackageId(pInfo.uniqueId, out packageName, out repoUrl, out installedRefName); Debug.LogFormat("[UpdatePackageVersions] packageName = {0}, count = {1}, current = {2}", package.name, versions.Count(), pInfo.version); var versionInfos = versions .Select(ver => { Debug.LogFormat("[UpdatePackageVersions] version = {0}", ver); var splited = ver.Split(','); var refName = splited[0]; var version = splited[1]; var semver = SemVersion.Parse(version == refName ? version : version + "-" + refName); var info = JsonUtility.FromJson <PackageInfo>(json); Expose.FromObject(info).Set("m_Version", version); Expose.FromObject(info).Set("m_Git", new GitInfo("", refName)); var p = new UpmPackageVersion(info, false, semver, pInfo.displayName); // Update tag. PackageTag tag = PackageTag.Git | PackageTag.Installable | PackageTag.Removable; if ((semver.Major == 0 && string.IsNullOrEmpty(semver.Prerelease)) || PackageTag.Preview.ToString().Equals(semver.Prerelease.Split('.')[0], StringComparison.InvariantCultureIgnoreCase)) { tag |= PackageTag.Preview; } if (semver.IsRelease()) { tag |= PackageTag.Release; } else { if ((semver.Major == 0 && string.IsNullOrEmpty(semver.Prerelease)) || PackageTag.Preview.ToString().Equals(semver.Prerelease.Split('.')[0], StringComparison.InvariantCultureIgnoreCase)) { tag |= PackageTag.Preview; } } Expose.FromObject(p).Set("m_Tag", tag); Expose.FromObject(p).Set("m_IsFullyFetched", true); Expose.FromObject(p).Set("m_PackageId", string.Format("{0}@{1}#{2}", packageName, repoUrl, semver)); return(p); }) .Concat(new[] { pInfo }) .Where(p => p == pInfo || p.version != pInfo.version) .OrderBy(x => x.version) .ToArray(); if (0 < versionInfos.Length) { // Add verify tag on latest version. var latest = versionInfos .Where(x => x.version.IsRelease()) .LastOrDefault(); if (latest != null) { var tag = Expose.FromObject(latest).Get("m_Tag").As <PackageTag>(); tag |= PackageTag.Verified; Expose.FromObject(latest).Set("m_Tag", tag); } // Unlock version tag. var t = Expose.FromObject(pInfo).Get("m_Tag").As <PackageTag>(); Expose.FromObject(pInfo).Set("m_Tag", t & ~PackageTag.VersionLocked); Debug.LogFormat("[UpdatePackageVersions] package source changing"); package.UpdateVersions(versionInfos); } }