-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better data format versioning (aka data_format_version) #423
Labels
effort/L
Large effort
enhancement
New feature or request
ooni/probe-engine
Issues related to github.com/ooni/probe-engine
ooni/spec
Issues related to github.com/ooni/spec
priority/high
High priority
Milestone
Comments
bassosimone
added
enhancement
New feature or request
priority/high
High priority
effort/L
Large effort
ooni/spec
Issues related to github.com/ooni/spec
ooni/probe-engine
Issues related to github.com/ooni/probe-engine
labels
Mar 30, 2020
I'm summarizing here some principles that were discussed:
|
bassosimone
changed the title
Better version number for data format
Better data format versioning (data_format_version and beyond)
Mar 30, 2020
bassosimone
changed the title
Better data format versioning (data_format_version and beyond)
Better data format versioning (aka data_format_version)
Mar 30, 2020
cc: @anadahz with whom I recently discussed this topic |
bassosimone
added a commit
that referenced
this issue
Apr 1, 2020
This is part of the plan discussed with @FedericoCeratto here #423 I am anticipating this part of the change so we don't release a probe-cli that uses such annotation. More changes to follow, after probe-engine 0.9.0, but I am not going to guarantee 0.10.0 will happen before stable cli.
bassosimone
added a commit
that referenced
this issue
Apr 1, 2020
This is part of the plan discussed with @FedericoCeratto here #423 I am anticipating this part of the change so we don't release a probe-cli that uses such annotation. More changes to follow, after probe-engine 0.9.0, but I am not going to guarantee 0.10.0 will happen before stable cli.
bassosimone
added a commit
that referenced
this issue
Apr 6, 2020
bassosimone
added a commit
that referenced
this issue
Apr 6, 2020
bassosimone
added a commit
that referenced
this issue
Apr 6, 2020
bassosimone
added a commit
that referenced
this issue
Apr 6, 2020
bassosimone
added a commit
to ooni/spec
that referenced
this issue
Apr 6, 2020
bassosimone
added a commit
to ooni/spec
that referenced
this issue
Apr 6, 2020
This is done. I will pin probe-cli to the master of probe-engine so we have the most recent data format version, which is not strictly necessary but useful to have. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
effort/L
Large effort
enhancement
New feature or request
ooni/probe-engine
Issues related to github.com/ooni/probe-engine
ooni/spec
Issues related to github.com/ooni/spec
priority/high
High priority
Based on a conversation with @FedericoCeratto, I propose that we always keep the
data_format_version
to be0.2.0
. We need to reckon that thedata_format_version
needs to version only the top-level keys, otherwise it quickly becomes madness.Overall objective We want to declare the top-level data format and we want to be able to experiment with new "sub" data formats (e.g. network events) especially before we're blessed a stable "sub" data format. So we want to be able to declare that the outside envelope is reasonably stable and we want the inside of some specific subkey to vary until we're okay. Consider, for example, how the version number of WebSockets varied a bunch of times before settling into a stable version.
Because I blessed a bunch of version numbers already and submitted measurements using them sometimes, we probably need to use
0.5.0
as the next data format version. Since numbers are just numbers, I believe this is fine. In the current spec there is a long explanation describing differences in thedata_format_version
, which I'll shorten to explain that the next version MUST be0.5.0
and that the numbers in between were consumed by me doing some experiments.To properly roll back, I need to make sure that probe-engine emits all the top-level fields we are supposed to emit with
0.2.0
. I also need to modify the spec to represent the status quo at0.2.0
and specifically make sure we mention theresolver_ip
field as optional.To properly handle what happens inside of
test_keys
we will document into the spec that a probe should include into the top-level keys the following data structure:where we provide on an optional basis the version of the extensions we use inside of the test keys. I should also document what one is expected to see if there are no explicit extensions (which is basically the statu quo as of Measurement Kit v0.9.0). Then I should make sure that for each extended data format, e.g., the HTTP template, we spell out clearly what is its version. Finally, I should make sure that probe-engine emits such structure for each experiment.
Each experiment will be responsible of filling the
extensions
field with the extensions it is currently including into the measurement itself. Versioning will be put inside of the spec.Part of this is important to do: we don't want production probes to emit experimental data formats, while the extensions part could maybe wait? (But I don't see a reason for that)
The text was updated successfully, but these errors were encountered: