-
Notifications
You must be signed in to change notification settings - Fork 34
Description
It's really tricky to get accurate usage or download data for given package versions, platforms, etc, that can inform decision making (e.g. dropping osx-64).
Different conda clients are using different user agent strings for their repodata and package downloads so, even if we could query those, we could only do so for conda requests. Other tools like mamba, pixi or rattler-build are not providing as much information. We would also need a mechanism for specific contexts to extend the user agent with custom values (e.g. conda-forge might want to flag their internal CI jobs so they don't add noise to the real user data).
For example, in conda, the lack of a standard way to do so results in runtime patches like this.
I propose two things:
- Standardize which contents must be present in every user agent
- Recommend a mechanism to extend it with added value pairs (similar to
pip's custom JSON user agent strings)
References:
- Are downloads from conda-forge's CI being counted? Can they be avoided (or counted separately)? anaconda/anaconda-package-data#64
- Usage numbers (per channel) of current/old client versions of conda etc. (from user-agent) infrastructure#1018
- https://discuss.python.org/t/pre-pep-user-agent-schema-for-http-requests-against-remote-package-indices/104006