Re: [PATCH v3 0/6][Outreachy] Introduce os-version Capability with Configurable Options
From: Usman Akinyemi <hidden>
Date: 2025-01-31 19:46:16
On Fri, Jan 31, 2025 at 10:07 PM Junio C Hamano [off-list ref] wrote:
Christian Couder [off-list ref] writes:quoted
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.
While the current implementation allows user to specify this form of string i.e "ImNotTellingYou", for agent value, it is not mentioned in the docs, I will add in the next iteration.
quoted
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.quoted
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.