internal void UpdatePackageInfo(PackageInfo newPackageInfo, bool isUnityPackage) { m_IsFullyFetched = m_Version?.ToString() == newPackageInfo.version; m_PackageInfo = newPackageInfo; m_PackageUniqueId = m_PackageInfo.name; m_IsUnityPackage = isUnityPackage; RefreshTags(); // For core packages, or packages that are bundled with Unity without being published, use Unity's build date m_PublishedDateTicks = 0; if (HasTag(PackageTag.Bundled) && m_PackageInfo.datePublished == null) { m_PublishedDateTicks = new DateTime(1970, 1, 1).Ticks + InternalEditorUtility.GetUnityVersionDate() * TimeSpan.TicksPerSecond; } m_Author = this.isUnityPackage ? k_UnityAuthor : m_PackageInfo.author?.name ?? string.Empty; if (HasTag(PackageTag.BuiltIn)) { m_Description = UpmPackageDocs.FetchBuiltinDescription(this); } if (m_IsFullyFetched) { m_DisplayName = GetDisplayName(m_PackageInfo); m_PackageId = m_PackageInfo.packageId; if (installedFromPath) { m_PackageId = m_PackageId.Replace("\\", "/"); } ProcessSignatureErrors(newPackageInfo); } else { m_PackageId = FormatPackageId(name, version.ToString()); } }