ga4gh/ga4gh-schemas

Add a test to ensure tag numbers aren't reused

Opened this issue · 0 comments

Tag numbers are how protocol buffers allows field names to be reused. You don't have to worry about your field being named name as a string today and an int tomorrow, since the tag number is how the software resolves what type to infer.This allows the protocol to have some future compatibility, in that as long as a tag number is never reused, clients should be able to properly serialize and deserialize messages with whatever field names we use.

Providing a test that ensures tag numbers were not reused compared to the current state of master would help the situation greatly. To give us the confidence that this has never happened, we might provide a history somewhere in the tree, easily accessible, that logs all the previously used tag numbers by message.