mozilla / experimenter

A web application for managing user experiments for Mozilla Firefox.
https://experimenter.services.mozilla.com
Mozilla Public License 2.0
114 stars 179 forks source link

Report Mozilla Nimbus Shared package version in telemetry #6938

Open data-sync-user opened 2 years ago

data-sync-user commented 2 years ago

There are 6 mobile clients currently supported by Nimbus:

https://github.com/mozilla/experimenter/blob/main/app/experimenter/experiments/constants/nimbus.py#L49-L128

and reasoning about which version of the Nimbus Shared Schema defined here:

https://github.com/mozilla/nimbus-shared/blob/main/types/experiments.ts

is supported by a given version of a given mobile client can be difficult.

We need to track which version of which client supports some given version of the schema to know which schema to emit from Experimenter as the schema changes over time, so one way to approach that could be to emit the combination of

(app identifier, app channel, app version, nimbus shared schema package version)

in each clients telemetry and then we could know

Can we add something to the mobile nimbus client that

┆Issue is synchronized with this Jira Task

data-sync-user commented 2 years ago

➤ Tarik Eshaq commented:

Drive-by thought as I was looking at the nimbus-shared issues and I was reminded of https://github.com/mozilla/nimbus-shared/issues/136 ( https://github.com/mozilla/nimbus-shared/issues/136|smart-link ) Ryan’s comment there might be a sensible way for this

If we can get a rust crate that releases with the exact same version as the nimbus-shared package, and have the nimbus SDK consume it, the SDK would then be aware of the nimbus-shared crate version it was compiled against using something like https://crates.io/crates/cargo_metadata ( https://crates.io/crates/cargo_metadata )

There might be a better way to do this, but thought I’d jot this down

jaredlockhart commented 1 year ago

Bump