Skip to content
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

Merged
merged 15 commits into from
Aug 17, 2021
Merged

Document popularity transfers #2490

merged 15 commits into from
Aug 17, 2021

Conversation

loic-sharma
Copy link
Contributor

@loic-sharma loic-sharma commented Jul 23, 2021

@loic-sharma loic-sharma changed the title Chgill popularity transfers Document popularity transfers Jul 23, 2021
@NuGet NuGet deleted a comment from opbld34 Jul 23, 2021
@NuGet NuGet deleted a comment from opbld31 Jul 23, 2021
@NuGet NuGet deleted a comment from opbld36 Jul 23, 2021
@NuGet NuGet deleted a comment from opbld34 Jul 24, 2021
* 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.
Copy link

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.

Copy link
Contributor Author

@loic-sharma loic-sharma Jul 26, 2021

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:

image

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

Copy link
Contributor

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 🙂

Copy link

@jcjiang jcjiang left a 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."

Copy link
Contributor

@chrisraygill chrisraygill left a 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.
Copy link
Contributor

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 🙂

docs/nuget-org/Deprecate-packages.md Outdated Show resolved Hide resolved
docs/nuget-org/Deprecate-packages.md Outdated Show resolved Hide resolved
docs/nuget-org/Deprecate-packages.md Outdated Show resolved Hide resolved
loic-sharma and others added 3 commits July 27, 2021 11:37
Co-authored-by: Christopher R. Gill <chrisraygill@gmail.com>
Co-authored-by: Christopher R. Gill <chrisraygill@gmail.com>
@opbld36
Copy link

opbld36 commented Jul 27, 2021

Docs Build status updates of commit b6ff4f4:

✅ Validation status: passed

File Status Preview URL Details
docs/nuget-org/Deprecate-packages.md ✅Succeeded View

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:

@NuGet NuGet deleted a comment from opbld31 Jul 27, 2021
@NuGet NuGet deleted a comment from opbld36 Jul 27, 2021
@NuGet NuGet deleted a comment from opbld32 Jul 27, 2021
@loic-sharma loic-sharma merged commit b5242a0 into main Aug 17, 2021
@loic-sharma loic-sharma deleted the chgill-popularity-transfers branch August 17, 2021 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants