Skip to content

Commit 04ace5f

Browse files
author
Daniel Jacinto
authored
[TFM Display][Bug] Any framework fix as supported framework. (#8996)
* Any framework is accepted as supported framework. * Normalize file paths for the backfill job.
1 parent 276c658 commit 04ace5f

6 files changed

Lines changed: 35 additions & 44 deletions

File tree

src/GalleryTools/Commands/BackfillCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ private async Task<TMetadata> FetchMetadataAsync(
466466
var zipDirectory = await zipDirectoryReader.ReadAsync();
467467
var files = zipDirectory
468468
.Entries
469-
.Select(x => x.GetName())
469+
.Select(x => FileNameHelper.GetZipEntryPath(x.GetName()))
470470
.ToList();
471471

472472
return ReadMetadata(files, nuspecReader);

src/GalleryTools/Commands/BackfillTfmMetadataCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ protected override List<string> ReadMetadata(IList<string> files, NuspecReader n
4747
// See https://github.com/NuGet/NuGet.Client/blob/ba008e14611f4fa518c2d02ed78dfe5969e4a003/src/NuGet.Core/NuGet.Frameworks/FrameworkNameProvider.cs#L487 }
4848
try
4949
{
50-
var tfmToAdd = tfm.ToShortNameOrNull();
50+
var tfmToAdd = tfm.GetShortFolderName();
5151
if (!string.IsNullOrEmpty(tfmToAdd))
5252
{
5353
supportedTFMs.Add(tfmToAdd);

src/NuGetGallery.Core/Frameworks/PackageFrameworkCompatibilityFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public PackageFrameworkCompatibility Create(ICollection<PackageFramework> packag
3838

3939
var filteredPackageFrameworks = packageFrameworks
4040
.Select(pf => pf.FrameworkName)
41-
.Where(f => !f.IsUnsupported && !f.IsPCL)
41+
.Where(f => !f.IsUnsupported && !f.IsPCL && !f.IsAny)
4242
.ToHashSet();
4343

4444
var table = CreateFrameworkCompatibilityTable(filteredPackageFrameworks);

src/NuGetGallery.Services/PackageManagement/PackageService.cs

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ public PackageDependents GetPackageDependents(string id)
165165
{
166166
throw new ArgumentNullException(nameof(id));
167167
}
168-
168+
169169
PackageDependents result = new PackageDependents();
170170

171171
// We use OPTIMIZE FOR UNKNOWN by default here because there are distinct 2-3 query plans that may be
@@ -321,7 +321,7 @@ IEnumerable<Package> GetSortedFiltered(IEnumerable<Package> localPackages, bool
321321
var semvered = localPackages
322322
.Select(package => new {package, semVer= NuGetVersion.Parse(package.NormalizedVersion)})
323323
.ToList();
324-
324+
325325
return semvered
326326
.Where(d => d.semVer.IsPrerelease == prerelease || !applyPrereleaseFilter)
327327
.OrderByDescending(d => d.semVer)
@@ -342,13 +342,13 @@ Package GetPrereleaseByVersion()
342342
.FirstOrDefault();
343343
}
344344
}
345-
345+
346346
Package GetLatestPrerelease()
347347
{
348348
return GetSortedFiltered(packages)
349349
.FirstOrDefault();
350350
}
351-
351+
352352
Package GetLatestStable()
353353
{
354354
return GetSortedFiltered(packages, false)
@@ -663,23 +663,17 @@ public virtual Package EnrichPackageFromNuGetPackage(
663663
package.Authors.Add(new PackageAuthor { Name = author });
664664
}
665665
#pragma warning restore 618
666-
667-
var supportedFrameworks = GetSupportedFrameworks(packageArchive)
666+
667+
var supportedFrameworkNames = GetSupportedFrameworks(packageArchive)
668+
.Select(fn => fn.GetShortFolderName())
669+
.Where(fn => fn != null)
668670
.ToArray();
669671

670-
if (!supportedFrameworks.Any(fx => fx != null && fx.IsAny))
671-
{
672-
var supportedFrameworkNames = supportedFrameworks
673-
.Select(fn => fn.ToShortNameOrNull())
674-
.Where(fn => fn != null)
675-
.ToArray();
676-
677-
ValidateSupportedFrameworks(supportedFrameworkNames);
672+
ValidateSupportedFrameworks(supportedFrameworkNames);
678673

679-
foreach (var supportedFramework in supportedFrameworkNames)
680-
{
681-
package.SupportedFrameworks.Add(new PackageFramework { TargetFramework = supportedFramework });
682-
}
674+
foreach (var supportedFramework in supportedFrameworkNames)
675+
{
676+
package.SupportedFrameworks.Add(new PackageFramework { TargetFramework = supportedFramework });
683677
}
684678

685679
package.Dependencies = packageMetadata

tests/NuGetGallery.Core.Facts/Frameworks/PackageFrameworkCompatibilityFactoryFacts.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,23 @@ public void PortableClassLibrariesFrameworksShouldBeIgnored()
8080
Assert.Null(result.Badges.NetFramework);
8181
}
8282

83+
[Fact]
84+
public void AnyFrameworksShouldBeIgnored()
85+
{
86+
var packageFrameworks = new HashSet<PackageFramework>()
87+
{
88+
new PackageFramework() { TargetFramework = "any" },
89+
};
90+
91+
var result = _factory.Create(packageFrameworks.ToList());
92+
93+
Assert.Empty(result.Table);
94+
Assert.Null(result.Badges.Net);
95+
Assert.Null(result.Badges.NetCore);
96+
Assert.Null(result.Badges.NetStandard);
97+
Assert.Null(result.Badges.NetFramework);
98+
}
99+
83100
[Theory]
84101
[InlineData(FrameworkProductNames.Net, "net5.0", "net6.0", "net6.0-android")]
85102
[InlineData(FrameworkProductNames.NetCore, "netcoreapp1.0", "netcoreapp3.1")]

tests/NuGetGallery.Facts/Services/PackageServiceFacts.cs

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,8 @@ public async Task WillSaveSupportedFrameworks()
944944
new[]
945945
{
946946
NuGetFramework.Parse("net40"),
947-
NuGetFramework.Parse("net35")
947+
NuGetFramework.Parse("net35"),
948+
NuGetFramework.Parse("any")
948949
});
949950
});
950951
var nugetPackage = PackageServiceUtility.CreateNuGetPackage();
@@ -954,28 +955,7 @@ public async Task WillSaveSupportedFrameworks()
954955

955956
Assert.Equal("net40", package.SupportedFrameworks.First().TargetFramework);
956957
Assert.Equal("net35", package.SupportedFrameworks.ElementAt(1).TargetFramework);
957-
}
958-
959-
[Fact]
960-
public async Task WillNotSaveAnySupportedFrameworksWhenThereIsAnAnyTargetFramework()
961-
{
962-
var packageRegistrationRepository = new Mock<IEntityRepository<PackageRegistration>>();
963-
var service = CreateService(packageRegistrationRepository: packageRegistrationRepository, setup: mockPackageService =>
964-
{
965-
mockPackageService.Setup(p => p.FindPackageRegistrationById(It.IsAny<string>())).Returns((PackageRegistration)null);
966-
mockPackageService.Setup(p => p.GetSupportedFrameworks(It.IsAny<PackageArchiveReader>())).Returns(
967-
new[]
968-
{
969-
NuGetFramework.Parse("any"),
970-
NuGetFramework.Parse("net35")
971-
});
972-
});
973-
var nugetPackage = PackageServiceUtility.CreateNuGetPackage();
974-
var currentUser = new User();
975-
976-
var package = await service.CreatePackageAsync(nugetPackage.Object, new PackageStreamMetadata(), currentUser, currentUser, isVerified: false);
977-
978-
Assert.Empty(package.SupportedFrameworks);
958+
Assert.Equal("any", package.SupportedFrameworks.ElementAt(2).TargetFramework);
979959
}
980960

981961
[Theory]

0 commit comments

Comments
 (0)