-
Notifications
You must be signed in to change notification settings - Fork 485
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document popularity transfers #2490
Conversation
* The legacy packages and new packages must share all owners. | ||
* The new packages must be clearly related to the legacy packages in naming and function (i.e. an evolution or next generation). | ||
* All versions of the legacy packages must be deprecated and point to the new packages receiving the transfer. | ||
* The popularity transfer must not cause confusion for NuGet users or worsen the NuGet search experience. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This stands out as important to me. Looking at the table above, I can see users being confused by their search results because the actual download counts don't match the order of popularity, leading to mistrust in the nuget.org search results.
Do we have any way of communicating to users that a package's popularity has been transferred - or that a package is special/an outlier in some way? I'm thinking in a subtle, visual way that can be seen at a glance on the search results.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at the table above, I can see users being confused by their search results because the actual download counts don't match the order of popularity, leading to mistrust in the nuget.org search results.
This is an excellent question. Search looks for results that are most relevant to the user's query. Packages' popularity/downloads is one of many heuristics used to achieve this goal. In other words, it's totally fine for the top results to have low downloads as long as they are the best matches for the search query. If we simply ordered results by their downloads, packages with many downloads would always drown out packages that are most relevant to the user's query.
We did consider a visual cue but decided it wasn't necessary since we only allow popularity transfers if it improves the search results. If a customer were to complain that search results are unexpected, this would be a strong signal that we messed up and allowed a popularity transfer that regresses search rankings.
Here's an example of popularity transfers at work:
Notice the top two results have much fewer downloads than the third result. However, the top two results are clearly better than the third!
/cc @chgill-MSFT who drove the spec for popularity transfers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Loic nailed the explanation exactly. The value of this feature is to actively improve search results in cases where search ranking prioritizing downloads works against the best interest of our users. If we hear a lot of negative customer feedback or see in telemetry that search has been negatively impacted - we'll iterate on the experience accordingly 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great overall! Only concern I have is about communicating to users why they're getting search results that may not make sense at a glance (due to behind-the-scenes popularity adjustments) because there's a possibility that they'll just assume, "Oh, there's a bug with nuget.org search."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall it looks great! Some minor suggested changes.
* The legacy packages and new packages must share all owners. | ||
* The new packages must be clearly related to the legacy packages in naming and function (i.e. an evolution or next generation). | ||
* All versions of the legacy packages must be deprecated and point to the new packages receiving the transfer. | ||
* The popularity transfer must not cause confusion for NuGet users or worsen the NuGet search experience. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Loic nailed the explanation exactly. The value of this feature is to actively improve search results in cases where search ranking prioritizing downloads works against the best interest of our users. If we hear a lot of negative customer feedback or see in telemetry that search has been negatively impacted - we'll iterate on the experience accordingly 🙂
Co-authored-by: Christopher R. Gill <chrisraygill@gmail.com>
Co-authored-by: Christopher R. Gill <chrisraygill@gmail.com>
Docs Build status updates of commit b6ff4f4: ✅ Validation status: passed
For more details, please refer to the build report. Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report. For any questions, please:
|
Preview URL: https://review.docs.microsoft.com/en-us/nuget/nuget-org/deprecate-packages?branch=pr-en-us-2490
Addresses: NuGet/NuGetGallery#7943