Description
rest_version
is used to convey information about our REST implementation, and we populate it with versions of the dependencies we use in REST. We should either create a static string that we always send in all requests (for example, including the versions of requests
and of auth
, even though eg REST sync and REST async only use a different one of those); or we should include only the versions of the dependencies relevant for a given call (eg requests
for REST sync and auth
for REST async). I would favor the former.
The format of rest_value
should label which libraries the version numbers we're providing apply to. So I propose a format like rest_version="[email protected],[email protected]"
.
Internally, we may want to implement rest_versions
as a dictionary of library name to version string. And then in client_info.py, we can serialize the dictionary into the agreed format, such as the one I propose in the paragraph above. The advantage of this is that each module can independently add the dependencies it relies on, rather than us having to do it in a centralized place. This more moredular and scalable.