Skip to content

Commit dcbcb45

Browse files
authored
Add search heuristic based on package registration age (#8943)
* Add search heuristic based on package registration age * Add feature flag * Add BlockSearchEngineIndexing to V2 page
1 parent b3734cf commit dcbcb45

11 files changed

Lines changed: 103 additions & 7 deletions

File tree

src/AccountDeleter/EmptyFeatureFlagService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,11 @@ public bool IsPreviewHijackEnabled()
246246
throw new NotImplementedException();
247247
}
248248

249+
public bool IsRecentPackagesNoIndexEnabled()
250+
{
251+
throw new NotImplementedException();
252+
}
253+
249254
public bool IsSearchSideBySideEnabled(User user)
250255
{
251256
throw new NotImplementedException();

src/GitHubVulnerabilities2Db/Fakes/FakeFeatureFlagService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,5 +279,10 @@ public bool IsComputeTargetFrameworkEnabled()
279279
{
280280
throw new NotImplementedException();
281281
}
282+
283+
public bool IsRecentPackagesNoIndexEnabled()
284+
{
285+
throw new NotImplementedException();
286+
}
282287
}
283288
}

src/NuGetGallery.Services/Configuration/FeatureFlagService.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public class FeatureFlagService : IFeatureFlagService
5454
private const string ShowReportAbuseSafetyChanges = GalleryPrefix + "ShowReportAbuseSafetyChanges";
5555
private const string DisplayTargetFrameworkFeatureName = GalleryPrefix + "DisplayTargetFramework";
5656
private const string ComputeTargetFrameworkFeatureName = GalleryPrefix + "ComputeTargetFramework";
57+
private const string RecentPackagesNoIndexFeatureName = GalleryPrefix + "RecentPackagesNoIndex";
5758

5859
private const string ODataV1GetAllNonHijackedFeatureName = GalleryPrefix + "ODataV1GetAllNonHijacked";
5960
private const string ODataV1GetAllCountNonHijackedFeatureName = GalleryPrefix + "ODataV1GetAllCountNonHijacked";
@@ -368,5 +369,10 @@ public bool IsComputeTargetFrameworkEnabled()
368369
{
369370
return _client.IsEnabled(ComputeTargetFrameworkFeatureName, defaultValue: false);
370371
}
372+
373+
public bool IsRecentPackagesNoIndexEnabled()
374+
{
375+
return _client.IsEnabled(RecentPackagesNoIndexFeatureName, defaultValue: false);
376+
}
371377
}
372378
}

src/NuGetGallery.Services/Configuration/IFeatureFlagService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,5 +296,10 @@ public interface IFeatureFlagService
296296
/// Whether or not to compute backend operations for target framework. This flag is overridden by <see cref="IsDisplayTargetFrameworkEnabled"/> if that flag is true.
297297
/// </summary>
298298
bool IsComputeTargetFrameworkEnabled();
299+
300+
/// <summary>
301+
/// Whether or not recent packages has no index applied to block search engine indexing.
302+
/// </summary>
303+
bool IsRecentPackagesNoIndexEnabled();
299304
}
300305
}

src/NuGetGallery/Controllers/PackagesController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -942,7 +942,8 @@ public virtual async Task<ActionResult> DisplayPackage(string id, string version
942942
model.IsNuGetPackageExplorerLinkEnabled = _featureFlagService.IsDisplayNuGetPackageExplorerLinkEnabled();
943943
model.IsPackageRenamesEnabled = _featureFlagService.IsPackageRenamesEnabled(currentUser);
944944
model.IsPackageDependentsEnabled = _featureFlagService.IsPackageDependentsEnabled(currentUser);
945-
945+
model.IsRecentPackagesNoIndexEnabled = _featureFlagService.IsRecentPackagesNoIndexEnabled();
946+
946947
if (model.IsPackageDependentsEnabled)
947948
{
948949
model.PackageDependents = GetPackageDependents(id);

src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class DisplayPackageViewModel : ListPackageItemViewModel
4040
public bool IsPackageRenamesEnabled { get; set; }
4141
public bool IsGitHubUsageEnabled { get; set; }
4242
public bool IsPackageDependentsEnabled { get; set; }
43+
public bool IsRecentPackagesNoIndexEnabled { get; set; }
4344
public NuGetPackageGitHubInformation GitHubDependenciesInformation { get; set; }
4445
public bool HasEmbeddedIcon { get; set; }
4546
public bool HasEmbeddedReadmeFile { get; set; }
@@ -136,6 +137,14 @@ public bool CanDisplayFuGetLink()
136137
return IsFuGetLinksEnabled && !string.IsNullOrEmpty(FuGetUrl) && Available;
137138
}
138139

140+
public bool BlockSearchEngineIndexing
141+
{
142+
get
143+
{
144+
return !Listed || !Available || (IsRecentPackagesNoIndexEnabled && TotalDaysSinceCreated < 7);
145+
}
146+
}
147+
139148
public enum RepositoryKind
140149
{
141150
Unknown,

src/NuGetGallery/Views/Packages/DisplayPackage.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
@{
66
ViewBag.Title = Model.Id + " " + Model.Version;
77
ViewBag.Tab = "Packages";
8-
ViewBag.BlockSearchEngineIndexing = !Model.Listed || !Model.Available;
8+
ViewBag.BlockSearchEngineIndexing = Model.BlockSearchEngineIndexing;
99

1010
var absolutePackageUrl = Url.Absolute(Url.Package(Model.Id));
1111

src/NuGetGallery/Views/Packages/DisplayPackageV2.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
@{
66
ViewBag.Title = Model.Id + " " + Model.Version;
77
ViewBag.Tab = "Packages";
8-
ViewBag.BlockSearchEngineIndexing = !Model.Listed || !Model.Available;
8+
ViewBag.BlockSearchEngineIndexing = Model.BlockSearchEngineIndexing;
99

1010
var absolutePackageUrl = Url.Absolute(Url.Package(Model.Id));
1111

src/NuGetGallery/Web.config

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -574,14 +574,14 @@
574574
</system.diagnostics>
575575
<runtime>
576576
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
577-
<dependentAssembly>
577+
<dependentAssembly>
578578
<assemblyIdentity name="Microsoft.IdentityModel.Tokens" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
579579
<bindingRedirect oldVersion="0.0.0.0-6.7.1.0" newVersion="6.7.1.0"/>
580-
</dependentAssembly>
581-
<dependentAssembly>
580+
</dependentAssembly>
581+
<dependentAssembly>
582582
<assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
583583
<bindingRedirect oldVersion="0.0.0.0-6.7.1.0" newVersion="6.7.1.0"/>
584-
</dependentAssembly>
584+
</dependentAssembly>
585585
<dependentAssembly>
586586
<assemblyIdentity name="WebGrease" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
587587
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>

src/VerifyMicrosoftPackage/Fakes/FakeFeatureFlagService.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,7 @@ public bool IsDisplayPackagePageV2PreviewEnabled(User user)
123123
public bool IsDisplayTargetFrameworkEnabled(User user) => throw new NotImplementedException();
124124

125125
public bool IsComputeTargetFrameworkEnabled() => throw new NotImplementedException();
126+
127+
public bool IsRecentPackagesNoIndexEnabled() => throw new NotImplementedException();
126128
}
127129
}

0 commit comments

Comments
 (0)