Releases: syncthing/syncthing
v2.0.0-rc.18
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
v1.29.7-rc.3
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.
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-rc.3
v2.0.0-rc.17
Major changes in 2.0.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
. All serve
options are now also accepted as environment variables. Seesyncthing 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
- 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
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- 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
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- 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
- build(deps): update dependencies by @calmh in #10091
- 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
- fix(model): use same folder first in copier by @imsodin in #10093
- feat(gui): close a modal when pressing ESC after switching modal tabs (fixes #9489) by @hazemKrimi in #10092
- chore(model): refactor copier for more flatness by @imsodin in #10094
- 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
- chore(gui): add Serbian (sr) translation template by @acolomb in #10116
- build: reactivate golangci-lint by @calmh in #10118
- feat: add
syncthing debug database-statistics
command by @calmh in #10117 - chore: move golangci-lint & meta to separate PR-only workflow by @calmh in #10119
- build(deps): update dependency due to build breakage by @calmh in #10120
- refactor: use slices.Contains to simplify code by @pullmerge in #10121
- 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
- build: process for automatic release tags by @calmh in #10133
- refactor: use slices package for sort by @mrclmr in #10132
- fix(gui): update
uncamel()
to handle strings like 'IDs' (fixes #10128) by @luckman212 in #10131 - build: upgrade setup-zig action by @calmh in #10134
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.17
v1.29.7-rc.2
What's Changed
- build(deps): update dependencies by @calmh in #10091
- feat(gui): close a modal when pressing ESC after switching modal tabs (fixes #9489) by @hazemKrimi in #10092
- 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
- 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
- build(deps): update dependency due to build breakage by @calmh in #10120
- refactor: use slices.Contains to simplify code by @pullmerge in #10121
- 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
- build: process for automatic release tags by @calmh in #10133
- refactor: use slices package for sort by @mrclmr in #10132
- fix(gui): update
uncamel()
to handle strings like 'IDs' (fixes #10128) by @luckman212 in #10131
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-rc.2
v1.29.7-rc.1
What's Changed
- build(deps): update dependencies by @calmh in #10091
- feat(gui): close a modal when pressing ESC after switching modal tabs (fixes #9489) by @hazemKrimi in #10092
- 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
- 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
- build(deps): update dependency due to build breakage by @calmh in #10120
New Contributors
- @hazemKrimi made their first contribution in #10092
Full Changelog: v1.29.6...v1.29.7-rc.1
v2.0.0-rc.16
Major changes
- 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
. All serve options are now also accepted as environment variables. - 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.
Debian packages
deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing v2
Docker image
ghcr.io/syncthing/syncthing:v2.0.0-beta.16
What's Changed
- chore(gui): add Serbian (sr) translation template by @acolomb in #10116
- build: reactivate golangci-lint by @calmh in #10118
- feat: add
syncthing debug database-statistics
command by @calmh in #10117
Full Changelog: v2.0.0-rc.15...v2.0.0-rc.16
v2.0.0-rc.15
What's Changed
- 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
Full Changelog: v2.0.0-rc.14...v2.0.0-rc.15
v2.0.0-rc.14
What's Changed
- fix(model): close fd immediately in copier by @imsodin in #10079
- build(deps): update dependencies by @calmh in #10091
- 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
- fix(model): use same folder first in copier by @imsodin in #10093
- feat(gui): close a modal when pressing ESC after switching modal tabs (fixes #9489) by @hazemKrimi in #10092
- chore(model): refactor copier for more flatness by @imsodin in #10094
New Contributors
- @hazemKrimi made their first contribution in #10092
Full Changelog: v2.0.0-rc.13...v2.0.0-rc.14
v1.29.6
What's Changed
- chore(lib): expose model methods to obtain progress by @pixelspark in #9886
- feat(gui): explanation to options enabled or disabled per folder type by @tomasz1986 in #9367
- fix(gui): validate device ID in canonical form (fixes #7291) by @mathias4833 in #10006
- fix(config): remove discontinued primary STUN server (fixes #10008) by @marbens-arch in #10009
- fix(stun): better error handling (ref #10008) by @calmh in #10010
- chore(config): remove discontinued secondary STUN servers (fixes #10011) by @marbens-arch in #10012
- chore(fs): speed up case normalization by @bt90 in #10013
- build(deps): update dependencies by @calmh in #10020
- feat(fs, config): add support for custom filesystem type construction by @pixelspark in #9887
- build: replace underscore in Debian version by @bt90 in #10032
- chore(model): add metric for total number of conflicts by @swenske in #10037
- fix(config): properly apply defaults when reading folder configuration by @pixelspark in #10034
- fix(config): zero filesystemtype is "basic" by @calmh in #10038
- build: push artifacts to Azure by @calmh in #10044
- chore(config): resolve primary STUN servers via SRV record by @bt90 in #10031
- chore(fs): changes to allow Filesystem to be implemented externally by @pixelspark in #10040
- fix(strings): differentiate setup(n) and set(v) up by @systemcrash in #10024
- fix(gui): mark unseen disconnected devices as inactive by @tomasz1986 in #10048
- fix(syncthing): use separate lock file instead of locking the certificate (fixes #10053) by @calmh in #10054
- feat(api, gui): allow authentication bypass for metrics by @swenske in #10045
- chore: add missing copyright in new files from infra branch by @calmh in #10055
- fix(osutil): give threads same I/O priority on Linux by @TheCreeper in #10063
- chore(syncthing): remove support for TLS 1.2 sync connections by @calmh in #10064
- chore(gui): update dependency copyrights, add script for periodic maintenance by @rasa in #10067
- chore(api): log X-Forwarded-For by @bt90 in #10035
- feat(config): add option for audit file (fixes #9481) by @marbens-arch in #10066
- chore(gui): use go list --deps for dependency list by @rasa in #10071
- fix(strelaysrv): make the session limiter session-dependent (fixes #10072) by @szu17dmy in #10073
New Contributors
- @marbens-arch made their first contribution in #10009
- @swenske made their first contribution in #10037
- @systemcrash made their first contribution in #10024
- @TheCreeper made their first contribution in #10063
- @szu17dmy made their first contribution in #10073
Full Changelog: v1.29.5...v1.29.6
v2.0.0-rc.13
What's Changed
- chore(lib): expose model methods to obtain progress by @pixelspark in #9886
- feat(gui): explanation to options enabled or disabled per folder type by @tomasz1986 in #9367
- 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
- fix(gui): validate device ID in canonical form (fixes #7291) by @mathias4833 in #10006
- fix(config): remove discontinued primary STUN server (fixes #10008) by @marbens-arch in #10009
- fix(stun): better error handling (ref #10008) by @calmh in #10010
- chore(config): remove discontinued secondary STUN servers (fixes #10011) by @marbens-arch in #10012
- chore(fs): speed up case normalization by @bt90 in #10013
- chore: harmonise command line flags by @calmh in #10007
- build(deps): update dependencies by @calmh in #10020
- 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
- fix(db): handle large numbers of blocks in update by @calmh in #10025
- chore(db): use shorter read transactions and periodic checkpoint for smaller WAL by @calmh in #10027
- fix(syncthing): make directory flags global for all commands by @calmh in #10028
- chore: configurable delete retention interval by @calmh in #10030
- feat(fs, config): add support for custom filesystem type construction by @pixelspark in #9887
- build: replace underscore in Debian version by @bt90 in #10032
- chore(db): fix debug logging by @bt90 in #10033
- chore(db): buffer pulled files for smaller WAL by @calmh in #10036
- chore(model): add metric for total number of conflicts by @swenske in #10037
- fix(config): properly apply defaults when reading folder configuration by @pixelspark in #10034
- fix(config): zero filesystemtype is "basic" by @calmh in #10038
- 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
- build: push artifacts to Azure by @calmh in #10044
- chore(config): resolve primary STUN servers via SRV record by @bt90 in #10031
- chore(fs): changes to allow Filesystem to be implemented externally by @pixelspark in #10040
- fix(strings): differentiate setup(n) and set(v) up by @systemcrash in #10024
- fix(gui): mark unseen disconnected devices as inactive by @tomasz1986 in #10048
- fix(sqlite): apply options by @pixelspark in #10049
- fix(db): version vector serialisation :( by @calmh in #10050
- fix(syncthing): use separate lock file instead of locking the certificate (fixes #10053) by @calmh in #10054
- feat(api, gui): allow authentication bypass for metrics by @swenske in #10045
- chore: add missing copyright in new files from infra branch by @calmh in #10055
- fix(osutil): give threads same I/O priority on Linux by @TheCreeper in #10063
- chore(syncthing): remove support for TLS 1.2 sync connections by @calmh in #10064
- chore(gui): update dependency copyrights, add script for periodic maintenance by @rasa in #10067
- chore(syncthing): remove "default" folder concept by @calmh in #10068
- chore(api): log X-Forwarded-For by @bt90 in #10035
- feat(config): add option for audit file (fixes #9481) by @marbens-arch in #10066
- fix(model): loop-break regression while block copying in puller by @imsodin in #10069
- chore(gui): use go list --deps for dependency list by @rasa in #10071
- fix(strelaysrv): make the session limiter session-dependent (fixes #10072) by @szu17dmy in #10073
New Contributors
- @marbens-arch made their first contribution in #10009
- @swenske made their first contribution in #10037
- @systemcrash made their first contribution in #10024
- @TheCreeper made their first contribution in #10063
- @szu17dmy made their first contribution in #10073
Full Changelog: v2.0.0-rc.12...v2.0.0-rc.13