Skip to content

Commit

Permalink
Clarify how additive changes are handled (#455)
Browse files Browse the repository at this point in the history
This PR explicitly lists the additive changes allowed and adds
a requirement that such additive changes must be accompanied by
interoperability explanation when necessary.

This is a subset of #432
that contains other guarantees that we did not yet agree to.
I believe this particular subset is necessary regardless of
what we decide about #432.
  • Loading branch information
tigrannajaryan authored Apr 20, 2023
1 parent 7aa439c commit 395c842
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,19 @@ The following changes are allowed:
Note that none of the above allowed changes affects the binary wire representation or the
JSON wire representation.

The following additive changes are allowed:

- Adding new fields to existing messages.
- Adding new messages or enums.
- Adding new choices to existing enums.
- Adding new choices to existing oneof fields.
- Adding new services.
- Adding new methods to existing services.

All the additive changes above must be accompanied by an explanation about how
new and old senders and receivers that implement the version of the protocol
before and after the change interoperate.

No guarantees are provided whatsoever about the stability of the code that
is generated from the .proto files by any particular code generator.

Expand Down

0 comments on commit 395c842

Please sign in to comment.