CARVIEW |
Navigation Menu
-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Releases: syncthing/syncthing
v2.0.0-rc.23
e8cfc8a
Compare
Major changes in 2.0
-
Database backend switched from LevelDB to SQLite. There is a migration on
first launch which can be lengthy for larger setups. The new database is
easier to understand and maintain and, hopefully, less buggy. -
Deleted items are no longer kept forever in the database, instead they are
forgotten after six months. If your use case require deletes to take
effect after more than a six month delay, set the
--db-delete-retention-interval
command line option or corresponding
environment variable to zero, or a longer time interval of your choosing. -
Modernised command line options parsing. Old single-dash long options are
no longer supported, e.g.-home
must be given as--home
. Some options
have been renamed, others have become subcommands. All serve options are
now also accepted as environment variables. Seesyncthing --help
and
syncthing serve --help
for details. -
Rolling hash detection of shifted data is no longer supported as this
effectively never helped. Instead, scanning and syncing is faster and more
efficient without it. -
A "default folder" is no longer created on first startup.
-
Multiple connections are now used by default between v2 devices. The new
default value is to use three connections: one for index metadata and two
for data exchange. -
The following platforms unfortunately no longer get prebuilt binaries for
download at syncthing.net and on GitHub, due to complexities related to
cross compilation with SQLite:- dragonfly/amd64
- illumos/amd64 and solaris/amd64
- linux/ppc64
- netbsd/*
- openbsd/386 and openbsd/arm
- windows/arm
-
The handling of conflict resolution involving deleted files has changed. A
delete can now be the winning outcome of conflict resolution, resulting in
the deleted file being moved to a conflict copy.
This release is also available as:
-
APT repository: https://apt.syncthing.net/
-
Docker image:
docker.io/syncthing/syncthing:2.0.0-rc.23
orghcr.io/syncthing/syncthing:2.0.0-rc.23
({docker,ghcr}.io/syncthing/syncthing:2
to follow just the major version)
What's Changed
Fixes
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- fix(model): loop-break regression while block copying in puller by @imsodin in #10069
- fix(model): close fd immediately in copier by @imsodin in #10079
- fix(model): use same folder first in copier by @imsodin in #10093
- fix(model): correct bufferpool handling; simplify by @calmh in #10113
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
- fix(syncthing): avoid writing panic log to nil fd by @ardevd in #10154
- fix(fs): check for unsupported error on modern Windows (fixes #10164) by @rasa in #10165
- fix(gui): don't show dial errors for paused devices (fixes #10166) by @marbens-arch in #10167
- fix: track invalid files in LocalFlags to fix global count by @imsodin in #10170
- fix(watchaggregator): properly handle sub-second watch durations (fixes #9927) by @imsodin in #10179
- fix(db): remove invalid member from FileMetadata by @imsodin in #10180
- fix(model): avoid flashing "Sync Waiting" unnecessarily by @calmh in #10181
- fix(protocol): slightly loosen/correct ownership comparison criteria (fixes #9879) by @yparitcher in #10176
- fix(model): don't clobber local flags when receiving index by @calmh in #10190
- fix(beacon, osutil, upnp): fix local discovery send and intf detection on Android by @Catfriend1 in #10196
- fix(pmp, netutil): workaround native code denied to discover gateway ipv4 addr on Android 14+ by @Catfriend1 in #10204
- fix: allow deleted files to win conflict resolution by @calmh in #10207
Features
- feat: add
syncthing debug database-statistics
command by @calmh in #10117 - feat(config): enable multiple connections by default by @calmh in #10151
- feat(config): expose folder and device info as metrics (fixes #9519) by @calmh in #10148
- feat: use Ed25519 keys for sync connections by @calmh in #10162
- feat(gui): add option to limit bandwidth in LAN to Settings (ref #10046) by @tomasz1986 in #10182
- feat(connections, nat): add UDP portmapping/pinhole for QUIC (fixes #7403) by @marbens-arch in #10171
- feat: add debug commands for folder counts and files by @calmh in #10206
Other
- chore: remove abandoned next-gen-gui experiment by @calmh in #10004
- chore: remove weak hashing which does not pull its weight by @calmh in #10005
- chore: switch database engine to sqlite (fixes #9954) by @calmh in #9965
- chore: harmonise command line flags by @calmh in #10007
- chore(db): increase journal limit to 64MiB by @bt90 in #10022
- chore: forget deleted files older than six months (fixes #6284) by @calmh in #10023
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- chore: configurable delete retention interval by @calmh in #10030
- chore(db): fix debug logging by @bt90 in #10033
- chore(db): buffer pulled files for smaller WAL by @calmh in #10036
- chore(db): use one SQLite database per folder by @calmh in #10042
- chore(model): delay starting a pull while there are incoming index updates by @calmh in #10041
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- chore(syncthing): ensure migrated database is closed before exiting by @xjtdy888 in #10076
- chore(db, model): simplify per hash DB lookup in copier by @imsodin in #10080
- chore(model): refactor copier for more flatness by @imsodin in #10094
- build: upgrade setup-zig action by @calmh in #10134
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
- chore: various linter fixes by @calmh in #10157
- build: streamline gathering of facts, checkouts by @calmh in #10158
- build: build both Debian armel and armhf (though they are the same for us) by @calmh in #10159
- build: explicitly trigger build after pushing release tag by @calmh in #10160
- chore(syncthing): ensure response body is closed in upgrade request by @ardevd in #10169
- refactor(syncthing): use named constant for SIGHUP by @ardevd in #10168
- chore(model): remove redundant removal of internal fields in indexsender by @imsodin in #10173
- chore: add migration for remote invalid local flag by @imsodin in #10174
- chore(config): increase max concurrent writes default by @imsodin in #10200
- chore(gui): added spacing between folder name and error message by @ardevd in #10201
- build: unset build ID in generated binaries by @Catfriend1 in #10203
- chore(protocol): minor cleanup of ClusterConfig messages; remove DisableTempIndexes option by @calmh in #10202
New Contributors
- @ardevd made their first contribution in #10154
- @yparitcher made their first contribution in #10176
Full Changelog: v1.29.7...v2.0.0-rc.23
Assets 35
v1.30.0
0945304
Compare
Syncthing 2 is coming
Syncthing version 1.x will soon be replaced by Syncthing version 2.x.
Version 2 brings a new database format and various cleanups, but remains
protocol compatible with Syncthing 1.
More detailed information about Syncthing 2 can be found in the release
notes at https://github.com/syncthing/syncthing/releases.
This release is also available as:
-
APT repository: https://apt.syncthing.net/
-
Docker image:
docker.io/syncthing/syncthing:1.30.0
orghcr.io/syncthing/syncthing:1.30.0
({docker,ghcr}.io/syncthing/syncthing:1
to follow just the major version)
What's Changed
Fixes
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
- fix(syncthing): avoid writing panic log to nil fd by @ardevd in #10154
Features
Other
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
Full Changelog: v1.29.7...v1.30.0
Assets 47
- sha256:3820d5494d80dd840e51dd269f6861dbdc928011fc638c685f3a48b12d130c79112 Bytes
2025-07-01T11:29:12Z - sha256:205ae96deb217619c788208f41d46c5174c6dbf8e8672ef81baeed0089c983569.77 KB
2025-07-01T11:29:12Z - sha256:d6ff99c27dc2163b2651cf9edfabaf69e997905f977ac67792f27c9a4b38139e12.3 KB
2025-07-01T11:29:12Z - sha256:c9c7464eec5a1c5f562eff14b325072b6647c08df27bab4cae50995b7e4e36ed10.3 MB
2025-07-01T11:29:12Z - sha256:583a7fd8ae98528e5c9eae9e2acdfe6864ca8cbbd9328617a9e0f11481b0ad5b9.95 MB
2025-07-01T11:29:12Z - sha256:8c3e6e87d0b8ba1449fd733dec94f6cc34660e29c9ffdf94d64a73c4b001728510.3 MB
2025-07-01T11:29:12Z - sha256:d29d27eca10894f80e6d78dc1d841daad5592d01f7d43e5f8affee93e4067e7d9.87 MB
2025-07-01T11:29:13Z - sha256:2f6fcc229b5525b03b4d5ae07fd5f83eb41c404fe75bc4f07446e46f3ce8f98c9.61 MB
2025-07-01T11:29:13Z - sha256:99426e2d82b540c34c86d7c34c240c652ad816f42f9ed8bbd2985d572f6fe7ac10.2 MB
2025-07-01T11:29:13Z - sha256:b2a2aa177f189c3a9c9a9c0d6dbac60053a7af8122be124b3e8dfbf0c028f26810 MB
2025-07-01T11:29:14Z -
2025-07-01T11:13:26Z -
2025-07-01T11:13:26Z - Loading
v2.0.0-rc.22
c5a29b5
Compare
Major changes in 2.0
-
Database backend switched from LevelDB to SQLite. There is a migration on
first launch which can be lengthy for larger setups. The new database is
easier to understand and maintain and, hopefully, less buggy. -
Deleted items are no longer kept forever in the database, instead they are
forgotten after six months. If your use case require deletes to take
effect after more than a six month delay, set the
--db-delete-retention-interval
command line option or corresponding
environment variable to zero, or a longer time interval of your choosing. -
Modernised command line options parsing. Old single-dash long options are
no longer supported, e.g.-home
must be given as--home
. Some options
have been renamed, others have become subcommands. All serve options are
now also accepted as environment variables. Seesyncthing --help
and
syncthing serve --help
for details. -
Rolling hash detection of shifted data is no longer supported as this
effectively never helped. Instead, scanning and syncing is faster and more
efficient without it. -
A "default folder" is no longer created on first startup.
-
Multiple connections are now used by default between v2 devices. The new
default value is to use three connections: one for index metadata and two
for data exchange. -
The following platforms unfortunately no longer get prebuilt binaries for
download at syncthing.net and on GitHub, due to complexities related to
cross compilation with SQLite:- dragonfly/amd64
- illumos/amd64 and solaris/amd64
- linux/ppc64
- netbsd/*
- openbsd/386 and openbsd/arm
- windows/arm
This release is also available as:
-
APT repository: https://apt.syncthing.net/
-
Docker image:
docker.io/syncthing/syncthing:2.0.0-rc.22
orghcr.io/syncthing/syncthing:2.0.0-rc.22
({docker,ghcr}.io/syncthing/syncthing:2
to follow just the major version)
What's Changed
Fixes
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- fix(model): loop-break regression while block copying in puller by @imsodin in #10069
- fix(model): close fd immediately in copier by @imsodin in #10079
- fix(model): use same folder first in copier by @imsodin in #10093
- fix(model): correct bufferpool handling; simplify by @calmh in #10113
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
- fix(syncthing): avoid writing panic log to nil fd by @ardevd in #10154
- fix(fs): check for unsupported error on modern Windows (fixes #10164) by @rasa in #10165
- fix(gui): don't show dial errors for paused devices (fixes #10166) by @marbens-arch in #10167
- fix: track invalid files in LocalFlags to fix global count by @imsodin in #10170
- fix(watchaggregator): properly handle sub-second watch durations (fixes #9927) by @imsodin in #10179
- fix(db): remove invalid member from FileMetadata by @imsodin in #10180
- fix(model): avoid flashing "Sync Waiting" unnecessarily by @calmh in #10181
- fix(protocol): slightly loosen/correct ownership comparison criteria (fixes #9879) by @yparitcher in #10176
- fix(model): don't clobber local flags when receiving index by @calmh in #10190
Features
- feat: add
syncthing debug database-statistics
command by @calmh in #10117 - feat(config): enable multiple connections by default by @calmh in #10151
- feat(config): expose folder and device info as metrics (fixes #9519) by @calmh in #10148
- feat: use Ed25519 keys for sync connections by @calmh in #10162
- feat(gui): add option to limit bandwidth in LAN to Settings (ref #10046) by @tomasz1986 in #10182
- feat(connections, nat): add UDP portmapping/pinhole for QUIC (fixes #7403) by @marbens-arch in #10171
Other
- chore: remove abandoned next-gen-gui experiment by @calmh in #10004
- chore: remove weak hashing which does not pull its weight by @calmh in #10005
- chore: switch database engine to sqlite (fixes #9954) by @calmh in #9965
- chore: harmonise command line flags by @calmh in #10007
- chore(db): increase journal limit to 64MiB by @bt90 in #10022
- chore: forget deleted files older than six months (fixes #6284) by @calmh in #10023
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- chore: configurable delete retention interval by @calmh in #10030
- chore(db): fix debug logging by @bt90 in #10033
- chore(db): buffer pulled files for smaller WAL by @calmh in #10036
- chore(db): use one SQLite database per folder by @calmh in #10042
- chore(model): delay starting a pull while there are incoming index updates by @calmh in #10041
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- chore(syncthing): ensure migrated database is closed before exiting by @xjtdy888 in #10076
- chore(db, model): simplify per hash DB lookup in copier by @imsodin in #10080
- chore(model): refactor copier for more flatness by @imsodin in #10094
- build: upgrade setup-zig action by @calmh in #10134
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
- chore: various linter fixes by @calmh in #10157
- build: streamline gathering of facts, checkouts by @calmh in #10158
- build: build both Debian armel and armhf (though they are the same for us) by @calmh in #10159
- build: explicitly trigger build after pushing release tag by @calmh in #10160
- chore(syncthing): ensure response body is closed in upgrade request by @ardevd in #10169
- refactor(syncthing): use named constant for SIGHUP by @ardevd in #10168
- chore(model): remove redundant removal of internal fields in indexsender by @imsodin in #10173
- chore: add migration for remote invalid local flag by @imsodin in #10174
New Contributors
- @ardevd made their first contribution in #10154
- @yparitcher made their first contribution in #10176
Full Changelog: v1.29.7...v2.0.0-rc.22
Assets 35
v1.30.0-rc.2
0945304
Compare
Syncthing 2 is coming
Syncthing version 1.x will soon be replaced by Syncthing version 2.x.
Version 2 brings a new database format and various cleanups, but remains
protocol compatible with Syncthing 1.
More detailed information about Syncthing 2 can be found in the release
notes at https://github.com/syncthing/syncthing/releases.
This release is also available as:
-
APT repository: https://apt.syncthing.net/
-
Docker image:
docker.io/syncthing/syncthing:1.30.0-rc.2
orghcr.io/syncthing/syncthing:1.30.0-rc.2
({docker,ghcr}.io/syncthing/syncthing:1
to follow just the major version)
What's Changed
Fixes
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
- fix(syncthing): avoid writing panic log to nil fd by @ardevd in #10154
Features
Other
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
Full Changelog: v1.29.7...v1.30.0-rc.2
Assets 47
v2.0.0-rc.21
1c6f542
Compare
Major changes in 2.0
-
Database backend switched from LevelDB to SQLite. There is a migration on
first launch which can be lengthy for larger setups. The new database is
easier to understand and maintain and, hopefully, less buggy. -
Deleted items are no longer kept forever in the database, instead they are
forgotten after six months. If your use case require deletes to take
effect after more than a six month delay, set the
--db-delete-retention-interval
command line option or corresponding
environment variable to zero, or a longer time interval of your choosing. -
Modernised command line options parsing. Old single-dash long options are
no longer supported, e.g.-home
must be given as--home
. Some options
have been renamed, others have become subcommands. All serve options are
now also accepted as environment variables. Seesyncthing --help
and
syncthing serve --help
for details. -
Rolling hash detection of shifted data is no longer supported as this
effectively never helped. Instead, scanning and syncing is faster and more
efficient without it. -
A "default folder" is no longer created on first startup.
-
Multiple connections are now used by default between v2 devices. The new
default value is to use three connections: one for index metadata and two
for data exchange. -
The following platforms unfortunately no longer get prebuilt binaries for
download at syncthing.net and on GitHub, due to complexities related to
cross compilation with SQLite:- dragonfly/amd64
- illumos/amd64 and solaris/amd64
- linux/ppc64
- netbsd/*
- openbsd/386 and openbsd/arm
- windows/arm
This release is also available as:
-
APT repository: https://apt.syncthing.net/
-
Docker image:
docker.io/syncthing/syncthing:2.0.0-rc.21
orghcr.io/syncthing/syncthing:2.0.0-rc.21
({docker,ghcr}.io/syncthing/syncthing:2
to follow just the major version)
What's Changed
Fixes
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- fix(model): loop-break regression while block copying in puller by @imsodin in #10069
- fix(model): close fd immediately in copier by @imsodin in #10079
- fix(model): use same folder first in copier by @imsodin in #10093
- fix(model): correct bufferpool handling; simplify by @calmh in #10113
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
- fix(syncthing): avoid writing panic log to nil fd by @ardevd in #10154
- fix(fs): check for unsupported error on modern Windows (fixes #10164) by @rasa in #10165
- fix(gui): don't show dial errors for paused devices (fixes #10166) by @marbens-arch in #10167
- fix: track invalid files in LocalFlags to fix global count by @imsodin in #10170
- fix(watchaggregator): properly handle sub-second watch durations (fixes #9927) by @imsodin in #10179
- fix(db): remove invalid member from FileMetadata by @imsodin in #10180
Features
- feat: add
syncthing debug database-statistics
command by @calmh in #10117 - feat(config): enable multiple connections by default by @calmh in #10151
- feat(config): expose folder and device info as metrics (fixes #9519) by @calmh in #10148
- feat: use Ed25519 keys for sync connections by @calmh in #10162
Other
- chore: remove abandoned next-gen-gui experiment by @calmh in #10004
- chore: remove weak hashing which does not pull its weight by @calmh in #10005
- chore: switch database engine to sqlite (fixes #9954) by @calmh in #9965
- chore: harmonise command line flags by @calmh in #10007
- chore(db): increase journal limit to 64MiB by @bt90 in #10022
- chore: forget deleted files older than six months (fixes #6284) by @calmh in #10023
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- chore: configurable delete retention interval by @calmh in #10030
- chore(db): fix debug logging by @bt90 in #10033
- chore(db): buffer pulled files for smaller WAL by @calmh in #10036
- chore(db): use one SQLite database per folder by @calmh in #10042
- chore(model): delay starting a pull while there are incoming index updates by @calmh in #10041
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- chore(syncthing): ensure migrated database is closed before exiting by @xjtdy888 in #10076
- chore(db, model): simplify per hash DB lookup in copier by @imsodin in #10080
- chore(model): refactor copier for more flatness by @imsodin in #10094
- build: upgrade setup-zig action by @calmh in #10134
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
- chore: various linter fixes by @calmh in #10157
- build: streamline gathering of facts, checkouts by @calmh in #10158
- build: build both Debian armel and armhf (though they are the same for us) by @calmh in #10159
- build: explicitly trigger build after pushing release tag by @calmh in #10160
- chore(syncthing): ensure response body is closed in upgrade request by @ardevd in #10169
- refactor(syncthing): use named constant for SIGHUP by @ardevd in #10168
- chore(model): remove redundant removal of internal fields in indexsender by @imsodin in #10173
- chore: add migration for remote invalid local flag by @imsodin in #10174
New Contributors
Full Changelog: v1.29.7...v2.0.0-rc.21
Assets 35
v1.30.0-rc.1
b05ece0
Compare
Syncthing 2 is coming
Syncthing version 1.x will soon be replaced by Syncthing version 2.x.
Version 2 brings a new database format and various cleanups, but remains
protocol compatible with Syncthing 1.
More detailed information about Syncthing 2 can be found in the release
notes at https://github.com/syncthing/syncthing/releases.
This release is also available as:
-
APT repository: https://apt.syncthing.net/
-
Docker image:
docker.io/syncthing/syncthing:1.30.0-rc.1
orghcr.io/syncthing/syncthing:1.30.0-rc.1
({docker,ghcr}.io/syncthing/syncthing:1
to follow just the major version)
What's Changed
Fixes
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
- fix(syncthing): avoid writing panic log to nil fd by @ardevd in #10154
Features
Other
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
New Contributors
Full Changelog: v1.29.7...v1.30.0-rc.1
Assets 47
v2.0.0-rc.20
3c92999
Compare
Major changes in 2.0
-
Database backend switched from LevelDB to SQLite. There is a migration on
first launch which can be lengthy for larger setups. The new database is
easier to understand and maintain and, hopefully, less buggy. -
Deleted items are no longer kept forever in the database, instead they are
forgotten after six months. If your use case require deletes to take
effect after more than a six month delay, set the
--db-delete-retention-interval
command line option or corresponding
environment variable to zero, or a longer time interval of your choosing. -
Modernised command line options parsing. Old single-dash long options are
no longer supported, e.g.-home
must be given as--home
. Some options
have been renamed, others have become subcommands. All serve options are
now also accepted as environment variables. Seesyncthing --help
and
syncthing serve --help
for details. -
Rolling hash detection of shifted data is no longer supported as this
effectively never helped. Instead, scanning and syncing is faster and more
efficient without it. -
A "default folder" is no longer created on first startup.
-
Multiple connections are now used by default between v2 devices. The new
default value is to use three connections: one for index metadata and two
for data exchange.
This release is also available as:
-
APT repository: https://apt.syncthing.net/
-
Docker image:
docker.io/syncthing/syncthing:2.0.0-rc.20
orghcr.io/syncthing/syncthing:2.0.0-rc.20
({docker,ghcr}.io/syncthing/syncthing:2
to follow just the major version)
What's Changed
Fixes
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- fix(model): loop-break regression while block copying in puller by @imsodin in #10069
- fix(model): close fd immediately in copier by @imsodin in #10079
- fix(model): use same folder first in copier by @imsodin in #10093
- fix(model): correct bufferpool handling; simplify by @calmh in #10113
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
- fix(syncthing): avoid writing panic log to nil fd by @ardevd in #10154
Features
- feat: add
syncthing debug database-statistics
command by @calmh in #10117 - feat(config): enable multiple connections by default by @calmh in #10151
- feat(config): expose folder and device info as metrics (fixes #9519) by @calmh in #10148
Other
- chore: remove abandoned next-gen-gui experiment by @calmh in #10004
- chore: remove weak hashing which does not pull its weight by @calmh in #10005
- chore: switch database engine to sqlite (fixes #9954) by @calmh in #9965
- chore: harmonise command line flags by @calmh in #10007
- chore(db): increase journal limit to 64MiB by @bt90 in #10022
- chore: forget deleted files older than six months (fixes #6284) by @calmh in #10023
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- chore: configurable delete retention interval by @calmh in #10030
- chore(db): fix debug logging by @bt90 in #10033
- chore(db): buffer pulled files for smaller WAL by @calmh in #10036
- chore(db): use one SQLite database per folder by @calmh in #10042
- chore(model): delay starting a pull while there are incoming index updates by @calmh in #10041
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- chore(syncthing): ensure migrated database is closed before exiting by @xjtdy888 in #10076
- chore(db, model): simplify per hash DB lookup in copier by @imsodin in #10080
- chore(model): refactor copier for more flatness by @imsodin in #10094
- build: upgrade setup-zig action by @calmh in #10134
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
New Contributors
Full Changelog: v1.29.7...v2.0.0-rc.20
Assets 34
v2.0.0-rc.19
2712f56
Compare
Major changes in 2.0
-
Database backend switched from LevelDB to SQLite. There is a migration on
first launch which can be lengthy for larger setups. The new database is
easier to understand and maintain and, hopefully, less buggy. -
Deleted items are no longer kept forever in the database, instead they are
forgotten after six months. If your use case require deletes to take
effect after more than a six month delay, set the
--db-delete-retention-interval
command line option or corresponding
environment variable to zero, or a longer time interval of your choosing. -
Modernised command line options parsing. Old single-dash long options are
no longer supported, e.g.-home
must be given as--home
. Some options
have been renamed, others have become subcommands. All serve options are
now also accepted as environment variables. Seesyncthing --help
and
syncthing serve --help
for details. -
Rolling hash detection of shifted data is no longer supported as this
effectively never helped. Instead, scanning and syncing is faster and more
efficient without it. -
A "default folder" is no longer created on first startup.
-
Multiple connections are now used by default between v2 devices. The new
default value is to use three connections: one for index metadata and two
for data exchange.
What's Changed
Fixes
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- fix(model): loop-break regression while block copying in puller by @imsodin in #10069
- fix(model): close fd immediately in copier by @imsodin in #10079
- fix(model): use same folder first in copier by @imsodin in #10093
- fix(model): correct bufferpool handling; simplify by @calmh in #10113
- fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
Features
- feat: add
syncthing debug database-statistics
command by @calmh in #10117 - feat(config): enable multiple connections by default by @calmh in #10151
- feat(config): expose folder and device info as metrics (fixes #9519) by @calmh in #10148
Other
- chore: remove abandoned next-gen-gui experiment by @calmh in #10004
- chore: remove weak hashing which does not pull its weight by @calmh in #10005
- chore: switch database engine to sqlite (fixes #9954) by @calmh in #9965
- chore: harmonise command line flags by @calmh in #10007
- chore(db): increase journal limit to 64MiB by @bt90 in #10022
- chore: forget deleted files older than six months (fixes #6284) by @calmh in #10023
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- chore: configurable delete retention interval by @calmh in #10030
- chore(db): fix debug logging by @bt90 in #10033
- chore(db): buffer pulled files for smaller WAL by @calmh in #10036
- chore(db): use one SQLite database per folder by @calmh in #10042
- chore(model): delay starting a pull while there are incoming index updates by @calmh in #10041
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- chore(syncthing): ensure migrated database is closed before exiting by @xjtdy888 in #10076
- chore(db, model): simplify per hash DB lookup in copier by @imsodin in #10080
- chore(model): refactor copier for more flatness by @imsodin in #10094
- build: upgrade setup-zig action by @calmh in #10134
- build: properly propagate build tags to Debian build by @calmh in #10144
- chore(protocol): don't start connection routines a second time by @imsodin in #10146
- chore(protocol): only allow enc. password changes on cluster config by @imsodin in #10145
Full Changelog: v1.29.7...v2.0.0-rc.19
Assets 40
v1.29.7
40660c5
Compare
Syncthing 2 is coming
Syncthing version 1.x will soon be replaced by Syncthing version 2.x.
Version 2 brings a new database format and various cleanups, but remains
protocol compatible with Syncthing 1.
More detailed information about Syncthing 2 can be found in the release
notes at https://github.com/syncthing/syncthing/releases.
This release is also available as:
- APT repository: https://apt.syncthing.net/
- Docker image:
docker.io/syncthing/syncthing:1.29.7
orghcr.io/syncthing/syncthing:1.29.7
({docker,ghcr}.io/syncthing/syncthing:1
to follow just the major version)
What's Changed
Fixes
- fix(config): deep copy configuration defaults (fixes #9916) by @hazemKrimi in #10101
- fix(config): mark audit log options as needing restart (fixes #10099) by @marbens-arch in #10100
- fix(versioner): fix perms of created folders (fixes #9626) by @ashishbhate in #10105
- fix(syncthing): ensure both config and data dirs exist at startup (fixes #10126) by @calmh in #10127
- fix(gui): update
uncamel()
to handle strings like 'IDs' (fixes #10128) by @luckman212 in #10131
Features
- feat(gui): close a modal when pressing ESC after switching modal tabs (fixes #9489) by @hazemKrimi in #10092
Other
- chore(gui): add Serbian (sr) translation template by @acolomb in #10116
- build: reactivate golangci-lint by @calmh in #10118
- chore: move golangci-lint & meta to separate PR-only workflow by @calmh in #10119
- refactor: use slices.Contains to simplify code by @pullmerge in #10121
- build: process for automatic release tags by @calmh in #10133
- refactor: use slices package for sort by @mrclmr in #10132
- refactor: use slices package for sorting by @mrclmr in #10136
- docs: general notes about v2 coming by @calmh in #10135
- build: add labeler workflow for PRs by @calmh in #10143
New Contributors
- @hazemKrimi made their first contribution in #10092
- @pullmerge made their first contribution in #10121
- @ashishbhate made their first contribution in #10105
- @mrclmr made their first contribution in #10132
Full Changelog: v1.29.6...v1.29.7
Assets 57
v2.0.0-rc.18
79bac43
Compare
Major changes in 2.0
-
Database backend switched from LevelDB to SQLite. There is a migration on
first launch which can be lengthy for larger setups. The new database is
easier to understand and maintain and, hopefully, less buggy. -
Deleted items are no longer kept forever in the database, instead they are
forgotten after six months. If your use case require deletes to take
effect after more than a six month delay, set the
--db-delete-retention-interval
command line option or corresponding
environment variable to zero, or a longer time interval of your choosing. -
Modernised command line options parsing. Old single-dash long options are
no longer supported, e.g.-home
must be given as--home
. Some options
have been renamed, others have become subcommands. All serve options are
now also accepted as environment variables. Seesyncthing --help
and
syncthing serve --help
for details. -
Rolling hash detection of shifted data is no longer supported as this
effectively never helped. Instead, scanning and syncing is faster and more
efficient without it. -
A "default folder" is no longer created on first startup.
What's Changed
Fixes
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- fix(model): loop-break regression while block copying in puller by @imsodin in #10069
- fix(model): close fd immediately in copier by @imsodin in #10079
- fix(model): use same folder first in copier by @imsodin in #10093
- fix(config): deep copy configuration defaults (fixes #9916) by @hazemKrimi in #10101
- fix(config): mark audit log options as needing restart (fixes #10099) by @marbens-arch in #10100
- fix(model): correct bufferpool handling; simplify by @calmh in #10113
- fix(versioner): fix perms of created folders (fixes #9626) by @ashishbhate in #10105
- fix(syncthing): ensure both config and data dirs exist at startup (fixes #10126) by @calmh in #10127
- fix(gui): update
uncamel()
to handle strings like 'IDs' (fixes #10128) by @luckman212 in #10131 - fix(protocol): avoid deadlock with concurrent connection start and close by @calmh in #10140
Features
- feat(gui): close a modal when pressing ESC after switching modal tabs (fixes #9489) by @hazemKrimi in #10092
- feat: add
syncthing debug database-statistics
command by @calmh in #10117
Other
- chore: remove abandoned next-gen-gui experiment by @calmh in #10004
- chore: remove weak hashing which does not pull its weight by @calmh in #10005
- chore: switch database engine to sqlite (fixes #9954) by @calmh in #9965
- chore: harmonise command line flags by @calmh in #10007
- chore(db): increase journal limit to 64MiB by @bt90 in #10022
- chore: forget deleted files older than six months (fixes #6284) by @calmh in #10023
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- chore: configurable delete retention interval by @calmh in #10030
- chore(db): fix debug logging by @bt90 in #10033
- chore(db): buffer pulled files for smaller WAL by @calmh in #10036
- chore(db): use one SQLite database per folder by @calmh in #10042
- chore(model): delay starting a pull while there are incoming index updates by @calmh in #10041
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- chore(syncthing): ensure migrated database is closed before exiting by @xjtdy888 in #10076
- chore(db, model): simplify per hash DB lookup in copier by @imsodin in #10080
- chore(model): refactor copier for more flatness by @imsodin in #10094
- chore(gui): add Serbian (sr) translation template by @acolomb in #10116
- build: reactivate golangci-lint by @calmh in #10118
- chore: move golangci-lint & meta to separate PR-only workflow by @calmh in #10119
- refactor: use slices.Contains to simplify code by @pullmerge in #10121
- build: process for automatic release tags by @calmh in #10133
- refactor: use slices package for sort by @mrclmr in #10132
- build: upgrade setup-zig action by @calmh in #10134
- refactor: use slices package for sorting by @mrclmr in #10136
- docs: general notes about v2 coming by @calmh in #10135
- build: add labeler workflow for PRs by @calmh in #10143
- build: properly propagate build tags to Debian build by @calmh in #10144
New Contributors
- @hazemKrimi made their first contribution in #10092
- @pullmerge made their first contribution in #10121
- @ashishbhate made their first contribution in #10105
- @mrclmr made their first contribution in #10132
Full Changelog: v1.29.6...v2.0.0-rc.18