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

Provide faceted search for users to filter for recently released projects #4319

Open
guettli opened this issue Jul 19, 2018 · 8 comments
Open
Labels
feature request javascript requires change to JavaScript files needs discussion a product management/policy issue maintainers and users should discuss search Elasticsearch, search filters, and so on UX/UI design, user experience, user interface

Comments

@guettli
Copy link

guettli commented Jul 19, 2018

What's the problem this feature will solve?

I would like to save time for other users who search for a matching library.

Describe the solution you'd like

A simple solution would be, that users can leave a comment on the package site.

Additional context

concrete example: This package is outdated (six years old) https://pypi.org/project/sapnwrfc/

The strategy "leaving a comment" is one solution. An other would be to warn the user if a library was not updated since N years. I think a sane default for N would be 4. If a packages was not updated since four years it looks outdated.

What do you think?

@dstufft
Copy link
Member

dstufft commented Jul 19, 2018

PyPI had comments at one time, and they were pretty much universally hated by all package authors. They represented yet another mechanism that people would expect feedback, help, etc on (and one that is only sort of optional for authors). In addition, having comments on a website, in my opinion, comes with a moral and ethical responsibility to actively moderate and monitor the content of those comments to watch for harassment and abuse, and we simply don't have the ability to dedicate people to doing that.

On the further feature request of automatically marking unmaintained packages, I understand the desire to have such a feature. However, I worry about the ramifications of providing it, for a few reasons:

  • While PyPI isn't exactly mandated, it also isn't exactly optional and it is the "central" location for discovering projects. Thus it is most valuable as a sort of neutral ground, where people can locate projects with little to no "editorializing".
  • Some projects don't need more releases, some of them are simply for small utilities, and are effectively feature complete and unless someone discovers a bug, there's nothing more to be done on them.
  • Picking a threshold is likely going to be a fairly contentious issue, as people will be incentivized to set it to just outside their own personal release cadence.
  • Especially recommending another package is going to be very contentious, as many times there will be multiple contenders for an alternative, and if you don't recommend the one that someone thinks you should, there are going to be folks angry.

However, the flip side is that some projects are legitimately just abandoned and are no longer maintained, and it would be very useful information for people selecting what project to depend on.

One possible way I could see this implemented, is to provide a mechanism in the search history for people to filter results to only show results that have had a release in some specific time frame. That makes it easy for people to look for projects that have had a release in whatever window they personally deem acceptable, without applying some kind of value judgement on the individual projects people upload to PyPI.

@dstufft dstufft changed the title I would like to leave a comment "This package looks outdated, package fooo is still maintained" Provide mechanism for users to deal with the abandoned/unmaintained projects problem Jul 19, 2018
@guettli
Copy link
Author

guettli commented Jul 20, 2018

I have a pragmatic solution: Allow comments by default. For package author who hate them (and those which are more relaxed and just don't want them) give them the ability to disable comments.

@nlhkabu
Copy link
Contributor

nlhkabu commented Jul 26, 2018

Thanks for opening this ticket @guettli.

I want to reiterate what Donald said:

(we have) a moral and ethical responsibility to actively moderate and monitor the content of those comments to watch for harassment and abuse, and we simply don't have the ability to dedicate people to doing that

Allowing comments by default would essentially open pandoras box - something we are not equipped to deal with.

Also, we can't limit commentators to only discuss whether a project is outdated/dead. There is a good chance that allowing comments would also lead to "reviews" and ratings of packages - something we have decided to avoid (see #991).

That said, I agree with you that it would be nice to expose this information in some way in the UI and support Donald's suggestion of using release time frame as a search parameter.

@nlhkabu nlhkabu added feature request search Elasticsearch, search filters, and so on needs discussion a product management/policy issue maintainers and users should discuss labels Jul 26, 2018
@zanderle
Copy link

That said, I agree with you that it would be nice to expose this information in some way in the UI and support Donald's suggestion of using release time frame as a search parameter.

There's already "Order by Date last updated". That seems to be very close to what you're looking for in this example? Or do you think an actual filter is something that would be required?

@zanderle
Copy link

After talking to @nlhkabu we decided to add the filtering next to the classifier filters. So I'll add that.

@zanderle
Copy link

zanderle commented Jul 31, 2018

Ok, I have a quick POC ready. How do you want to proceed @nlhkabu ?

Here's a quick preview:

screen shot 2018-07-31 at 23 12 17

And here's my fork: https://github.com/zanderle/warehouse

Right now, this will simply add the filter of created__gte=<today - number of days>. This can obviously be improved (both the logic behind this, as well as some of the user-facing texts when it comes to searching), but should be sufficient to determine whether it's a viable solution in the first place.

@brainwane brainwane changed the title Provide mechanism for users to deal with the abandoned/unmaintained projects problem Provide faceted search for users to filter for recently released projects Jun 20, 2019
@brainwane
Copy link
Contributor

@zanderle I'm so sorry for the delay in response on this! Could you rebase your branch against master and make a work-in-progress pull request to make it easier for us to test & discuss it? Thank you so much for working on this! And you might want to take a look at #1971 to see how people might want to generalize this approach.

@brainwane brainwane added javascript requires change to JavaScript files UX/UI design, user experience, user interface labels Jun 20, 2019
@zanderle
Copy link

zanderle commented Jul 5, 2019

@brainwane sure! It might take me a few days though. It's been so long since I implemented this POC... 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request javascript requires change to JavaScript files needs discussion a product management/policy issue maintainers and users should discuss search Elasticsearch, search filters, and so on UX/UI design, user experience, user interface
Projects
None yet
Development

No branches or pull requests

5 participants