-
Notifications
You must be signed in to change notification settings - Fork 8
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
Schema: harmonize mobility messages in 2.0.0 versions #206
base: master
Are you sure you want to change the base?
Schema: harmonize mobility messages in 2.0.0 versions #206
Conversation
For now SDK and application do not allow to use a specific version of a schema, and then are considered using the last version by default @ymorin-orange @mathieu1fb any opinion on this ? |
schema/cam/cam_schema_2-0-0.json
Outdated
@@ -31,7 +31,7 @@ | |||
"version": { | |||
"type": "string", | |||
"description": "json message format version", | |||
"const": "1.99.99" | |||
"const": "2.0.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to go through 1.99.99, just put 2.0.0 directly in the new schema, you can use this commit to fixup the original one introducing 2_0_0 file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In fact, seen with Yann, it's a way to have only the right version number (2.0.0 in this case) in the very last commit including all the updates. If someone pull an "intermediate" commit, before the last one, he won't have the right version in the schema but a version with .99 indicating it's a developing version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, this avoids cases where two files, at two different revisions, have the same version:
- if we add/delete/rename fields while still keeping the old version number, then we have multiple schemas with the old version, and it is not easy to find which is the correct one;
- if we first change the version, then the same is true, but with the new version.
We can't really rely on the filenames, because filenames can change; we can only rely on the version in the schemas themselves. Thus, it is important to denote that a schema is not stable, and that it should not be used; this is the role of the .99 version, which clearly inidicates that.
When discussing this with @Hugues360, I subtly hinted that we should have documentation that explains our process at maintaining those schmas. Way too subtly, maybe... ;-) More generally, though, we should have a documentation that explains the versioning scheme for each component (java, python, rust, schemas).
(Note: I would be surprised if our python apps would have no issue with newer schemas as well... Although they mostly creates them and do not pasrse them for now, so the issue would be largely mitigated already (Famous Last Words™...)) |
@@ -26,7 +26,7 @@ | |||
"description": "json message format version", | |||
"const": "1.99.99" | |||
}, | |||
"instance_id": { | |||
"source_uuid": { | |||
"description": "unique id all other the world for a server", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you also fix this error (note: it exists in many schemas): s/all other/all over/
, please?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, fixed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think that Yann meant to replace instance_id
by source_uuid
as they do not represent the same information. He was referring to the spelling mistakes in the description.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think that Yann meant to replace
instance_id
bysource_uuid
as they do not represent the same information. He was referring to the spelling mistakes in the description.
- Indeed, I was speaking about the typo, and Hugues did fix it in the new iteration.
- We still want to harmonise the top-level fields so that all messages still contain the same "header":
message_type
: the type of message this isversion
: the version of the schema that appliestimestamp
: the UNIX timestamp the message was created atsource_uuid
: the universally unique ID of the source that emitted the messageorigin
: the (type of) entity that emitted the messagemessage
: the JSON-translation of the ETSI message
So far, only the schema for information message defines an instance_id
. If that is not the same thing as source_uuid
, then we indeed must add source_uuid
and keep instance_id
.
Note that CAM, for example, has a message.station_id
. Is that the same thing as the instance_id
from the information message, or is it yet something else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I understand it, the instance_id
is the ID of a mobility server, but the source_uuid
could be the one of the authority sending the information message, it is not necessarily the same entity.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I understand it, [...] it is not necessarily the same entity.
OK, then we need the two fields. Are they both mandatory, then?
And BTW, is this an ETSI-derived message, or our own invention?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, they are both mandatory, and it is a message of our invention.
1f67ffa
to
da0eeb7
Compare
…directories Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
…tus, neighbourhood, region, srem and ssem messages Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
…mon ones first, alphabetical order) Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
…er required fields Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
…, status, neighbourhood, region, srem and ssem messages Signed-off-by: Hugues Oudeville <hugues.oudeville@orange.com>
da0eeb7
to
3fad2e8
Compare
Fixes: #137