Automatic upgrades for major releases

Is it possible to enable automatic upgrades for major releases?
As of now it seems like Syncthing will automatically upgrade to minor releases (0.13.9->0.13.10) when the corresponding box is ticked, but not major releases (0.13.10->0.14.0). I find this rather annoying as I don’t have remote access to one of my devices, and physically need to travel there just to click the “Upgrade” button…

If not possible, could this be added? As a second option in settings maybe.

Just setup remote UI/SSH access?

It’s a corporate computer behind firewall(s). I have tried reaching it externally, without success.

Taking in account the new extensible protocol implementation in 0.14, there may be less reason to prevent auto-updates for minor versions in future releases.

As long as upgrading won’t break backward compatibility with older clients on the cluster, I don’t see any real reason to preventing it.

Indeed. As is, we won’t leave 0.14.x until a protocol break is necessary for some reason or we hit 1.0. The alternative if we felt that we wanted a 0.15, 0.16 to show of new features would be to enable auto upgrades to minor versions.

So, in short is not possible although a minor issue as we will stay on 0.14.x until 1.0?

I see two sources for incompatibilities

  • protocol changes
  • REST API changes

When these two subsystems are versioned, the list of upgrades could be restricted to only compatible upgrades and these upgrades should be always performed regardless of the actual syncthing version.

Only upgrades with an increased protocol and/or REST API version are considered as incompatible and should require a manual upgrade by default. It could be even made configurable if you want to keep only the protocol compatible or also the REST API or do not want to care about compatibility at all.

I’m not saying we’ll necessarily stay on 0.14 forever, but the point of the 0.14 change was to make the protocol future extensible so I hope for a long and fruitful 0.14 without compatibility breaks.

Depending on the necessary changes to the REST interface we would make it a 0.15 or just coordinate with the major REST consumers.

If the protocol seems stable enough we might change policy and make 0.15 etc auto upgradable releases too.

1 Like