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

Rename NuGet package? #347

Closed
bgrainger opened this issue Oct 5, 2017 · 6 comments
Closed

Rename NuGet package? #347

bgrainger opened this issue Oct 5, 2017 · 6 comments
Milestone

Comments

@bgrainger
Copy link
Member

When searching NuGet for “mysql” (https://www.nuget.org/packages?q=mysql), MySqlConnector doesn't show up till page 6.

The fourth result (on the first page) has just 286 total downloads. Thus download count doesn't seem to influence rankings significantly. However, what does seem to be a common factor of all results on the first five pages is “MySql” as a separate token in the package ID (e.g., MySql.Data, Shaolinq.MySql, or SapientGuardian.MySql.Data). My guess is that punctuation-delimited “words” in package IDs are weighted very heavily in relevance rankings.

“Rebranding” with a different package ID could potentially dramatically improve NuGet rankings, at the cost of breaking updates for existing users. (Thus, this should definitely be changed before 1.0.) Some migration strategies are discussed at dotnet/aspnetcore#1222, e.g., publishing one final version of MySqlConnector that throws exceptions telling clients to switch to the new package.

This still leaves open the question of what the new package ID should be. I'm opening this issue for suggestions and discussion.

@bgrainger bgrainger added this to the 1.0 milestone Oct 5, 2017
@ejball
Copy link
Contributor

ejball commented Oct 5, 2017

Connector.MySql

@VitaliyMF
Copy link

I'm not sure that separate token will help in this case; for example first result for "pdf" (https://www.nuget.org/packages?q=pdf) is "iTextSharp".
It seems latest nuget.org uses Lucense.NET for indexing and searching most relevant packages - you can explore the code how they construct lucene query: https://github.com/NuGet/NuGet.Services.Metadata/blob/master/src/NuGet.Indexing/NuGetQuery.cs

All this means that it is a very little sense in renaming nuget package ID; instead of that you can improve presence in search results by:

  • add <Title> to csproj with value that separates "mysql" keyword
  • add more content to (use "mysql" several times).
  • use with some useful content that also contains "mysql" keyword
  • add more tags (for example, "MySql.Data" repeats "MySql" tag 3 times! They are cheaters without doubt hehe)

@caleblloyd
Copy link
Contributor

I personally find nuget's search algorithms very poor so I use Google and/or GitHub to discover C# packages. I fell like a lot of the C# community may do this as well.

There are probably numerous references to MySqlConnector across stack overflow and other places on the internet. The BC breakage does not seem worth it, just to appease nuget's current search algorithm.

Nuget just got a facelift so there may be more improvements in the works. Is there an open way to request a better search algorithm from nuget?

@bgrainger
Copy link
Member Author

  • add <Title> to csproj with value that separates "mysql" keyword
  • add more content to (use "mysql" several times).
  • use with some useful content that also contains "mysql" keyword

I tried some of these in the latest release; see changes in a45427e. It didn't seem to improve the ranking.

@VitaliyMF
Copy link

I tried some of these in the latest release; see changes in a45427e. It didn't seem to improve the ranking.

Content is still too short and "mysql" repeated several times might help. Also, have you tried to add "mysql" tag several times like in "MySql.Data"? I agree that currently nuget search is rather irrelevant.

@bgrainger
Copy link
Member Author

Not worth breaking compatibility to try to "game" the current NuGet search rankings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants