Christian Couder <christian.couder@xxxxxxxxx> writes: > By the way, if we put the OS information in the "agent" capability, > how do we separate it from the existing "package/version" content and > make it easy to parse? Do NOT parse, period. If three "things" that talk the Git protocol on the other end of the connection gives "Linux git/2.48.0", and "macOS libgit2/1.9.0", and "Windows git/2.47.1" as their (enhanced) "agent" strings, there is no "ah, this one is 1.9.0 which way older than 2.47.1 so it must be missing features X and Y" the users of the information are allowed to infer. Just take it as a single opaque string, and group identical ones. In the above scenario, we found three different kinds now. Maybe we'll accumulate the counts and notice that there are N times as many connections whose agent string begins with "Windows" as "Linux" and "macOS" combined or something. That would be an offline analysis, and forcing users to do the stats offline would reduce the temptation to use it for purposes other than its intended one. You may find "ImNotTellingYou" and may wonder what OS the user is really using, but they do not want to tell you, so you honor their wish. > I don't see a good solution because > GIT_USER_AGENT could be used, and the config option to not show the OS > name could be used too. That is a good privacy measure. > Also we don't know what could be in the "version" part. The doc says > that the agent part is typically of the form "package/version" but > doesn't require it. Exactly. I would think it is a feature, and the way to treat the string in line with the philosophy behind that feature is to take it as a single opaque thing.