
On Wed, 5 Jul 2023 at 10:26, Christopher Barker <pythonchb@gmail.com> wrote:
The :problem", as I see it.
- The Python standard library is not, and will never be fully comprehensive -- most projects require *some* third party packages. - There are a LOT of packages available on PyPi -- with a very wide range of usefulness, quality and maintenance -- everything from widely used packages with a huge community (e.g. numpy) to packages that are release 0.0.1, and never seen an update, and may not even work.
Remember though that this problem is also Python's strength here. The standard library does not NEED to be comprehensive, and publishing on PyPI is deliberately easy. The barrier to entry for the stdlib is high; the barrier to entry for PyPI is low.
1) A "clearing house" of package reviews, for lack of a better word -- a single web site that would point to various resources on the internet -- blog posts, etc, that would help people select packages. So one might go to the "JSON: section, and find links to some of the comparisons of JSON parsers, to help you choose. The authors of this site could even solicit folks to write reviews, etc that they could then point to. Chris A: this is my interpretation of your decentralized idea -- please do correct me if I got it wrong.
That is a correct interpretation of what I said, yes. I'll take it a bit further though and add that this "single web site" would be ideally editable by multiple people. In fact, Python has a place for that sort of thing: https://wiki.python.org/moin/FrontPage Imagine a page like https://wiki.python.org/moin/Python_Package_Recommendations (doesn't currently exist) that would be managed the same way as other recommendation pages like https://wiki.python.org/moin/IntroductoryBooks - anyone can add a link to their blog post about packages, and if they've focused on a specific category (eg "web frameworks"), that can be right there in the wiki page so people can search for it. That way, it's decentralized for editing, but has a central "hub" that people can easily find.
2) A Python package review site. This could be setup and managed with, e.g. a gitHub repo, so that there could be a small number of editors, but anyone could contribute a review via PR. The ultimiate goal would be reviews/recommendations of all the major package categories on PyPi. If well structured and searchable, this could be very useful. - This was proposed by someone on the previous thread -- again, correct me if I'm wrong.
I suspect this would end up being broadly equivalent to the first option, but with more effort by a core group of people (or a single maintainer), and in return, would have a more consistent look and feel.
3) A rating system built into PyPi -- This could be a combination of two things: A - Automated analysis -- download stats, dependency stats, release frequency, etc, etc, etc. B - Community ratings -- upvotes. stars, whatever.
If done well, that could be very useful -- search on PyPi listed by rating. However -- :done well" ios a huge challenge -- I don't think there's a way to do the automated system right, and community scoring can be abused pretty easily. But maybe folks smarter than me could make it work with one or both of these approaches.
Huge challenge indeed. Possibly insurmountable. Popularity contests (purely based on download stats and such) have their value, but do not tell you what's best, only what's the most used. Community ratings, as you say, can be gamed all too easily, plus they STILL tend to favour those that are heavily used rather than niche things that are potentially better. Neither of them adequately answers questions like "which is right *for this use-case*", which will leave a lot of packages out in the cold.
4) A self contained repository of packages that you could point pip to -- it would contain only the packages that had met some sort of "vetting" criteria. In theory, anyone could run it, but a stamp of approval from the PSF would make it far more acceptable to people. This would be a LOT of work to get set up, and still a lot of work to maintain.
Definitely possible; how would this compare to Conda? What about OS package managers like the Debian repositories?
Personally, I think (4) is the best end result, but probably the most work as well[*], so ???
(1) and (2) have the advantage that they could be useful even without being comprehensive -- tthey's need to have some critical mass to get any traction, but maybe not THAT much.
Right, and notably, they can be useful without covering every topic. You could write a blog post about database ORM packages, and that's useful right there, without worrying about whether there's any review of internet protocol packages. Hmm. Once that sort of collection gets some traction, someone might say "Hey, anyone know about grammar parsers?" and add that to a "help wanted" list. That could be useful inspiration.
Anyway, I'd love to hear your thoughts on these ideas (or others?) - both technical and social.
And of course, if anyone wants to join forces on getting something going.
Not many forces needed, but if you want to go with the Python Wiki, it might require a wiki admin to create the initial page, in which case I'd be happy to do that. ChrisA