contribution guidelines about wire compatibility (#26619)

This commit is contained in:
Johan Andrén 2019-03-28 11:54:39 +01:00 committed by GitHub
parent 7d58a1a2b5
commit 777173f988
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -222,6 +222,22 @@ Situations when it may be fine to ignore a MiMa issued warning include:
The binary compatibility of the current changes can be checked by running `sbt +mimaReportBinaryIssues`.
## Wire compatibility
Changes to the binary protocol of remoting, cluster and the cluster tools require great care so that it is possible
to do rolling upgrades. Note that this may include older nodes communicating with a newer node so compatibility
may have to be both ways.
Since during a rolling upgrade nodes producing the 'new' format and nodes producing the 'old' format coexist, a change can require a two-release process:
the first change is to add a new binary format but still use the old. A second step then starts actually emitting the
new wire format. This ensures users can complete a rolling upgrade first to the intermediate version and then another
rolling upgrade to the next version.
All wire protocol changes that may concern rolling upgrades should be documented in the
[Rolling Update Changelog](https://doc.akka.io/docs/akka/current/project/rolling-update.html#change-log)
(found in akka-docs/src/main/paradox/project/rolling-update.md)
## Pull request requirements
For a pull request to be considered at all it has to meet these requirements: