Syncthing v0.12.0-beta2

Syncthing v0.12.0 isn’t released yet, but these notes are valid for the development builds and betas in the meantime and give an overview of what to expect from the actual release.

Upgrade Notes

:bangbang: Both the discovery and the sync protocol has changed from v0.11. Devices running v0.12 will not discover or successfully connect to devices running v0.11.

:bangbang: If you run a private discovery server, you must upgrade it to the v0.12 release. The protocol and port number is different, so old and new discovery servers can coexist on the same machine and serve their respective clients.

:bangbang: The API endpoint /rest/system/discovery has been removed for POST requests.

:bangbang: The default list of discovery servers is no longer explicitly in the configuration - instead the configuration entry “default” represents the full set of default discovery servers. If you need to edit this default set, watch the startup messages for a full list of used servers and edit to suit.

There are probably more changes to come. Do not run this release unless you’re willing to participate in experimenting.

Changes since beta1

  • Relaxed folder IDs
  • Bugfixes

Important Changes and Improvements

:heavy_check_mark: Connection Relaying

Syncthing now has the ability to connect two devices via a relay when there exists no direct path between them (firewalls on both ends). There is a default set of relays that is used out of the box, although private relays can be used and relaying can of course be disabled. Relayed connections are encrypted in the usual manner, end to end, so the relay has no more insight into the connection than any other random eavesdropper on the Internet.

(Thanks @AudriusButkevicius)

:books: Documentation to update

  • Specs (changes the discovery protocol)
  • Specs (the new relay protocol)
  • “Configuration” article, adds new config options, new format on some config values
  • relaysrv needs docs

:banana: Also,

  • make a release of relaysrv.

:heavy_check_mark: Device Discovery over HTTPS

The global discovery protocol has been rewritten to use HTTPS over the standard port 443. A number of geographically redundant discovery servers have been deployed.

(Thanks @calmh)

:books: Documentation to update

  • Specs (the new discovery protocol)
  • “Configuration” article, different meaning and format of globalAnnounceServer entries.

Minor Changes and Improvements

:heavy_check_mark: Scanning Progress Indicator

Folders now indicate scanning progress in percent in the same way as while syncing.

:books: Documentation to update

  • “GUI overview” article

(Thanks @AudriusButkevicius)

:heavy_check_mark: Device Pause/Resume

(Thanks @calmh)

:books: Documentation to update

  • “GUI overview” article

(Thanks @calmh)

:heavy_check_mark: Signed Automatic Upgrades

Automatic upgrades are now cryptographically signed and verified before an update is applied. This also goes for manual upgrades à la syncthing -upgrade-from http://.../syncthing.tar.gz, which is thus a safe way to upgrade to a package of unknown provenance… There is a new CLI utility stsigtool to manually generate and verify signatures. There is a documentation article on the subject.

:heavy_check_mark: Extended Usage Reporting

Syncthing now reports what features are in use (such as Introducer, Master Folder, etc), as well as wether default or custom discovery and relay servers are used, and the number of CPUs in the system. This provides us with guidance about where to focus efforts. As this is a change from the previously reported data set, any previous acceptance of anonymous usage reporting is automatically revoked and the question pose again some time after installation. The exact details of the new report values are here and here.

:heavy_check_mark: Relaxed Folder ID Restrictions

Folder IDs used to be limited to a strict subset of ASCII with very few non-word characters, and maximum 64 characters. Ideally, we should have separation between the folder ID and it’s label, but we’re not there yet. However, in v0.12 you can use whatever characters you like, up to 256 bytes. This means accents, special characters, Cyrillic or Asian scripts, and so on.


Things That May Yet Be Included

:grey_question: Unkept Ignores, Default Set of Ignores

TBD

:grey_question: Temporary Indexes

TBD

2 Likes

Apparently I forgot to check the “prerelease” checkbox on this release, so v0.11 installations have popped up the “Upgrade?” thingy, although happily didn’t do so automatically as it’s a new major version.

If you unwittingly upgraded to the beta, sorry about that. Downgrading should work fine; you’ll need to copy back the config.xml.v11 backup to config.xml in the config directory, unfortunately. :confused:

What does that mean? Without a proper explanation of these changes seperate release note pages for each beta release are IMO useless. Since it is mostly copy&paste it is hard to figure out the differences as well.

edit: crossed out, due to enormous foolishness

Relaxed Folder IDs:

Yeah, I could git log --grep "folder label" -p myself; but why invest time in writing release notes without explaining what the changes do? That’s not helpful for most beta testers, since they are forced to have a look at the commit log anyway.

edit: crossed out, due to enormous foolishness

I did describe it. It’s at the end of the release notes as it’s a minor change. Why invest time writing release notes if no-one reads them… ;(

The “changes since beta1” at the top is a quick guide for how to read the release notes in this beta, since most of it is indeed the same… This is for people coming from another beta.

The rest of the release notes is for people joining the beta at this stage, hence the full “copy & paste”, and also for proof reading as the release notes are also in beta… Linking to it from Github would be pointless otherwise.

Wow, that is embarassing … :persevere: I’m so sorry.

The problem is not that I don’t read docs; the problem was that I didn’t realize that there is something new in the end. I just tried to calculate the “diff” in my mind and I just saw the first part. :facepalm:

1 Like

No worries man, I was just biting back in kind. :smiley: :wink:

1 Like

@calmh are there any plans to update protocol specifications for alternate clients?

It’s still in limbo, I am trying to make some changes happen before we release 0.12, so then we will know how it will look like.

But yes, I fully intend for the protocol specs to become in sync with reality once reality stabilizes. :wink: