3.0 release notes added.
Cluster: added signature + version in bus packets.
Cluster: discard bus messages with version != 0.
Cluster: signature changed to "RCmb" (Redis Cluster message bus).

Sounds better after all.
Cluster: don't propagate PUBLISH two times.

PUBLISH both published messages via Cluster bus and replication when
cluster was enabled, resulting in duplicated message in the slave.
Cluster: clusterReadHandler() fixed to work with new message header.
Cluster: redis-trib del-node variable typo fixed.
Cluster: replica migration should only work for masters serving slots.
Cluster: clear the FAIL status for masters without slots.

Masters without slots don't participate to the cluster but just do
redirections, no need to take them in FAIL state if they are back
reachable.
Cluster: fixed inverted arguments in logging function call.
Cluster: redis-trib, more info about open slots error.
Cluster: update configEpoch after manually messing with slots.
Cluster: ignore slot config changes if we are importing it.
Cluster: don't update slave's master if we don't know it.

There is no way we can update the slave's node->slaveof pointer if we
don't know the master (no node with such an ID in our tables).
redis-trib: log event after we have reference to 'master'.
Cluster: redis-trib fix: cover new case of open slot.

The case is the trivial one a single node claiming the slot as
migrating, without nodes claiming it as importing.
Cluster: remove debugging xputs from redis-trib.
Cluster: conditions to clear "migrating" on slot for SETSLOT ... NODE changed.

If the slot is manually assigned to another node, clear the migrating
status regardless of the fact it was previously assigned to us or not,
as long as we no longer have keys for this slot.

This avoid a race during slots migration that may leave the slot in
migrating status in the source node, since it received an update message
from the destination node that is already claiming the slot.

This way we are sure that redis-trib at the end of the slot migration is
always able to close the slot correctly.
Cluster: fsync at every SETSLOT command puts too pressure on disks.

During slots migration redis-trib can send a number of SETSLOT commands.
Fsyncing every time is a bit too much in production as verified
empirically.

To make sure configs are fsynced on all nodes after a resharding
redis-trib may send something like CLUSTER CONFSYNC.

In this case fsyncs were not providing too much value since anyway
processes can crash in the middle of the resharding of an hash slot, and
redis-trib should be able to recover from this condition anyway.
Cluster: on resharding upgrade version of receiving node.

The node receiving the hash slot needs to have a version that wins over
the other versions in order to force the ownership of the slot.

However the current code is far from perfect since a failover can happen
during the manual resharding. The fix is a work in progress but the
bottom line is that the new version must either be voted as usually,
set by redis-trib manually after it makes sure can't be used by other
nodes, or reserved configEpochs could be used for manual operations (for
example odd versions could be never used by slaves and are always used
by CLUSTER SETSLOT NODE).