syncthing/syncthing — pull request #1146 by calmh (2014-12-29 11:32:52+00:00)
Title: Make auto upgrade careful about breaking changes (fixes #1047)

This introduces the difference between older/newer and *majorly* older/newer in the version comparison. Two versions are "majorly different" if they differ in the first digit, or if the first digit is zero and they differ in the second digit. This matches the semver defintion of where to expect breaking changes, with the modification of what is practice in the current 0.x series. Arguably every 0.x release might break anything, but still...

The auto upgrade routine will now only perform automatic upgrades to non-majorly newer releases. This avoids a cluster breaking apart when a few devices do auto upgrades and others don't.

The GUI will still prompt for the upgrade, the `-upgrade` command works the same, etc.