Open jcbsv opened 6 years ago
Similarily searching for mysql
gives a mysql package which is a virtual package for un unmaintained mysql-python package since 2012. pymysql however (maintained and 4800 stars on github) does not appear in the first page.
It may be nice to boost on stars and decay on last release, using function_score, maybe something like:
"function_score": {
"score_mode": "multiply",
"query": {the current query},
"functions": [
"gauss": {
"last_release": {
"origin": "now",
"scale": "1m",
"decay": ".1"
}
}
"field_value_factor": {
"field": "stars",
"factor": 1,
"missing": 1,
"modifier": "none"
}
]
}
I did'nt looked at the real name of the fields, and this should probably be fine-tuned and tested on a lot of queries ^^
@JulienPalard there's a pending MR you're welcome to test/contribute to 🙂
I think that counting github stars would be a more useful way of measuring popularity, especially as download counts are affected by CI/CD usage which can skew the results a LOT.
counting github stars
This eliminates projects hosted on open-source forges ☹
Not eliminating but it would be easier to implement.
Any purist is welcomed to contribute a full review system to wheelhouse itself, but I never seen more than comments over the years. I personally think that finding practical solutions that can be implemented quickly is far more important than idealist ones that never materialise.
Sadly the reality is that searching for a decent package on pypa become a struggle in the last yeast. The registry is full of defunct or unusable packages. These days I mostly use google and github to research if a project worth being used. If is not on github, that is already a big red flag that triggers extra scrutiny (almost always there was something weird/fishy about the project). Those that have github mirrors are likely ok, everyone is welcomed to pick their own hosting solution.
I am diverging.. sorry. How about writing a package linter-ranker that gives as score based on data about a package and stores it. We can run the PackageRanker in batch mode but I do not know where we could store the results. Also we are currently not even able to display "used-by". 🤷♂️
What's the problem this feature will solve? Searching for a package for an often needed purpose should result in the best (recommended, stable, most mature, most popular, highest rated, ...) packages to be surfaces in the search results.
Describe the solution you'd like When searching for (example) "yaml" the most mature/stable/recommended package should be shown in the top of the search results.
Similarly, searching for "xml" should surface a fast and mature library like lxml.
Additional context Currently, when searching for "yaml", a number of immature, undone, and not to be recommended packages are shown in the search results. A mature packages, such as pyyaml is not shown until page 4 of the search results.
To be fair, the search term "yaml parser" brings pyyaml to the front page, but not in the top.