diff --git a/CHANGES.md b/CHANGES.md index 88b053897..c625e4d56 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,8 +1,105 @@ -Synapse 1.59.0 -============== +Synapse 1.59.0rc1 (2022-05-10) +============================== -The non-standard `m.login.jwt` login type has been removed from Synapse. It can be replaced with `org.matrix.login.jwt` for identical behaviour. This is only used if `jwt_config.enabled` is set to `true` in the configuration. +This release makes several changes that server administrators should be aware of: +- Device name lookup over federation is now disabled by default. ([\#12616](https://github.com/matrix-org/synapse/issues/12616)) +- The `synapse.app.appservice` and `synapse.app.user_dir` worker application types are now deprecated. ([\#12452](https://github.com/matrix-org/synapse/issues/12452), [\#12654](https://github.com/matrix-org/synapse/issues/12654)) + +See [the upgrade notes](https://github.com/matrix-org/synapse/blob/develop/docs/upgrade.md#upgrading-to-v1590) for more details. + +Additionally, this release removes the non-standard `m.login.jwt` login type from Synapse. It can be replaced with `org.matrix.login.jwt` for identical behaviour. This is only used if `jwt_config.enabled` is set to `true` in the configuration. ([\#12597](https://github.com/matrix-org/synapse/issues/12597)) + +Features +-------- + +- Support [MSC3266](https://github.com/matrix-org/matrix-doc/pull/3266) room summaries over federation. ([\#11507](https://github.com/matrix-org/synapse/issues/11507)) +- Implement [changes](https://github.com/matrix-org/matrix-spec-proposals/pull/2285/commits/4a77139249c2e830aec3c7d6bd5501a514d1cc27) to [MSC2285 (hidden read receipts)](https://github.com/matrix-org/matrix-spec-proposals/pull/2285). Contributed by @SimonBrandner. ([\#12168](https://github.com/matrix-org/synapse/issues/12168), [\#12635](https://github.com/matrix-org/synapse/issues/12635), [\#12636](https://github.com/matrix-org/synapse/issues/12636), [\#12670](https://github.com/matrix-org/synapse/issues/12670)) +- Extend the [module API](https://github.com/matrix-org/synapse/blob/release-v1.59/synapse/module_api/__init__.py) to allow modules to change actions for existing push rules of local users. ([\#12406](https://github.com/matrix-org/synapse/issues/12406)) +- Add the `notify_appservices_from_worker` configuration option (superseding `notify_appservices`) to allow a generic worker to be designated as the worker to send traffic to Application Services. ([\#12452](https://github.com/matrix-org/synapse/issues/12452)) +- Add the `update_user_directory_from_worker` configuration option (superseding `update_user_directory`) to allow a generic worker to be designated as the worker to update the user directory. ([\#12654](https://github.com/matrix-org/synapse/issues/12654)) +- Add new `enable_registration_token_3pid_bypass` configuration option to allow registrations via token as an alternative to verifying a 3pid. ([\#12526](https://github.com/matrix-org/synapse/issues/12526)) +- Implement [MSC3786](https://github.com/matrix-org/matrix-spec-proposals/pull/3786): Add a default push rule to ignore `m.room.server_acl` events. ([\#12601](https://github.com/matrix-org/synapse/issues/12601)) +- Add new `mau_appservice_trial_days` configuration option to specify a different trial period for users registered via an appservice. ([\#12619](https://github.com/matrix-org/synapse/issues/12619)) + + +Bugfixes +-------- + +- Fix a bug introduced in Synapse 1.48.0 where the latest thread reply provided failed to include the proper bundled aggregations. ([\#12273](https://github.com/matrix-org/synapse/issues/12273)) +- Fix a bug introduced in Synapse 1.22.0 where attempting to send a large amount of read receipts to an application service all at once would result in duplicate content and abnormally high memory usage. Contributed by Brad & Nick @ Beeper. ([\#12544](https://github.com/matrix-org/synapse/issues/12544)) +- Fix a bug introduced in Synapse 1.57.0 which could cause `Failed to calculate hosts in room` errors to be logged for outbound federation. ([\#12570](https://github.com/matrix-org/synapse/issues/12570)) +- Fix a long-standing bug where status codes would almost always get logged as `200!`, irrespective of the actual status code, when clients disconnect before a request has finished processing. ([\#12580](https://github.com/matrix-org/synapse/issues/12580)) +- Fix race when persisting an event and deleting a room that could lead to outbound federation breaking. ([\#12594](https://github.com/matrix-org/synapse/issues/12594)) +- Fix a bug introduced in Synapse 1.53.0 where bundled aggregations for annotations/edits were incorrectly calculated. ([\#12633](https://github.com/matrix-org/synapse/issues/12633)) +- Fix a long-standing bug where rooms containing power levels with string values could not be upgraded. ([\#12657](https://github.com/matrix-org/synapse/issues/12657)) +- Prevent memory leak from reoccurring when presence is disabled. ([\#12656](https://github.com/matrix-org/synapse/issues/12656)) + + +Updates to the Docker image +--------------------------- + +- Explicitly opt-in to using [BuildKit-specific features](https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md) in the Dockerfile. This fixes issues with building images in some GitLab CI environments. ([\#12541](https://github.com/matrix-org/synapse/issues/12541)) +- Update the "Build docker images" GitHub Actions workflow to use `docker/metadata-action` to generate docker image tags, instead of a custom shell script. Contributed by @henryclw. ([\#12573](https://github.com/matrix-org/synapse/issues/12573)) + + +Improved Documentation +---------------------- + +- Update SQL statements and replace use of old table `user_stats_historical` in docs for Synapse Admins. ([\#12536](https://github.com/matrix-org/synapse/issues/12536)) +- Add missing linebreak to `pipx` install instructions. ([\#12579](https://github.com/matrix-org/synapse/issues/12579)) +- Add information about the TCP replication module to docs. ([\#12621](https://github.com/matrix-org/synapse/issues/12621)) +- Fixes to the formatting of `README.rst`. ([\#12627](https://github.com/matrix-org/synapse/issues/12627)) +- Fix docs on how to run specific Complement tests using the `complement.sh` test runner. ([\#12664](https://github.com/matrix-org/synapse/issues/12664)) + + +Deprecations and Removals +------------------------- + +- Remove unstable identifiers from [MSC3069](https://github.com/matrix-org/matrix-doc/pull/3069). ([\#12596](https://github.com/matrix-org/synapse/issues/12596)) +- Remove the unspecified `m.login.jwt` login type and the unstable `uk.half-shot.msc2778.login.application_service` from + [MSC2778](https://github.com/matrix-org/matrix-doc/pull/2778). ([\#12597](https://github.com/matrix-org/synapse/issues/12597)) +- Synapse now requires at least Python 3.7.1 (up from 3.7.0), for compatibility with the latest Twisted trunk. ([\#12613](https://github.com/matrix-org/synapse/issues/12613)) + + +Internal Changes +---------------- + +- Use supervisord to supervise Postgres and Caddy in the Complement image to reduce restart time. ([\#12480](https://github.com/matrix-org/synapse/issues/12480)) +- Immediately retry any requests that have backed off when a server comes back online. ([\#12500](https://github.com/matrix-org/synapse/issues/12500)) +- Use `make_awaitable` instead of `defer.succeed` for return values of mocks in tests. ([\#12505](https://github.com/matrix-org/synapse/issues/12505)) +- Consistently check if an object is a `frozendict`. ([\#12564](https://github.com/matrix-org/synapse/issues/12564)) +- Protect module callbacks with read semantics against cancellation. ([\#12568](https://github.com/matrix-org/synapse/issues/12568)) +- Improve comments and error messages around access tokens. ([\#12577](https://github.com/matrix-org/synapse/issues/12577)) +- Improve docstrings for the receipts store. ([\#12581](https://github.com/matrix-org/synapse/issues/12581)) +- Use constants for read-receipts in tests. ([\#12582](https://github.com/matrix-org/synapse/issues/12582)) +- Log status code of cancelled requests as 499 and avoid logging stack traces for them. ([\#12587](https://github.com/matrix-org/synapse/issues/12587), [\#12663](https://github.com/matrix-org/synapse/issues/12663)) +- Remove special-case for `twisted` logger from default log config. ([\#12589](https://github.com/matrix-org/synapse/issues/12589)) +- Use `getClientAddress` instead of the deprecated `getClientIP`. ([\#12599](https://github.com/matrix-org/synapse/issues/12599)) +- Add link to documentation in Grafana Dashboard. ([\#12602](https://github.com/matrix-org/synapse/issues/12602)) +- Reduce log spam when running multiple event persisters. ([\#12610](https://github.com/matrix-org/synapse/issues/12610)) +- Add extra debug logging to federation sender. ([\#12614](https://github.com/matrix-org/synapse/issues/12614)) +- Prevent remote homeservers from requesting local user device names by default. ([\#12616](https://github.com/matrix-org/synapse/issues/12616)) +- Add a consistency check on events which we read from the database. ([\#12620](https://github.com/matrix-org/synapse/issues/12620)) +- Remove use of the `constantly` library and switch to enums for `EventRedactBehaviour`. Contributed by @andrewdoh. ([\#12624](https://github.com/matrix-org/synapse/issues/12624)) +- Remove unused code related to receipts. ([\#12632](https://github.com/matrix-org/synapse/issues/12632)) +- Minor improvements to the scripts for running Synapse in worker mode under Complement. ([\#12637](https://github.com/matrix-org/synapse/issues/12637)) +- Move `pympler` back in to the `all` extras. ([\#12652](https://github.com/matrix-org/synapse/issues/12652)) +- Fix spelling of `M_UNRECOGNIZED` in comments. ([\#12665](https://github.com/matrix-org/synapse/issues/12665)) +- Release script: confirm the commit to be tagged before tagging. ([\#12556](https://github.com/matrix-org/synapse/issues/12556)) +- Fix a typo in the announcement text generated by the Synapse release development script. ([\#12612](https://github.com/matrix-org/synapse/issues/12612)) + +### Typechecking + +- Fix scripts-dev to pass typechecking. ([\#12356](https://github.com/matrix-org/synapse/issues/12356)) +- Add some type hints to datastore. ([\#12485](https://github.com/matrix-org/synapse/issues/12485)) +- Remove unused `# type: ignore`s. ([\#12531](https://github.com/matrix-org/synapse/issues/12531)) +- Allow unused `# type: ignore` comments in bleeding edge CI jobs. ([\#12576](https://github.com/matrix-org/synapse/issues/12576)) +- Remove redundant lines of config from `mypy.ini`. ([\#12608](https://github.com/matrix-org/synapse/issues/12608)) +- Update to mypy 0.950. ([\#12650](https://github.com/matrix-org/synapse/issues/12650)) +- Use `Concatenate` to better annotate `_do_execute`. ([\#12666](https://github.com/matrix-org/synapse/issues/12666)) +- Use `ParamSpec` to refine type hints. ([\#12667](https://github.com/matrix-org/synapse/issues/12667)) +- Fix mypy against latest pillow stubs. ([\#12671](https://github.com/matrix-org/synapse/issues/12671)) Synapse 1.58.1 (2022-05-05) =========================== diff --git a/changelog.d/11507.feature b/changelog.d/11507.feature deleted file mode 100644 index 72c5690cc..000000000 --- a/changelog.d/11507.feature +++ /dev/null @@ -1 +0,0 @@ -Support [MSC3266](https://github.com/matrix-org/matrix-doc/pull/3266) room summaries over federation. diff --git a/changelog.d/12168.feature b/changelog.d/12168.feature deleted file mode 100644 index cd5c45029..000000000 --- a/changelog.d/12168.feature +++ /dev/null @@ -1 +0,0 @@ -Implement [changes](https://github.com/matrix-org/matrix-spec-proposals/pull/2285/commits/4a77139249c2e830aec3c7d6bd5501a514d1cc27) to [MSC2285 (hidden read receipts)](https://github.com/matrix-org/matrix-spec-proposals/pull/2285). Contributed by @SimonBrandner. diff --git a/changelog.d/12273.bugfix b/changelog.d/12273.bugfix deleted file mode 100644 index f8d7b6c88..000000000 --- a/changelog.d/12273.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug introduced in Synapse v1.48.0 where latest thread reply provided failed to include the proper bundled aggregations. diff --git a/changelog.d/12356.misc b/changelog.d/12356.misc deleted file mode 100644 index 43e192910..000000000 --- a/changelog.d/12356.misc +++ /dev/null @@ -1 +0,0 @@ -Fix scripts-dev to pass typechecking. \ No newline at end of file diff --git a/changelog.d/12406.feature b/changelog.d/12406.feature deleted file mode 100644 index e345afdee..000000000 --- a/changelog.d/12406.feature +++ /dev/null @@ -1 +0,0 @@ -Add a module API to allow modules to change actions for existing push rules of local users. diff --git a/changelog.d/12452.feature b/changelog.d/12452.feature deleted file mode 100644 index 22f054d34..000000000 --- a/changelog.d/12452.feature +++ /dev/null @@ -1 +0,0 @@ -Add the `notify_appservices_from_worker` configuration option (superseding `notify_appservices`) to allow a generic worker to be designated as the worker to send traffic to Application Services. \ No newline at end of file diff --git a/changelog.d/12480.misc b/changelog.d/12480.misc deleted file mode 100644 index 18a85e7b1..000000000 --- a/changelog.d/12480.misc +++ /dev/null @@ -1 +0,0 @@ -Use supervisord to supervise Postgres and Caddy in the Complement image to reduce restart time. \ No newline at end of file diff --git a/changelog.d/12485.misc b/changelog.d/12485.misc deleted file mode 100644 index e793d08e5..000000000 --- a/changelog.d/12485.misc +++ /dev/null @@ -1 +0,0 @@ -Add some type hints to datastore. \ No newline at end of file diff --git a/changelog.d/12500.misc b/changelog.d/12500.misc deleted file mode 100644 index dbe3f7f5d..000000000 --- a/changelog.d/12500.misc +++ /dev/null @@ -1 +0,0 @@ -Immediately retry any requests that have backed off when a server comes back online. diff --git a/changelog.d/12505.misc b/changelog.d/12505.misc deleted file mode 100644 index a691d7962..000000000 --- a/changelog.d/12505.misc +++ /dev/null @@ -1 +0,0 @@ -Use `make_awaitable` instead of `defer.succeed` for return values of mocks in tests. diff --git a/changelog.d/12526.feature b/changelog.d/12526.feature deleted file mode 100644 index c01596282..000000000 --- a/changelog.d/12526.feature +++ /dev/null @@ -1 +0,0 @@ -Add new `enable_registration_token_3pid_bypass` configuration option to allow registrations via token as an alternative to verifying a 3pid. \ No newline at end of file diff --git a/changelog.d/12531.misc b/changelog.d/12531.misc deleted file mode 100644 index 412fc9b6d..000000000 --- a/changelog.d/12531.misc +++ /dev/null @@ -1 +0,0 @@ -Remove unused `# type: ignore`s. diff --git a/changelog.d/12536.doc b/changelog.d/12536.doc deleted file mode 100644 index 4034c4207..000000000 --- a/changelog.d/12536.doc +++ /dev/null @@ -1 +0,0 @@ -Update SQL statements and replace use of old table `user_stats_historical` in docs for Synapse Admins. diff --git a/changelog.d/12541.docker b/changelog.d/12541.docker deleted file mode 100644 index c3b9c3165..000000000 --- a/changelog.d/12541.docker +++ /dev/null @@ -1 +0,0 @@ -Explicitly opt-in to using [BuildKit-specific features](https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md) in the Dockerfile. This fixes issues with building images in some GitLab CI environments. diff --git a/changelog.d/12544.bugfix b/changelog.d/12544.bugfix deleted file mode 100644 index b5169cd83..000000000 --- a/changelog.d/12544.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug where attempting to send a large amount of read receipts to an application service all at once would result in duplicate content and abnormally high memory usage. Contributed by Brad & Nick @ Beeper. diff --git a/changelog.d/12556.misc b/changelog.d/12556.misc deleted file mode 100644 index dc245397f..000000000 --- a/changelog.d/12556.misc +++ /dev/null @@ -1 +0,0 @@ -Release script: confirm the commit to be tagged before tagging. diff --git a/changelog.d/12564.misc b/changelog.d/12564.misc deleted file mode 100644 index 207c32246..000000000 --- a/changelog.d/12564.misc +++ /dev/null @@ -1 +0,0 @@ -Consistently check if an object is a `frozendict`. diff --git a/changelog.d/12568.misc b/changelog.d/12568.misc deleted file mode 100644 index f64dc67c4..000000000 --- a/changelog.d/12568.misc +++ /dev/null @@ -1 +0,0 @@ -Protect module callbacks with read semantics against cancellation. diff --git a/changelog.d/12570.bugfix b/changelog.d/12570.bugfix deleted file mode 100644 index 1038646f3..000000000 --- a/changelog.d/12570.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug introduced in Synapse 1.57 which could cause `Failed to calculate hosts in room` errors to be logged for outbound federation. diff --git a/changelog.d/12573.docker b/changelog.d/12573.docker deleted file mode 100644 index 5cc8de50a..000000000 --- a/changelog.d/12573.docker +++ /dev/null @@ -1 +0,0 @@ -Update the "Build docker images" GitHub Actions workflow to use `docker/metadata-action` to generate docker image tags, instead of a custom shell script. Contributed by henryclw. \ No newline at end of file diff --git a/changelog.d/12576.misc b/changelog.d/12576.misc deleted file mode 100644 index 71022c863..000000000 --- a/changelog.d/12576.misc +++ /dev/null @@ -1 +0,0 @@ -Allow unused `#type: ignore` comments in bleeding edge CI jobs. diff --git a/changelog.d/12577.misc b/changelog.d/12577.misc deleted file mode 100644 index 8c4c47ad5..000000000 --- a/changelog.d/12577.misc +++ /dev/null @@ -1 +0,0 @@ -Improve comments and error messages around access tokens. \ No newline at end of file diff --git a/changelog.d/12579.doc b/changelog.d/12579.doc deleted file mode 100644 index bcec5fe1a..000000000 --- a/changelog.d/12579.doc +++ /dev/null @@ -1 +0,0 @@ -Add missing linebreak to pipx install instructions. diff --git a/changelog.d/12580.bugfix b/changelog.d/12580.bugfix deleted file mode 100644 index bedce405e..000000000 --- a/changelog.d/12580.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a long standing bug where status codes would almost always get logged as 200!, irrespective of the actual status code, when clients disconnect before a request has finished processing. diff --git a/changelog.d/12581.misc b/changelog.d/12581.misc deleted file mode 100644 index 38d40b262..000000000 --- a/changelog.d/12581.misc +++ /dev/null @@ -1 +0,0 @@ -Improve docstrings for the receipts store. diff --git a/changelog.d/12582.misc b/changelog.d/12582.misc deleted file mode 100644 index 5fa9c9afe..000000000 --- a/changelog.d/12582.misc +++ /dev/null @@ -1 +0,0 @@ -Use constants for read-receipts in tests. diff --git a/changelog.d/12587.misc b/changelog.d/12587.misc deleted file mode 100644 index 3b466f1dd..000000000 --- a/changelog.d/12587.misc +++ /dev/null @@ -1 +0,0 @@ -Log status code of cancelled requests as 499 and avoid logging stack traces for them. diff --git a/changelog.d/12589.misc b/changelog.d/12589.misc deleted file mode 100644 index d362828d2..000000000 --- a/changelog.d/12589.misc +++ /dev/null @@ -1 +0,0 @@ -Remove special-case for `twisted` logger from default log config. diff --git a/changelog.d/12594.bugfix b/changelog.d/12594.bugfix deleted file mode 100644 index 7411d9c07..000000000 --- a/changelog.d/12594.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix race when persisting an event and deleting a room that could lead to outbound federation breaking. diff --git a/changelog.d/12596.removal b/changelog.d/12596.removal deleted file mode 100644 index 14fbfb395..000000000 --- a/changelog.d/12596.removal +++ /dev/null @@ -1 +0,0 @@ -Remove unstable identifiers from [MSC3069](https://github.com/matrix-org/matrix-doc/pull/3069). diff --git a/changelog.d/12597.removal b/changelog.d/12597.removal deleted file mode 100644 index 7927f1d68..000000000 --- a/changelog.d/12597.removal +++ /dev/null @@ -1,2 +0,0 @@ -Remove the unspecified `m.login.jwt` login type and the unstable `uk.half-shot.msc2778.login.application_service` from -[MSC2778](https://github.com/matrix-org/matrix-doc/pull/2778). diff --git a/changelog.d/12599.misc b/changelog.d/12599.misc deleted file mode 100644 index d01278bbc..000000000 --- a/changelog.d/12599.misc +++ /dev/null @@ -1 +0,0 @@ -Use `getClientAddress` instead of the deprecated `getClientIP`. diff --git a/changelog.d/12601.feature b/changelog.d/12601.feature deleted file mode 100644 index c13360ff3..000000000 --- a/changelog.d/12601.feature +++ /dev/null @@ -1 +0,0 @@ -Implement MSC3786: Add a default push rule to ignore m.room.server_acl events. diff --git a/changelog.d/12602.misc b/changelog.d/12602.misc deleted file mode 100644 index cdccc5c31..000000000 --- a/changelog.d/12602.misc +++ /dev/null @@ -1 +0,0 @@ -Add link to documentation in Grafana Dashboard. diff --git a/changelog.d/12608.misc b/changelog.d/12608.misc deleted file mode 100644 index 38272118f..000000000 --- a/changelog.d/12608.misc +++ /dev/null @@ -1 +0,0 @@ -Remove redundant lines of config from `mypy.ini`. \ No newline at end of file diff --git a/changelog.d/12610.misc b/changelog.d/12610.misc deleted file mode 100644 index 02efe0c72..000000000 --- a/changelog.d/12610.misc +++ /dev/null @@ -1 +0,0 @@ -Reduce log spam when running multiple event persisters. diff --git a/changelog.d/12612.bugfix b/changelog.d/12612.bugfix deleted file mode 100644 index c39e97f0c..000000000 --- a/changelog.d/12612.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a typo in the announcement text generated by the Synapse release development script. \ No newline at end of file diff --git a/changelog.d/12613.removal b/changelog.d/12613.removal deleted file mode 100644 index b1a9e207b..000000000 --- a/changelog.d/12613.removal +++ /dev/null @@ -1 +0,0 @@ -Synapse now requires at least Python 3.7.1 (up from 3.7.0), for compatibility with the latest Twisted trunk. diff --git a/changelog.d/12614.misc b/changelog.d/12614.misc deleted file mode 100644 index 79022df12..000000000 --- a/changelog.d/12614.misc +++ /dev/null @@ -1 +0,0 @@ -Add extra debug logging to federation sender. diff --git a/changelog.d/12616.misc b/changelog.d/12616.misc deleted file mode 100644 index d17ce24cd..000000000 --- a/changelog.d/12616.misc +++ /dev/null @@ -1 +0,0 @@ -Prevent remote homeservers from requesting local user device names by default. \ No newline at end of file diff --git a/changelog.d/12619.feature b/changelog.d/12619.feature deleted file mode 100644 index b0fc0f5fe..000000000 --- a/changelog.d/12619.feature +++ /dev/null @@ -1 +0,0 @@ -Add new `mau_appservice_trial_days` configuration option to specify a different trial period for users registered via an appservice. diff --git a/changelog.d/12620.misc b/changelog.d/12620.misc deleted file mode 100644 index 63f8e540c..000000000 --- a/changelog.d/12620.misc +++ /dev/null @@ -1 +0,0 @@ -Add a consistency check on events which we read from the database. diff --git a/changelog.d/12621.doc b/changelog.d/12621.doc deleted file mode 100644 index d29fb9cb9..000000000 --- a/changelog.d/12621.doc +++ /dev/null @@ -1 +0,0 @@ -Add information about the TCP replication module to docs. diff --git a/changelog.d/12624.misc b/changelog.d/12624.misc deleted file mode 100644 index 8772d40fa..000000000 --- a/changelog.d/12624.misc +++ /dev/null @@ -1 +0,0 @@ -Remove use of constantly library and switch to enums for EventRedactBehaviour. Contributed by @andrewdoh. diff --git a/changelog.d/12627.doc b/changelog.d/12627.doc deleted file mode 100644 index 3a787dfef..000000000 --- a/changelog.d/12627.doc +++ /dev/null @@ -1 +0,0 @@ -Fixes to the formatting of README.rst. diff --git a/changelog.d/12632.misc b/changelog.d/12632.misc deleted file mode 100644 index 9e4ba79c7..000000000 --- a/changelog.d/12632.misc +++ /dev/null @@ -1 +0,0 @@ -Remove unused code related to receipts. diff --git a/changelog.d/12633.bugfix b/changelog.d/12633.bugfix deleted file mode 100644 index 32332acd9..000000000 --- a/changelog.d/12633.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a bug introduced in Synapse v1.53.0 where bundled aggregations for annotations/edits were incorrectly calculated. diff --git a/changelog.d/12635.feature b/changelog.d/12635.feature deleted file mode 100644 index cd5c45029..000000000 --- a/changelog.d/12635.feature +++ /dev/null @@ -1 +0,0 @@ -Implement [changes](https://github.com/matrix-org/matrix-spec-proposals/pull/2285/commits/4a77139249c2e830aec3c7d6bd5501a514d1cc27) to [MSC2285 (hidden read receipts)](https://github.com/matrix-org/matrix-spec-proposals/pull/2285). Contributed by @SimonBrandner. diff --git a/changelog.d/12636.feature b/changelog.d/12636.feature deleted file mode 100644 index cd5c45029..000000000 --- a/changelog.d/12636.feature +++ /dev/null @@ -1 +0,0 @@ -Implement [changes](https://github.com/matrix-org/matrix-spec-proposals/pull/2285/commits/4a77139249c2e830aec3c7d6bd5501a514d1cc27) to [MSC2285 (hidden read receipts)](https://github.com/matrix-org/matrix-spec-proposals/pull/2285). Contributed by @SimonBrandner. diff --git a/changelog.d/12637.misc b/changelog.d/12637.misc deleted file mode 100644 index 735257787..000000000 --- a/changelog.d/12637.misc +++ /dev/null @@ -1 +0,0 @@ -Minor improvements to the scripts for running Synapse in worker mode under Complement. diff --git a/changelog.d/12639.bugfix b/changelog.d/12639.bugfix deleted file mode 100644 index c01596282..000000000 --- a/changelog.d/12639.bugfix +++ /dev/null @@ -1 +0,0 @@ -Add new `enable_registration_token_3pid_bypass` configuration option to allow registrations via token as an alternative to verifying a 3pid. \ No newline at end of file diff --git a/changelog.d/12650.misc b/changelog.d/12650.misc deleted file mode 100644 index 07bb4ce5a..000000000 --- a/changelog.d/12650.misc +++ /dev/null @@ -1 +0,0 @@ -Update to mypy 0.950. \ No newline at end of file diff --git a/changelog.d/12652.misc b/changelog.d/12652.misc deleted file mode 100644 index 7b7c1cf5f..000000000 --- a/changelog.d/12652.misc +++ /dev/null @@ -1 +0,0 @@ -Move `pympler` back in to the `all` extras. diff --git a/changelog.d/12656.misc b/changelog.d/12656.misc deleted file mode 100644 index 8a8743e61..000000000 --- a/changelog.d/12656.misc +++ /dev/null @@ -1 +0,0 @@ -Prevent memory leak from reoccurring when presence is disabled. diff --git a/changelog.d/12657.bugfix b/changelog.d/12657.bugfix deleted file mode 100644 index 7547ca40a..000000000 --- a/changelog.d/12657.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix a long-standing bug where rooms containing power levels with string values could not be upgraded. diff --git a/changelog.d/12663.misc b/changelog.d/12663.misc deleted file mode 100644 index 3b466f1dd..000000000 --- a/changelog.d/12663.misc +++ /dev/null @@ -1 +0,0 @@ -Log status code of cancelled requests as 499 and avoid logging stack traces for them. diff --git a/changelog.d/12664.doc b/changelog.d/12664.doc deleted file mode 100644 index 142d18037..000000000 --- a/changelog.d/12664.doc +++ /dev/null @@ -1 +0,0 @@ -Fix docs on how to run specific Complement tests using the `complement.sh` test runner. diff --git a/changelog.d/12665.misc b/changelog.d/12665.misc deleted file mode 100644 index 37b96fea3..000000000 --- a/changelog.d/12665.misc +++ /dev/null @@ -1 +0,0 @@ -Fix spelling of `M_UNRECOGNIZED` in comments. diff --git a/changelog.d/12666.misc b/changelog.d/12666.misc deleted file mode 100644 index 96268e33f..000000000 --- a/changelog.d/12666.misc +++ /dev/null @@ -1 +0,0 @@ -Use `Concatenate` to better annotate `_do_execute`. diff --git a/changelog.d/12667.misc b/changelog.d/12667.misc deleted file mode 100644 index 2b17502d6..000000000 --- a/changelog.d/12667.misc +++ /dev/null @@ -1 +0,0 @@ -Use `ParamSpec` to refine type hints. diff --git a/changelog.d/12670.feature b/changelog.d/12670.feature deleted file mode 100644 index cd5c45029..000000000 --- a/changelog.d/12670.feature +++ /dev/null @@ -1 +0,0 @@ -Implement [changes](https://github.com/matrix-org/matrix-spec-proposals/pull/2285/commits/4a77139249c2e830aec3c7d6bd5501a514d1cc27) to [MSC2285 (hidden read receipts)](https://github.com/matrix-org/matrix-spec-proposals/pull/2285). Contributed by @SimonBrandner. diff --git a/changelog.d/12671.misc b/changelog.d/12671.misc deleted file mode 100644 index 56df4e383..000000000 --- a/changelog.d/12671.misc +++ /dev/null @@ -1 +0,0 @@ -Fix mypy against latest pillow stubs. diff --git a/debian/changelog b/debian/changelog index 5b21e0d36..fabc690ba 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,11 @@ -matrix-synapse-py3 (1.58.2) UNRELEASED; urgency=medium +matrix-synapse-py3 (1.59.0~rc1) stable; urgency=medium * Adjust how the `exported-requirements.txt` file is generated as part of the process of building these packages. This affects the package maintainers only; end-users are unaffected. + * New Synapse release 1.59.0rc1. - -- Synapse Packaging team Fri, 06 May 2022 13:49:29 +0100 + -- Synapse Packaging team Tue, 10 May 2022 10:45:08 +0100 matrix-synapse-py3 (1.58.1) stable; urgency=medium diff --git a/docs/upgrade.md b/docs/upgrade.md index 18c33a419..fa4b3ef59 100644 --- a/docs/upgrade.md +++ b/docs/upgrade.md @@ -101,29 +101,36 @@ To re-enable this functionality, set the homeserver config option to `true`. -## Deprecation of the `synapse.app.appservice` worker application type +## Deprecation of the `synapse.app.appservice` and `synapse.app.user_dir` worker application types The `synapse.app.appservice` worker application type allowed you to configure a single worker to use to notify application services of new events, as long as this functionality was disabled on the main process with `notify_appservices: False`. +Further, the `synapse.app.user_dir` worker application type allowed you to configure +a single worker to be responsible for updating the user directory, as long as this +was disabled on the main process with `update_user_directory: False`. To unify Synapse's worker types, the `synapse.app.appservice` worker application type and the `notify_appservices` configuration option have been deprecated. +The `synapse.app.user_dir` worker application type and `update_user_directory` +configuration option have also been deprecated. -To get the same functionality, it's now recommended that the `synapse.app.generic_worker` -worker application type is used and that the `notify_appservices_from_worker` option -is set to the name of a worker. +To get the same functionality as was provided by the deprecated options, it's now recommended that the `synapse.app.generic_worker` +worker application type is used and that the `notify_appservices_from_worker` and/or +`update_user_directory_from_worker` options are set to the name of a worker. -For the time being, `notify_appservices_from_worker` can be used alongside -`synapse.app.appservice` and `notify_appservices` to make it easier to transition -between the two configurations, however please note that: +For the time being, the old options can be used alongside the new options to make +it easier to transition between the two configurations, however please note that: - the options must not contradict each other (otherwise Synapse won't start); and -- the `notify_appservices` option will be removed in a future release of Synapse. +- the `notify_appservices` and `update_user_directory` options will be removed in a future release of Synapse. -Please see [the relevant section of the worker documentation][v1_59_notify_ases_from] for more information. +Please see the [*Notifying Application Services*][v1_59_notify_ases_from] and +[*Updating the User Directory*][v1_59_update_user_dir] sections of the worker +documentation for more information. [v1_59_notify_ases_from]: workers.md#notifying-application-services +[v1_59_update_user_dir]: workers.md#updating-the-user-directory # Upgrading to v1.58.0 diff --git a/docs/workers.md b/docs/workers.md index 1d049b6c4..553792d23 100644 --- a/docs/workers.md +++ b/docs/workers.md @@ -426,7 +426,7 @@ the shared configuration would include: run_background_tasks_on: background_worker ``` -You might also wish to investigate the `update_user_directory` and +You might also wish to investigate the `update_user_directory_from_worker` and `media_instance_running_background_jobs` settings. An example for a dedicated background worker instance: @@ -435,9 +435,26 @@ An example for a dedicated background worker instance: {{#include systemd-with-workers/workers/background_worker.yaml}} ``` +#### Updating the User Directory + +You can designate one generic worker to update the user directory. + +Specify its name in the shared configuration as follows: + +```yaml +update_user_directory_from_worker: worker_name +``` + +This work cannot be load-balanced; please ensure the main process is restarted +after setting this option in the shared configuration! + +This style of configuration supersedes the legacy `synapse.app.user_dir` +worker application type. + + #### Notifying Application Services -You can designate one worker to send output traffic to Application Services. +You can designate one generic worker to send output traffic to Application Services. Specify its name in the shared configuration as follows: @@ -470,7 +487,7 @@ pusher_instances: ### `synapse.app.appservice` -**Deprecated as of Synapse v1.58.** [Use `synapse.app.generic_worker` with the +**Deprecated as of Synapse v1.59.** [Use `synapse.app.generic_worker` with the `notify_appservices_from_worker` option instead.](#notifying-application-services) Handles sending output traffic to Application Services. Doesn't handle any @@ -540,6 +557,9 @@ Note that if a reverse proxy is used , then `/_matrix/media/` must be routed for ### `synapse.app.user_dir` +**Deprecated as of Synapse v1.59.** [Use `synapse.app.generic_worker` with the +`update_user_directory_from_worker` option instead.](#updating-the-user-directory) + Handles searches in the user directory. It can handle REST endpoints matching the following regular expressions: diff --git a/pyproject.toml b/pyproject.toml index 2c4b7eb08..e3d81ae5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,7 +54,7 @@ skip_gitignore = true [tool.poetry] name = "matrix-synapse" -version = "1.58.1" +version = "1.59.0rc1" description = "Homeserver for the Matrix decentralised comms protocol" authors = ["Matrix.org Team and Contributors "] license = "Apache-2.0" diff --git a/synapse/app/admin_cmd.py b/synapse/app/admin_cmd.py index 2b0d92cba..2a4c2e59c 100644 --- a/synapse/app/admin_cmd.py +++ b/synapse/app/admin_cmd.py @@ -210,7 +210,7 @@ def start(config_options: List[str]) -> None: config.logging.no_redirect_stdio = True # Explicitly disable background processes - config.server.update_user_directory = False + config.worker.should_update_user_directory = False config.worker.run_background_tasks = False config.worker.start_pushers = False config.worker.pusher_shard_config.instances = [] diff --git a/synapse/app/generic_worker.py b/synapse/app/generic_worker.py index 07dddc0b1..2a9480a5c 100644 --- a/synapse/app/generic_worker.py +++ b/synapse/app/generic_worker.py @@ -441,22 +441,6 @@ def start(config_options: List[str]) -> None: "synapse.app.user_dir", ) - if config.worker.worker_app == "synapse.app.user_dir": - if config.server.update_user_directory: - sys.stderr.write( - "\nThe update_user_directory must be disabled in the main synapse process" - "\nbefore they can be run in a separate worker." - "\nPlease add ``update_user_directory: false`` to the main config" - "\n" - ) - sys.exit(1) - - # Force the pushers to start since they will be disabled in the main config - config.server.update_user_directory = True - else: - # For other worker types we force this to off. - config.server.update_user_directory = False - synapse.events.USE_FROZEN_DICTS = config.server.use_frozen_dicts synapse.util.caches.TRACK_MEMORY_USAGE = config.caches.track_memory_usage diff --git a/synapse/config/server.py b/synapse/config/server.py index 1e709c7cf..005a3ee48 100644 --- a/synapse/config/server.py +++ b/synapse/config/server.py @@ -319,10 +319,6 @@ class ServerConfig(Config): self.presence_router_config, ) = load_module(presence_router_config, ("presence", "presence_router")) - # Whether to update the user directory or not. This should be set to - # false only if we are updating the user directory in a worker - self.update_user_directory = config.get("update_user_directory", True) - # whether to enable the media repository endpoints. This should be set # to false if the media repository is running as a separate endpoint; # doing so ensures that we will not run cache cleanup jobs on the diff --git a/synapse/config/workers.py b/synapse/config/workers.py index a9dbcc6d3..e1569b3c1 100644 --- a/synapse/config/workers.py +++ b/synapse/config/workers.py @@ -311,6 +311,13 @@ class WorkerConfig(Config): new_option_name="notify_appservices_from_worker", ) + self.should_update_user_directory = self._should_this_worker_perform_duty( + config, + legacy_master_option_name="update_user_directory", + legacy_worker_app_name="synapse.app.user_dir", + new_option_name="update_user_directory_from_worker", + ) + def _should_this_worker_perform_duty( self, config: Dict[str, Any], diff --git a/synapse/handlers/user_directory.py b/synapse/handlers/user_directory.py index 048fd4bb8..74f7fdfe6 100644 --- a/synapse/handlers/user_directory.py +++ b/synapse/handlers/user_directory.py @@ -60,7 +60,7 @@ class UserDirectoryHandler(StateDeltasHandler): self.clock = hs.get_clock() self.notifier = hs.get_notifier() self.is_mine_id = hs.is_mine_id - self.update_user_directory = hs.config.server.update_user_directory + self.update_user_directory = hs.config.worker.should_update_user_directory self.search_all_users = hs.config.userdirectory.user_directory_search_all_users self.spam_checker = hs.get_spam_checker() # The current position in the current_state_delta stream diff --git a/tests/config/test_workers.py b/tests/config/test_workers.py index da81bb965..ef6294ecb 100644 --- a/tests/config/test_workers.py +++ b/tests/config/test_workers.py @@ -286,3 +286,30 @@ class WorkerDutyConfigTestCase(TestCase): "notify_appservices_from_worker", ) ) + + def test_worker_duty_configs(self) -> None: + """ + Additional tests for the worker duties + """ + + worker1_config = self._make_worker_config( + worker_app="synapse.app.generic_worker", + worker_name="worker1", + extras={ + "notify_appservices_from_worker": "worker2", + "update_user_directory_from_worker": "worker1", + }, + ) + self.assertFalse(worker1_config.should_notify_appservices) + self.assertTrue(worker1_config.should_update_user_directory) + + worker2_config = self._make_worker_config( + worker_app="synapse.app.generic_worker", + worker_name="worker2", + extras={ + "notify_appservices_from_worker": "worker2", + "update_user_directory_from_worker": "worker1", + }, + ) + self.assertTrue(worker2_config.should_notify_appservices) + self.assertFalse(worker2_config.should_update_user_directory)