pypi / warehouse

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

Project detail statistics: support multiple statistics providers #12789

Closed jayaddison closed 1 month ago

jayaddison commented 1 year ago

What's the problem this feature will solve? The project detail page displays release-related statistics which can be useful for consumers who would like to gauge project popularity and community size.

Currently, GitHub is the sole supported statistics provider, but there are a number of other source code forges that host FOSS projects and provide statistical information about them.

image

Describe the solution you'd like Extend the stats URL detection logic to support multiple source control forges.

Additional context Different forges are likely to use different naming terminology for their statistics; PyPi could choose to decide upon a standard naming format, and may omit statistical fields from display if they are not relevant or available from a provider.

Each additional provider would likely require an associated connect-src entry for the frontend application's content security policy.

This repository's test data file (dev/example.sql.xz) could provide a way to help figure out potential providers to support.

Relates to #4384.

jayaddison commented 1 year ago

Also worth considering: it's not a great idea to make too many assumptions about the bandwidth and resource capacity of statistics providers.

Although most of the major providers are likely well-resourced, PyPI itself may receive significant inbound traffic, and since subsequent outbound requests are made from the frontend application -- by geographically disparate users -- it could be challenging for providers to filter that traffic.

di commented 1 month ago

Fixed in #15931.

jayaddison commented 3 weeks ago

Nice! Thank you, @nE0sIghT!