pypi / warehouse

The Python Package Index
https://pypi.org
Apache License 2.0
3.54k stars 953 forks source link

Sort project search filters by popularity by default #1935

Open tmose1106 opened 7 years ago

tmose1106 commented 7 years ago

I have just recently started looking around "The Warehouse", and I have noticed some little quirks. The biggest one being how quirky the project filters in the package search are. Some glaring things I have noticed (Which mostly revolve around alphabetizing):

My suggestion would be to have a popular section or something of the sort at the top of each filter, where the most common categories will be. And for the languages, just moving Python up top of the list, since I would assume 99% of people are looking for Python packages. And if developers began marking the Python version categories correctly, we would have a much better system.

brainwane commented 6 years ago

@tmose1106 I'm sorry for the delay in response here. The folks working on Warehouse have gotten limited funding to concentrate on improving and deploying Warehouse, and have kicked off work towards our development roadmap -- the most urgent task is to improve Warehouse to the point where we can redirect pypi.python.org to pypi.org so the site is more sustainable and reliable. Along the way we've been trying to reply to issues that need replies -- I missed getting to this earlier and I'm sorry about that.

Nicole (@nlhkabu) has written up her design goals, including her assessment of the legacy UI and its problems, at http://whoisnicoleharris.com/2015/12/31/designing-warehouse-an-overview.html . She's doing user tests to get more data on what users have trouble with, and during those tests, asking about things like filtering, search, and the classifiers.

Volunteers @waseem18 and @cryvate have been working on search, filters, and sorting -- I'd welcome their thoughts on implementing your suggestions.

Now that the team is well underway, we'll be faster at responding to new issues and comments -- sorry again for the wait.

brainwane commented 6 years ago

(I will say that I personally do look for projects under OSI-approved licenses, but I acknowledge that I may be a weirdo. :) )

brainwane commented 6 years ago

Here's my take on this:

Figuring out how to best display and help people select from the 650+ trove classifiers while filtering search results is hard. I recognize that there are good reasons for keeping things alphabetical within, for instance, the Natural Language section and Intended Audience, but also that there are good reasons to arrange by popularity in, for instance, the Operating System sort or the Framework sort, and it would make a lot of sense to me to bring Python and its subcategories to the top of the Programming Language sort (to help people filter by support for particular Python versions).

I'm sure https://pypi.org/search/ will see a lot more permutation as @nlhkabu does more user testing.

@berkerpeksag specified the current ordering of categories in 7da236d0f78aebd598f3398b25641a4c523b6255 as:

+SEARCH_FILTER_ORDER = (
+    "Programming Language",
+    "License",
+    "Framework",
+    "Topic",
+    "Intended Audience",
+    "Environment",
+    "Operating System",
+    "Natural Language",
+    "Development Status",
+)

@berkerpeksag I want to know how strongly you feel about this particular ordering. My inclination would be (and I know there's a risk of bikeshedding here): let's rearrange it as follows, based on my rough understanding of how useful these classifiers currently are:

"Framework", "Development Status" "Topic", "Intended Audience", "Programming Language", "License", "Operating System", "Environment", "Natural Language"

berkerpeksag commented 6 years ago

@brainwane your suggestion sounds good to me, thanks. For reference, I took the original ordering from https://github.com/pypa/warehouse/issues/1298#issuecomment-229862426 and https://github.com/pypa/warehouse/issues/1298#issuecomment-229932304.

berkerpeksag commented 6 years ago

@brainwane I would put "Programming Language" to top if "Python" was the first item in the programming language list. Currently, it's way down in the list and it's not very useful. Perhaps we should move Python to top? I just implemented my suggestion via Chrome Devtools:

screenshot from 2018-03-29 17 12 01

brainwane commented 6 years ago

@berkerpeksag Yeah, I agree, I think we should move Python to the top of the classifier list within the "Programming Languages" category. I like your mockup. Would you open a new issue for that? I think a new issue for each specific ordering change in the classifier categories would help me get volunteers to do them. :)