From 109c134e846357d5c9e037852b28578e80587df8 Mon Sep 17 00:00:00 2001 From: Loic Sharma Date: Thu, 20 May 2021 16:27:50 -0700 Subject: [PATCH] Upgrade to nuget client 5.9.1 --- Directory.Build.props | 1 + .../NuGet.Protocol.Catalog.csproj | 2 +- .../UpdateDownloadsCommand.cs | 2 +- .../PackageIdValidator.cs | 29 --- .../SearchService/IndexOperationBuilder.cs | 4 +- .../SearchService/SearchParametersBuilder.cs | 6 +- .../SearchService/SearchTextBuilder.cs | 2 +- ...tats.CreateAzureCdnWarehouseReports.csproj | 2 +- .../Stats.ImportAzureCdnStatistics.csproj | 2 +- .../Stats.LogInterpretation.csproj | 2 +- .../Validation.Common.Job.csproj | 2 +- ...ervices.AzureSearch.FunctionalTests.csproj | 2 +- .../NuGet.Services.AzureSearch.Tests.csproj | 1 - .../PackageIdValidatorFacts.cs | 168 ------------------ 14 files changed, 14 insertions(+), 211 deletions(-) delete mode 100644 src/NuGet.Services.AzureSearch/PackageIdValidator.cs delete mode 100644 tests/NuGet.Services.AzureSearch.Tests/PackageIdValidatorFacts.cs diff --git a/Directory.Build.props b/Directory.Build.props index 18d4fe03c..ae8e5964c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -3,6 +3,7 @@ 2.86.0 + 5.9.1 4.4.5-dev-4633971 diff --git a/src/NuGet.Protocol.Catalog/NuGet.Protocol.Catalog.csproj b/src/NuGet.Protocol.Catalog/NuGet.Protocol.Catalog.csproj index 9b42553bf..b1b005d7d 100644 --- a/src/NuGet.Protocol.Catalog/NuGet.Protocol.Catalog.csproj +++ b/src/NuGet.Protocol.Catalog/NuGet.Protocol.Catalog.csproj @@ -15,7 +15,7 @@ 9.0.1 - 5.9.0 + $(NuGetClientPackageVersion) diff --git a/src/NuGet.Services.AzureSearch/Auxiliary2AzureSearch/UpdateDownloadsCommand.cs b/src/NuGet.Services.AzureSearch/Auxiliary2AzureSearch/UpdateDownloadsCommand.cs index ba78bad2e..c609f7845 100644 --- a/src/NuGet.Services.AzureSearch/Auxiliary2AzureSearch/UpdateDownloadsCommand.cs +++ b/src/NuGet.Services.AzureSearch/Auxiliary2AzureSearch/UpdateDownloadsCommand.cs @@ -391,7 +391,7 @@ private void CleanDownloadData(DownloadData data) foreach (var id in data.Keys.ToList()) { var isValidId = id.Length <= PackageIdValidator.MaxPackageIdLength - && PackageIdValidator.IsValidPackageIdWithTimeout(id); + && PackageIdValidator.IsValidPackageId(id); if (!isValidId) { invalidIdCount++; diff --git a/src/NuGet.Services.AzureSearch/PackageIdValidator.cs b/src/NuGet.Services.AzureSearch/PackageIdValidator.cs deleted file mode 100644 index 7be01789c..000000000 --- a/src/NuGet.Services.AzureSearch/PackageIdValidator.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Globalization; -using System.Text.RegularExpressions; - -namespace NuGet.Services.AzureSearch -{ - // TODO: Delete this copy of the PackageIdValidator. - // Tracked by: https://github.com/NuGet/Engineering/issues/3669 - // Forked from: https://github.com/NuGet/NuGet.Client/blob/18863da5be3dc8c7315f4416df1bc9ef96cb7446/src/NuGet.Core/NuGet.Packaging/PackageCreation/Utility/PackageIdValidator.cs - public static class PackageIdValidator - { - public const int MaxPackageIdLength = 100; - private static readonly Regex IdRegex = new Regex(pattern: @"^\w+([.-]\w+)*$", - options: RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture | RegexOptions.CultureInvariant, - matchTimeout: TimeSpan.FromSeconds(15)); - - public static bool IsValidPackageIdWithTimeout(string packageId) - { - if (packageId == null) - { - throw new ArgumentNullException(nameof(packageId)); - } - return IdRegex.IsMatch(packageId); - } - } -} diff --git a/src/NuGet.Services.AzureSearch/SearchService/IndexOperationBuilder.cs b/src/NuGet.Services.AzureSearch/SearchService/IndexOperationBuilder.cs index c739233a2..4e897e425 100644 --- a/src/NuGet.Services.AzureSearch/SearchService/IndexOperationBuilder.cs +++ b/src/NuGet.Services.AzureSearch/SearchService/IndexOperationBuilder.cs @@ -150,7 +150,7 @@ private bool TryGetSinglePackageId( { packageId = terms.First(); if (packageId.Length <= PackageIdValidator.MaxPackageIdLength - && PackageIdValidator.IsValidPackageIdWithTimeout(packageId)) + && PackageIdValidator.IsValidPackageId(packageId)) { return true; } @@ -183,7 +183,7 @@ private static bool HasInvalidParameters(SearchRequest request, string packageTy // Requests with bad parameters yield no results. For the package type case, by specification a package type // valid characters are the same as a package ID. return request.Skip > MaximumSkip - || (packageType != null && !PackageIdValidator.IsValidPackageIdWithTimeout(packageType)); + || (packageType != null && !PackageIdValidator.IsValidPackageId(packageType)); } private static bool PagedToFirstItem(SearchRequest request) diff --git a/src/NuGet.Services.AzureSearch/SearchService/SearchParametersBuilder.cs b/src/NuGet.Services.AzureSearch/SearchService/SearchParametersBuilder.cs index 3fe91d36b..23555e924 100644 --- a/src/NuGet.Services.AzureSearch/SearchService/SearchParametersBuilder.cs +++ b/src/NuGet.Services.AzureSearch/SearchService/SearchParametersBuilder.cs @@ -35,7 +35,7 @@ public class SearchParametersBuilder : ISearchParametersBuilder private static readonly List CreatedAsc = new List { IndexFields.Created + Asc }; // Newest first private static readonly List CreatedDesc = new List { IndexFields.Created + Desc }; // Oldest first private static readonly List TotalDownloadsAsc = new List { IndexFields.Search.TotalDownloadCount + Asc, IndexFields.Created + Asc }; // Least downloads first, then oldest - private static readonly List TotalDownloadsDesc = new List { IndexFields.Search.TotalDownloadCount + Desc, IndexFields.Created + Desc}; // Most downloads first, then newest + private static readonly List TotalDownloadsDesc = new List { IndexFields.Search.TotalDownloadCount + Desc, IndexFields.Created + Desc }; // Most downloads first, then newest public SearchParameters LastCommitTimestamp() { @@ -104,7 +104,7 @@ public SearchParameters Autocomplete(AutocompleteRequest request, bool isDefault searchParameters.Select = PackageIdsAutocompleteSelect; ApplyPaging(searchParameters, request); break; - + // Package version autocomplete should only match a single document // regardless of the request's parameters. case AutocompleteRequestType.PackageVersions: @@ -153,7 +153,7 @@ private void ApplySearchIndexFilter( // Verify that the package type only has valid package ID characters so we don't need to worry about // escaping quotes and such. - if (packageType != null && PackageIdValidator.IsValidPackageIdWithTimeout(packageType)) + if (packageType != null && PackageIdValidator.IsValidPackageId(packageType)) { filterString += $" and {IndexFields.Search.FilterablePackageTypes}/any(p: p eq '{packageType.ToLowerInvariant()}')"; } diff --git a/src/NuGet.Services.AzureSearch/SearchService/SearchTextBuilder.cs b/src/NuGet.Services.AzureSearch/SearchService/SearchTextBuilder.cs index 145eaa5b3..f7b1a68b9 100644 --- a/src/NuGet.Services.AzureSearch/SearchService/SearchTextBuilder.cs +++ b/src/NuGet.Services.AzureSearch/SearchService/SearchTextBuilder.cs @@ -314,7 +314,7 @@ private static IEnumerable ProcessFieldValues(QueryField field, IEnumera private static bool IsId(string query) { return query.Length <= PackageIdValidator.MaxPackageIdLength - && PackageIdValidator.IsValidPackageIdWithTimeout(query); + && PackageIdValidator.IsValidPackageId(query); } private static bool IsIdWithSeparator(string query) diff --git a/src/Stats.CreateAzureCdnWarehouseReports/Stats.CreateAzureCdnWarehouseReports.csproj b/src/Stats.CreateAzureCdnWarehouseReports/Stats.CreateAzureCdnWarehouseReports.csproj index 3099693e7..018a3144b 100644 --- a/src/Stats.CreateAzureCdnWarehouseReports/Stats.CreateAzureCdnWarehouseReports.csproj +++ b/src/Stats.CreateAzureCdnWarehouseReports/Stats.CreateAzureCdnWarehouseReports.csproj @@ -82,7 +82,7 @@ 5.8.4 - 5.9.0 + $(NuGetClientPackageVersion) 0.3.0 diff --git a/src/Stats.ImportAzureCdnStatistics/Stats.ImportAzureCdnStatistics.csproj b/src/Stats.ImportAzureCdnStatistics/Stats.ImportAzureCdnStatistics.csproj index a0894374c..94b442fa6 100644 --- a/src/Stats.ImportAzureCdnStatistics/Stats.ImportAzureCdnStatistics.csproj +++ b/src/Stats.ImportAzureCdnStatistics/Stats.ImportAzureCdnStatistics.csproj @@ -105,7 +105,7 @@ 5.8.4 - 5.9.0 + $(NuGetClientPackageVersion) 0.3.0 diff --git a/src/Stats.LogInterpretation/Stats.LogInterpretation.csproj b/src/Stats.LogInterpretation/Stats.LogInterpretation.csproj index ecbfd8fde..a9a8b2438 100644 --- a/src/Stats.LogInterpretation/Stats.LogInterpretation.csproj +++ b/src/Stats.LogInterpretation/Stats.LogInterpretation.csproj @@ -20,7 +20,7 @@ 11.0.2 - 5.9.0 + $(NuGetClientPackageVersion) 3.1.44 diff --git a/src/Validation.Common.Job/Validation.Common.Job.csproj b/src/Validation.Common.Job/Validation.Common.Job.csproj index bc2b88a6b..ed452adad 100644 --- a/src/Validation.Common.Job/Validation.Common.Job.csproj +++ b/src/Validation.Common.Job/Validation.Common.Job.csproj @@ -34,7 +34,7 @@ 2.2.0 - 5.9.0 + $(NuGetClientPackageVersion) $(NuGetGalleryPackageVersion) diff --git a/tests/NuGet.Services.AzureSearch.FunctionalTests/NuGet.Services.AzureSearch.FunctionalTests.csproj b/tests/NuGet.Services.AzureSearch.FunctionalTests/NuGet.Services.AzureSearch.FunctionalTests.csproj index 82513a3fc..712ac22d1 100644 --- a/tests/NuGet.Services.AzureSearch.FunctionalTests/NuGet.Services.AzureSearch.FunctionalTests.csproj +++ b/tests/NuGet.Services.AzureSearch.FunctionalTests/NuGet.Services.AzureSearch.FunctionalTests.csproj @@ -80,7 +80,7 @@ $(ServerCommonPackageVersion) - 5.9.0 + $(NuGetClientPackageVersion) 2.4.1 diff --git a/tests/NuGet.Services.AzureSearch.Tests/NuGet.Services.AzureSearch.Tests.csproj b/tests/NuGet.Services.AzureSearch.Tests/NuGet.Services.AzureSearch.Tests.csproj index fe31d850e..b55fefaa8 100644 --- a/tests/NuGet.Services.AzureSearch.Tests/NuGet.Services.AzureSearch.Tests.csproj +++ b/tests/NuGet.Services.AzureSearch.Tests/NuGet.Services.AzureSearch.Tests.csproj @@ -69,7 +69,6 @@ - diff --git a/tests/NuGet.Services.AzureSearch.Tests/PackageIdValidatorFacts.cs b/tests/NuGet.Services.AzureSearch.Tests/PackageIdValidatorFacts.cs deleted file mode 100644 index 5eeced260..000000000 --- a/tests/NuGet.Services.AzureSearch.Tests/PackageIdValidatorFacts.cs +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Xunit; - -namespace NuGet.Services.AzureSearch -{ - // TODO: Delete this copy of the PackageIdValidator. - // Tracked by: https://github.com/NuGet/Engineering/issues/3669 - // Forked from: https://github.com/NuGet/NuGet.Client/blob/18863da5be3dc8c7315f4416df1bc9ef96cb7446/test/NuGet.Core.Tests/NuGet.Packaging.Test/PackageIdValidatorTest.cs#L8 - public class PackageIdValidatorTest - { - [Fact] - public void EmptyIsNotValid() - { - // Arrange - string packageId = ""; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.False(isValid); - } - - [Fact] - public void NullThrowsException() - { - // Arrange - string packageId = null; - - // Act & Assert - Assert.Throws(paramName: "packageId", - testCode: () => PackageIdValidator.IsValidPackageIdWithTimeout(packageId)); - } - - [Fact] - public void AlphaNumericIsValid() - { - // Arrange - string packageId = "42This1Is4You"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.True(isValid); - } - - [Fact] - public void MultipleDotSeparatorsAllowed() - { - // Arrange - string packageId = "I.Like.Writing.Unit.Tests"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.True(isValid); - } - - [Fact] - public void NumbersAndWordsDotSeparatedAllowd() - { - // Arrange - string packageId = "1.2.3.4.Uno.Dos.Tres.Cuatro"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.True(isValid); - } - - [Fact] - public void UnderscoreDotAndDashSeparatorsAreValid() - { - // Arrange - string packageId = "Nu_Get.Core-IsCool"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.True(isValid); - } - - [Fact] - public void NonAlphaNumericUnderscoreDotDashIsInvalid() - { - // Arrange - string packageId = "ILike*Asterisks"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.False(isValid); - } - - [Fact] - public void ConsecutiveSeparatorsNotAllowed() - { - // Arrange - string packageId = "I_.Like.-Separators"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.False(isValid); - } - - [Fact] - public void StartingWithSeparatorsNotAllowed() - { - // Arrange - string packageId = "-StartWithSeparator"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.False(isValid); - } - - [Fact] - public void EndingWithSeparatorsNotAllowed() - { - // Arrange - string packageId = "StartWithSeparator."; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.False(isValid); - } - - [Fact] - public void DotToolsIsNotAllowed() - { - // Arrange - string packageId = ".tools"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.False(isValid); - } - - [Fact] - public void IsValidPackageId_PackageIdWithTwoUnderscores_Success() - { - // Arrange - string packageId = "Hello__World"; - - // Act - bool isValid = PackageIdValidator.IsValidPackageIdWithTimeout(packageId); - - // Assert - Assert.True(isValid); - } - } -}