diff --git a/accepted/2023/owner-author-pmui.md b/accepted/2023/owner-author-pmui.md index ce1cbee2e..295d55a0c 100644 --- a/accepted/2023/owner-author-pmui.md +++ b/accepted/2023/owner-author-pmui.md @@ -50,10 +50,18 @@ When Known Owners are available on a package source, the PM UI Packages list wil Example of HyperLinks and a package list item's ToolTip: ![The PM UI Packages list showing a page of Owners from NuGet.org beside each package ID as a hyperlink. An example of a tooltip showing the package name, owners, and package description.](../../meta/resources/OwnerAuthor/ownerNuGetOrgLinksNoIcon.png) -|Package Source supports Known Owners|Shown in Packages List|Example -|--|--|--| -|No| Author | "by James Newton-King" -|Yes| Owner only| "by [jamesnk](https://www.nuget.org/profiles/jamesnk), [newtonsoft](https://www.nuget.org/profiles/newtonsoft), [dotnetfoundation](https://www.nuget.org/profiles/dotnetfoundation)" +Packages coming from [NuGet IntelliCode Package Suggestions](https://devblogs.microsoft.com/nuget/intellicode-package-suggestions-for-nuget-in-visual-studio/#:~:text=IntelliCode%20Package%20Suggestions%20use%20a,Netflix%20recommendations%20for%20NuGet%20packages.) are not sourced from a package source, and therefore will not contain Known Owner metadata nor will they be shown as hyperlinks. +Instead, the author will continue to be shown for these 5 recommended packages. + +Example of IntelliCode Suggestions showing their author: +![Example of IntelliCode Suggestions showing their author](../../meta/resources/OwnerAuthor/intellicodeShowsAuthor.png) + + +|Package Source supports Known Owners|Package is `*` Recommended|Shown in Packages List|Example +|--|--|--|--| +|No| N/A | Author | "by James Newton-King" +|Yes| No | Owner | "by [jamesnk](https://www.nuget.org/profiles/jamesnk), [newtonsoft](https://www.nuget.org/profiles/newtonsoft), [dotnetfoundation](https://www.nuget.org/profiles/dotnetfoundation)" +|Yes| Yes | Author | "by James Newton-King" Hyperlink URL values for each Known Owner will depend on which resource the package source supports. The URL's value will be shown as a tooltip on each hyperlink. diff --git a/accepted/2024/recommender-pmui-metadata.md b/accepted/2024/recommender-pmui-metadata.md new file mode 100644 index 000000000..4eb30b3e9 --- /dev/null +++ b/accepted/2024/recommender-pmui-metadata.md @@ -0,0 +1,63 @@ +# Include Metadata with IntelliCode Suggested Packages + + +- Donnie Goodson ([donnie-msft](https://github.com/donnie-msft)) +- GitHub Issue: https://github.com/NuGet/Home/issues/10714 + +## Summary + + + +Packages coming from [NuGet IntelliCode Package Suggestions](https://devblogs.microsoft.com/nuget/intellicode-package-suggestions-for-nuget-in-visual-studio/#:~:text=IntelliCode%20Package%20Suggestions%20use%20a,Netflix%20recommendations%20for%20NuGet%20packages.) (aka, "recommender") are not sourced directly from a package source, and therefore will not contain metadata such as Known Owners or Download Count. +In order to include this metadata, the NuGet Package Manager (PM UI) can search for each recommended package while loading search results by re-querying each recommended package, or a change can be made to the implementation of the recommender. + +## Motivation + + + +Missing recommended package metadata means customers cannot see Known Owner or Download Count for the first 5 packages shown in the PM UI Browse Tab from nuget.org. When those packages are shown in the regular search results, they will have this metadata which can cause confusion for customers. + +## Explanation + +### Functional explanation + + + + +#### Option 1: Package Recommender Service + +The Package Recommender is currently shipped as a VS Extension (VSIX) in Visual Studio. +In order to provide up-to-data metadata for a package, a service would allow clients, such as PM UI, to query for recommended packages. The service can append the package metadata along with each package it recommends. + +#### Option 2: Explicitly Search for each recommended package. + +When the PM UI receives recommended search results, it can call Search for each of those packages. +An attempt to re-query each of the 5 recommended packages brought up concerns of performance in the PM UI. See pull request: https://github.com/NuGet/NuGet.Client/pull/4049. + +### Technical explanation + + + +## Drawbacks + + + +## Rationale and alternatives + + + + + +## Prior Art + +1. An attempt to re-query each of the 5 recommended packages brought up concerns of performance in the PM UI. See pull request: https://github.com/NuGet/NuGet.Client/pull/4049. + +## Unresolved Questions + + + + + +## Future Possibilities + + diff --git a/meta/resources/OwnerAuthor/intellicodeShowsAuthor.png b/meta/resources/OwnerAuthor/intellicodeShowsAuthor.png new file mode 100644 index 000000000..2c73121ae Binary files /dev/null and b/meta/resources/OwnerAuthor/intellicodeShowsAuthor.png differ