Releases: matrix-org/synapse
v1.80.0rc1
Synapse 1.80.0rc1 (2023-03-21)
Features
- Stabilise support for MSC3966:
event_property_contains
push condition. (#15187) - Implement MSC2659: application service ping endpoint. Contributed by Tulir @ Beeper. (#15249)
- Allow loading
/register/available
endpoint on workers. (#15268) - Improve performance of creating and authenticating events. (#15195)
- Add topic and name events to group of events that are batch persisted when creating a room. (#15229)
Bugfixes
- Fix a long-standing bug in which the user directory would assume any remote membership state events represent a profile change. (#14755, #14756)
- Implement MSC3873 to fix a long-standing bug where properties with dots were handled ambiguously in push rules. (#15190)
- Faster joins: Fix a bug introduced in Synapse 1.66 where spurious "Failed to find memberships ..." errors would be logged. (#15232)
- Fix a long-standing error when sending message into deleted room. (#15235)
Updates to the Docker image
- Ensure the Dockerfile builds on platforms that don't have a
cryptography
wheel. (#15239) - Mirror images to the GitHub Container Registry (
ghcr.io/matrix-org/synapse
). (#15281, #15282)
Improved Documentation
- Add a missing endpoint to the workers documentation. (#15223)
Internal Changes
- Add additional functionality to declaring worker types when starting Complement in worker mode. (#14921)
- Add
Synapse-Trace-Id
toaccess-control-expose-headers
header. (#14974) - Make the
HttpTransactionCache
use theRequester
in addition of the just theRequest
to build the transaction key. (#15200) - Improve log lines when purging rooms. (#15222)
- Improve type hints. (#15230, #15231, #15238)
- Move various module API callback registration methods to a dedicated class. (#15237)
- Configure GitHub Actions for merge queues. (#15244)
- Add schema comments about the
destinations
anddestination_rooms
tables. (#15247) - Skip processing of auto-join room behaviour if there are no auto-join rooms configured. (#15262)
- Remove unused store method
_set_destination_retry_timings_emulated
. (#15266) - Reorganize URL preview code. (#15269)
- Clean-up direct TCP replication code. (#15272, #15274)
- Make
configure_workers_and_start
script used in Complement tests compatible with older versions of Python. (#15275) - Add a
/versions
flag for MSC3952. (#15293) - Bump hiredis from 2.2.1 to 2.2.2. (#15252)
- Bump serde from 1.0.152 to 1.0.155. (#15253)
- Bump pysaml2 from 7.2.1 to 7.3.1. (#15254)
- Bump msgpack from 1.0.4 to 1.0.5. (#15255)
- Bump gitpython from 3.1.30 to 3.1.31. (#15256)
- Bump cryptography from 39.0.1 to 39.0.2. (#15257)
- Bump pydantic from 1.10.4 to 1.10.6. (#15286)
- Bump serde from 1.0.155 to 1.0.157. (#15287)
- Bump anyhow from 1.0.69 to 1.0.70. (#15288)
- Bump txredisapi from 1.4.7 to 1.4.9. (#15289)
- Bump pygithub from 1.57 to 1.58.1. (#15290)
- Bump types-requests from 2.28.11.12 to 2.28.11.15. (#15291)
v1.79.0
Synapse 1.79.0 (2023-03-14)
No significant changes since 1.79.0rc2.
Synapse 1.79.0rc2 (2023-03-13)
Bugfixes
- Fix a bug introduced in Synapse 1.79.0rc1 where attempting to register a
on_remove_user_third_party_identifier
module API callback would be a no-op. (#15227) - Fix a rare bug introduced in Synapse 1.73 where events could remain unsent to other homeservers after a faster-join to a room. (#15248)
Internal Changes
- Refactor
filter_events_for_server
. (#15240)
Synapse 1.79.0rc1 (2023-03-07)
Features
- Add two new Third Party Rules module API callbacks:
on_add_user_third_party_identifier
andon_remove_user_third_party_identifier
. (#15044) - Experimental support for MSC3967 to not require UIA for setting up cross-signing on first use. (#15077)
- Add media information to the command line user data export tool. (#15107)
- Add an admin API to delete a specific event report. (#15116)
- Add support for knocking to workers. (#15133)
- Allow use of the
/filter
Client-Server APIs on workers. (#15134) - Update support for MSC2677: remove support for server-side aggregation of reactions. (#15172)
- Stabilise support for MSC3758:
event_property_is
push condition. (#15185)
Bugfixes
- Fix a bug introduced in Synapse 1.75 that caused experimental support for deleting account data to raise an internal server error while using an account data writer worker. (#14869)
- Fix a long-standing bug where Synapse handled an unspecced field on push rules. (#15088)
- Fix a long-standing bug where a URL preview would break if the discovered oEmbed failed to download. (#15092)
- Fix a long-standing bug where an initial sync would not respond to changes to the list of ignored users if there was an initial sync cached. (#15163)
- Add the
transaction_id
in the events included in many endpoints' responses. (#15174) - Fix a bug introduced in Synapse 1.78.0 where requests to claim dehydrated devices would fail with a
405
error. (#15180) - Stop applying edits when bundling aggregations, per MSC3925. (#15193)
- Fix a long-standing bug where the user directory search was not case-insensitive for accented characters. (#15143)
Updates to the Docker image
- Improve startup logging in the with-workers Docker image. (#15186)
Improved Documentation
- Document how to use caches in a module. (#14026)
- Clarify which worker processes the ThirdPartyRules'
on_new_event
module API callback runs on. (#15071) - Document using Shibboleth as an OpenID Provider. (#15112)
- Correct reference to
federation_verify_certificates
in configuration documentation. (#15139) - Correct small documentation errors in some
MatrixFederationHttpClient
methods. (#15148) - Correct the description of the behavior of
registration_shared_secret_path
on startup. (#15168)
Deprecations and Removals
- Deprecate the
on_threepid_bind
module callback, to be replaced byon_add_user_third_party_identifier
. See upgrade notes. (#15044) - Remove the unspecced
room_alias
field from the/createRoom
response. (#15093) - Remove the unspecced
PUT
on the/knock/{roomIdOrAlias}
endpoint. (#15189) - Remove the undocumented and unspecced
type
parameter to the/thumbnail
endpoint. (#15137) - Remove unspecced and buggy
PUT
method on the unstable/rooms/<room_id>/batch_send
endpoint. (#15199)
Internal Changes
- Run the integration test suites with the asyncio reactor enabled in CI. (#14101)
- Batch up storing state groups when creating a new room. (#14918)
- Update MSC3952 support based on changes to the MSC. (#15051)
- Refactor writing json data in
FileExfiltrationWriter
. (#15095) - Tighten the login ratelimit defaults. (#15135)
- Fix a typo in an experimental config setting. (#15138)
- Refactor the media modules. (#15146, #15175)
- Improve type hints. (#15164)
- Move
get_event_report
andget_event_reports_paginate
fromRoomStore
toRoomWorkerStore
. (#15165) - Remove dangling reference to being a reference implementation in docstring. (#15167)
- Add an option to force a rebuild of the "editable" complement image. (#15184)
- Use nightly rustfmt in CI. (#15188)
- Add a
get_next_txn
method toStreamIdGenerator
to matchMultiWriterIdGenerator
. (#15191) - Combine
AbstractStreamIdTracker
andAbstractStreamIdGenerator
. (#15192) - Automatically fix errors with
ruff
. (#15194) - Refactor database transaction for query users' devices to reduce database pool contention. (#15215)
- Correct
test_icu_word_boundary_punctuation
so that it passes with the ICU versions available in Alpine and macOS. (#15177)
Locked dependency updates
- Bump actions/checkout from 2 to 3. (#15155)
- Bump black from 22.12.0 to 23.1.0. (#15103)
- Bump dawidd6/action-download-artifact from 2.25.0 to 2.26.0. (#15152)
- Bump docker/login-action from 1 to 2. (#15154)
- Bump matrix-org/backend-meta from 1 to 2. (#15156)
- Bump ruff from 0.0.237 to 0.0.252. (#15159)
- Bump serde_json from 1.0.93 to 1.0.94. (#15214)
- Bump types-commonmark from 0.9.2.1 to 0.9.2.2. (#15209)
- Bump types-opentracing from 2.4.10.1 to 2.4.10.3. (#15158)
- Bump types-pillow from 9.4.0.13 to 9.4.0.17. (#15211)
- Bump types-psycopg2 from 2.9.21.4 to 2.9.21.8. ([#15210](https://...
v1.79.0rc2
Synapse 1.79.0rc2 (2023-03-13)
Bugfixes
- Fix a bug introduced in Synapse 1.79.0rc1 where attempting to register a
on_remove_user_third_party_identifier
module API callback would be a no-op. (#15227) - Fix a rare bug introduced in Synapse 1.73 where events could remain unsent to other homeservers after a faster-join to a room. (#15248)
Internal Changes
- Refactor
filter_events_for_server
. (#15240)
v1.79.0rc1
Synapse 1.79.0rc1 (2023-03-07)
Features
- Add two new Third Party Rules module API callbacks:
on_add_user_third_party_identifier
andon_remove_user_third_party_identifier
. (#15044) - Experimental support for MSC3967 to not require UIA for setting up cross-signing on first use. (#15077)
- Add media information to the command line user data export tool. (#15107)
- Add an admin API to delete a specific event report. (#15116)
- Add support for knocking to workers. (#15133)
- Allow use of the
/filter
Client-Server APIs on workers. (#15134) - Update support for MSC2677: remove support for server-side aggregation of reactions. (#15172)
- Stabilise support for MSC3758:
event_property_is
push condition. (#15185)
Bugfixes
- Fix a bug introduced in Synapse 1.75 that caused experimental support for deleting account data to raise an internal server error while using an account data writer worker. (#14869)
- Fix a long-standing bug where Synapse handled an unspecced field on push rules. (#15088)
- Fix a long-standing bug where a URL preview would break if the discovered oEmbed failed to download. (#15092)
- Fix a long-standing bug where an initial sync would not respond to changes to the list of ignored users if there was an initial sync cached. (#15163)
- Add the
transaction_id
in the events included in many endpoints' responses. (#15174) - Fix a bug introduced in Synapse 1.78.0 where requests to claim dehydrated devices would fail with a
405
error. (#15180) - Stop applying edits when bundling aggregations, per MSC3925. (#15193)
- Fix a long-standing bug where the user directory search was not case-insensitive for accented characters. (#15143)
Updates to the Docker image
- Improve startup logging in the with-workers Docker image. (#15186)
Improved Documentation
- Document how to use caches in a module. (#14026)
- Clarify which worker processes the ThirdPartyRules'
on_new_event
module API callback runs on. (#15071) - Document using Shibboleth as an OpenID Provider. (#15112)
- Correct reference to
federation_verify_certificates
in configuration documentation. (#15139) - Correct small documentation errors in some
MatrixFederationHttpClient
methods. (#15148) - Correct the description of the behavior of
registration_shared_secret_path
on startup. (#15168)
Deprecations and Removals
- Deprecate the
on_threepid_bind
module callback, to be replaced byon_add_user_third_party_identifier
. See upgrade notes. ([#15044] - Remove the unspecced
room_alias
field from the/createRoom
response. (#15093) - Remove the unspecced
PUT
on the/knock/{roomIdOrAlias}
endpoint. (#15189) - Remove the undocumented and unspecced
type
parameter to the/thumbnail
endpoint. (#15137) - Remove unspecced and buggy
PUT
method on the unstable/rooms/<room_id>/batch_send
endpoint. (#15199)
Internal Changes
- Run the integration test suites with the asyncio reactor enabled in CI. (#14101)
- Batch up storing state groups when creating a new room. (#14918)
- Update MSC3952 support based on changes to the MSC. (#15051)
- Refactor writing json data in
FileExfiltrationWriter
. (#15095) - Tighten the login ratelimit defaults. (#15135)
- Fix a typo in an experimental config setting. (#15138)
- Refactor the media modules. (#15146, #15175)
- Improve type hints. (#15164)
- Move
get_event_report
andget_event_reports_paginate
fromRoomStore
toRoomWorkerStore
. (#15165) - Remove dangling reference to being a reference implementation in docstring. (#15167)
- Add an option to force a rebuild of the "editable" complement image. (#15184)
- Use nightly rustfmt in CI. (#15188)
- Add a
get_next_txn
method toStreamIdGenerator
to matchMultiWriterIdGenerator
. (#15191) - Combine
AbstractStreamIdTracker
andAbstractStreamIdGenerator
. (#15192) - Automatically fix errors with
ruff
. (#15194) - Refactor database transaction for query users' devices to reduce database pool contention. (#15215)
- Correct
test_icu_word_boundary_punctuation
so that it passes with the ICU versions available in Alpine and macOS. (#15177)
Locked dependency updates
- Bump actions/checkout from 2 to 3. (#15155)
- Bump black from 22.12.0 to 23.1.0. (#15103)
- Bump dawidd6/action-download-artifact from 2.25.0 to 2.26.0. (#15152)
- Bump docker/login-action from 1 to 2. (#15154)
- Bump matrix-org/backend-meta from 1 to 2. (#15156)
- Bump ruff from 0.0.237 to 0.0.252. (#15159)
- Bump serde_json from 1.0.93 to 1.0.94. (#15214)
- Bump types-commonmark from 0.9.2.1 to 0.9.2.2. (#15209)
- Bump types-opentracing from 2.4.10.1 to 2.4.10.3. (#15158)
- Bump types-pillow from 9.4.0.13 to 9.4.0.17. (#15211)
- Bump types-psycopg2 from 2.9.21.4 to 2.9.21.8. (#15210)
- Bump types-pyopenssl from 22.1.0.2 to 23.0.0.4. (#15213)
- Bump types-setuptools from 67.3.0.1 to 67.4.0.3. (#15160)
- Bump types-setuptools from 67.4.0.3 to 67.5.0.0. (#15212)
- Bump typing-extensions from 4.4.0 to 4.5.0. (#15157)
v1.78.0
Synapse 1.78.0 (2023-02-28)
Bugfixes
- Fix a bug introduced in Synapse 1.76 where 5s delays would occasionally occur in deployments using workers. (#15150)
Synapse 1.78.0rc1 (2023-02-21)
Features
- Implement the experimental
exact_event_match
push rule condition from MSC3758. (#14964) - Add account data to the command line user data export tool. (#14969)
- Implement MSC3873 to disambiguate push rule keys with dots in them. (#15004)
- Allow Synapse to use a specific Redis logical database in worker-mode deployments. (#15034)
- Tag opentracing spans for federation requests with the name of the worker serving the request. (#15042)
- Implement the experimental
exact_event_property_contains
push rule condition from MSC3966. (#15045) - Remove spurious
dont_notify
action from the defaults for the.m.rule.reaction
pushrule. (#15073) - Update the error code returned when user sends a duplicate annotation. (#15075)
Bugfixes
- Prevent clients from reporting nonexistent events. (#13779)
- Return spec-compliant JSON errors when unknown endpoints are requested. (#14605)
- Fix a long-standing bug where the room aliases returned could be corrupted. (#15038)
- Fix a bug introduced in Synapse 1.76.0 where partially-joined rooms could not be deleted using the purge room API. (#15068)
- Fix a long-standing bug where federated joins would fail if the first server in the list of servers to try is not in the room. (#15074)
- Fix a bug introduced in Synapse v1.74.0 where searching with colons when using ICU for search term tokenisation would fail with an error. (#15079)
- Reduce the likelihood of a rare race condition where rejoining a restricted room over federation would fail. (#15080)
- Fix a bug introduced in Synapse 1.76 where workers would fail to start if the
health
listener was configured. (#15096) - Fix a bug introduced in Synapse 1.75 where the portdb script would fail to run after a room had been faster-joined. (#15108)
Improved Documentation
- Document how to start Synapse with Poetry. Contributed by @thezaidbintariq. (#14892, #15022)
- Update delegation documentation to clarify that SRV DNS delegation does not eliminate all needs to serve files from .well-known locations. Contributed by @williamkray. (#14959)
- Fix a mistake in registration_shared_secret_path docs. (#15078)
- Refer to a more recent blog post on the Database Maintenance Tools page. Contributed by @jahway603. (#15083)
Internal Changes
- Re-type hint some collections as read-only. (#13755)
- Faster joins: don't stall when another user joins during a partial-state room resync. (#14606)
- Add a class
UnpersistedEventContext
to allow for the batching up of storing state groups. (#14675) - Add a check to ensure that locked dependencies have source distributions available. (#14742)
- Tweak comment on
_is_local_room_accessible
as part of room visibility in/hierarchy
to clarify the condition for a room being visible. (#14834) - Prevent
WARNING: there is already a transaction in progress
lines appearing in PostgreSQL's logs on some occasions. (#14840) - Use
StrCollection
to avoid potential bugs withCollection[str]
. (#14929) - Improve performance of
/sync
in a few situations. (#14973) - Limit concurrent event creation for a room to avoid state resolution when sending bursts of events to a local room. (#14977)
- Skip calculating unread push actions in /sync when enable_push is false. (#14980)
- Add a schema dump symlinks inside
contrib
, to make it easier for IDEs to interrogate Synapse's database schema. (#14982) - Improve type hints. (#15008, #15026, #15027, #15028, #15031, #15035, #15052, #15072, #15084)
- Update MSC3952 support based on changes to the MSC. (#15037)
- Avoid mutating a cached value in
get_user_devices_from_cache
. (#15040) - Fix a rare exception in logs on start up. (#15041)
- Update pyo3-log to v0.8.1. (#15043)
- Avoid mutating cached values in
_generate_sync_entry_for_account_data
. (#15047) - Refactor arguments of
try_unbind_threepid
and_try_unbind_threepid_with_id_server
to not use dictionaries. (#15053) - Merge debug logging from the hotfixes branch. (#15054)
- Faster joins: omit device list updates originating from partial state rooms in /sync responses without lazy loading of members enabled. (#15069)
- Fix clashing database transaction name. (#15070)
- Upper-bound frozendict dependency. This works around us being unable to test installing our wheels against Python 3.11 in CI. (#15114)
- Tweak logging for when a worker waits for its view of a replication stream to catch up. (#15120)
Locked dependency updates
- Bump bleach from 5.0.1 to 6.0.0. (#15059)
- Bump cryptography from 38.0.4 to 39.0.1. (#15020)
- Bump ruff version from 0.0.230 to 0.0.237. (#15033)
- Bump dtolnay/rust-toolchain from 9cd00a88a73addc8617065438eff914dd08d0955 to 25dc93b901a87e864900a8aec6c12e9aa794c0c3. (#15060)
- Bump systemd-python from 234 to 235. (#15061)
- Bump serde_json from 1.0.92 to 1.0.93. (#15062)
- Bump types-requests from 2.28.11.8 to 2.28.11.12. (#15063)
- Bump types-pillow from 9.4.0.5 to 9.4.0.10. (#15064)
- Bump sentry-sdk from 1.13.0 to 1.15.0. (#15065)
- Bump types-jsonschema from 4.17.0.3 to 4.17.0.5. (#15099)
- Bump types-bleach from 5.0.3.1 to 6.0.0.0. (#15100)
- Bump dtolnay/rust-toolchain from 25dc93b901a87e864900a8aec6c12e9aa794c0c3 to e12eda571dc9a5ee5d58eecf4738ec291c66f295. (#15101)
- Bump dawidd6/action-download-artifact from 2.24.3 t...
v1.78.0rc1
Synapse 1.78.0rc1 (2023-02-21)
Features
- Implement the experimental
exact_event_match
push rule condition from MSC3758. (#14964) - Add account data to the command line user data export tool. (#14969)
- Implement MSC3873 to disambiguate push rule keys with dots in them. (#15004)
- Allow Synapse to use a specific Redis logical database in worker-mode deployments. (#15034)
- Tag opentracing spans for federation requests with the name of the worker serving the request. (#15042)
- Implement the experimental
exact_event_property_contains
push rule condition from MSC3966. (#15045) - Remove spurious
dont_notify
action from the defaults for the.m.rule.reaction
pushrule. (#15073) - Update the error code returned when user sends a duplicate annotation. (#15075)
Bugfixes
- Prevent clients from reporting nonexistent events. (#13779)
- Return spec-compliant JSON errors when unknown endpoints are requested. (#14605)
- Fix a long-standing bug where the room aliases returned could be corrupted. (#15038)
- Fix a bug introduced in Synapse 1.76.0 where partially-joined rooms could not be deleted using the purge room API. (#15068)
- Fix a long-standing bug where federated joins would fail if the first server in the list of servers to try is not in the room. (#15074)
- Fix a bug introduced in Synapse v1.74.0 where searching with colons when using ICU for search term tokenisation would fail with an error. (#15079)
- Reduce the likelihood of a rare race condition where rejoining a restricted room over federation would fail. (#15080)
- Fix a bug introduced in Synapse 1.76 where workers would fail to start if the
health
listener was configured. (#15096) - Fix a bug introduced in Synapse 1.75 where the portdb script would fail to run after a room had been faster-joined. (#15108)
Improved Documentation
- Document how to start Synapse with Poetry. Contributed by @thezaidbintariq. (#14892, #15022)
- Update delegation documentation to clarify that SRV DNS delegation does not eliminate all needs to serve files from .well-known locations. Contributed by @williamkray. (#14959)
- Fix a mistake in registration_shared_secret_path docs. (#15078)
- Refer to a more recent blog post on the Database Maintenance Tools page. Contributed by @jahway603. (#15083)
Internal Changes
- Re-type hint some collections as read-only. (#13755)
- Faster joins: don't stall when another user joins during a partial-state room resync. (#14606)
- Add a class
UnpersistedEventContext
to allow for the batching up of storing state groups. (#14675) - Add a check to ensure that locked dependencies have source distributions available. (#14742)
- Tweak comment on
_is_local_room_accessible
as part of room visibility in/hierarchy
to clarify the condition for a room being visible. (#14834) - Prevent
WARNING: there is already a transaction in progress
lines appearing in PostgreSQL's logs on some occasions. (#14840) - Use
StrCollection
to avoid potential bugs withCollection[str]
. (#14929) - Improve performance of
/sync
in a few situations. (#14973) - Limit concurrent event creation for a room to avoid state resolution when sending bursts of events to a local room. (#14977)
- Skip calculating unread push actions in /sync when enable_push is false. (#14980)
- Add a schema dump symlinks inside
contrib
, to make it easier for IDEs to interrogate Synapse's database schema. (#14982) - Improve type hints. (#15008, #15026, #15027, #15028, #15031, #15035, #15052, #15072, #15084)
- Update MSC3952 support based on changes to the MSC. (#15037)
- Avoid mutating a cached value in
get_user_devices_from_cache
. (#15040) - Fix a rare exception in logs on start up. (#15041)
- Update pyo3-log to v0.8.1. (#15043)
- Avoid mutating cached values in
_generate_sync_entry_for_account_data
. (#15047) - Refactor arguments of
try_unbind_threepid
and_try_unbind_threepid_with_id_server
to not use dictionaries. (#15053) - Merge debug logging from the hotfixes branch. (#15054)
- Faster joins: omit device list updates originating from partial state rooms in /sync responses without lazy loading of members enabled. (#15069)
- Fix clashing database transaction name. (#15070)
- Upper-bound frozendict dependency. This works around us being unable to test installing our wheels against Python 3.11 in CI. (#15114)
- Tweak logging for when a worker waits for its view of a replication stream to catch up. (#15120)
Locked dependency updates
- Bump bleach from 5.0.1 to 6.0.0. (#15059)
- Bump cryptography from 38.0.4 to 39.0.1. (#15020)
- Bump ruff version from 0.0.230 to 0.0.237. (#15033)
- Bump dtolnay/rust-toolchain from 9cd00a88a73addc8617065438eff914dd08d0955 to 25dc93b901a87e864900a8aec6c12e9aa794c0c3. (#15060)
- Bump systemd-python from 234 to 235. (#15061)
- Bump serde_json from 1.0.92 to 1.0.93. (#15062)
- Bump types-requests from 2.28.11.8 to 2.28.11.12. (#15063)
- Bump types-pillow from 9.4.0.5 to 9.4.0.10. (#15064)
- Bump sentry-sdk from 1.13.0 to 1.15.0. (#15065)
- Bump types-jsonschema from 4.17.0.3 to 4.17.0.5. (#15099)
- Bump types-bleach from 5.0.3.1 to 6.0.0.0. (#15100)
- Bump dtolnay/rust-toolchain from 25dc93b901a87e864900a8aec6c12e9aa794c0c3 to e12eda571dc9a5ee5d58eecf4738ec291c66f295. (#15101)
- Bump dawidd6/action-download-artifact from 2.24.3 to 2.25.0. (#15102)
- Bump types-pillow from 9.4.0.10 to 9.4.0.13. (#15104)
- Bump types-setuptools from 67.1.0.0 to 67.3.0.1. (#15105)
v1.77.0
Synapse 1.77.0 (2023-02-14)
No significant changes since 1.77.0rc2.
Synapse 1.77.0rc2 (2023-02-10)
Bugfixes
- Fix bug where retried replication requests would return a failure. Introduced in v1.76.0. (#15024)
Internal Changes
- Prepare for future database schema changes. (#15036)
Synapse 1.77.0rc1 (2023-02-07)
Features
- Experimental support for MSC3952: intentional mentions. (#14823, #14943, #14957, #14958)
- Experimental support to suppress notifications from message edits (MSC3958). (#14960, #15016)
- Add profile information, devices and connections to the command line user data export tool. (#14894)
- Improve performance when joining or sending an event in large rooms. (#14962)
- Improve performance of joining and leaving large rooms with many local users. (#14971)
Bugfixes
- Fix a bug introduced in Synapse 1.53.0 where
next_batch
tokens from/sync
could not be used with the/relations
endpoint. (#14866) - Fix a bug introduced in Synapse 1.35.0 where the module API's
send_local_online_presence_to
would fail to send presence updates over federation. (#14880) - Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. (#14915)
- Fix a regression introduced in Synapse 1.69.0 which can result in database corruption when database migrations are interrupted on sqlite. (#14926)
- Fix a bug introduced in Synapse 1.68.0 where we were unable to service remote joins in rooms with
@room
notification levels set tonull
in their (malformed) power levels. (#14942) - Fix a bug introduced in Synapse 1.64.0 where boolean power levels were erroneously permitted in v10 rooms. (#14944)
- Fix a long-standing bug where sending messages on servers with presence enabled would spam "Re-starting finished log context" log lines. (#14947)
- Fix a bug introduced in Synapse 1.68.0 where logging from the Rust module was not properly logged. (#14976)
- Fix various long-standing bugs in Synapse's config, event and request handling where booleans were unintentionally accepted where an integer was expected. (#14945)
Internal Changes
- Add missing type hints. (#14879, #14886, #14887, #14904, #14927, #14956, #14983, #14984, #14985, #14987, #14988, #14990, #14991, #14992, #15007)
- Use
StrCollection
to avoid potential bugs withCollection[str]
. (#14922) - Allow running the complement tests suites with the asyncio reactor enabled. (#14858)
- Improve performance of
/sync
in a few situations. (#14908, #14970) - Document how to handle Dependabot pull requests. (#14916)
- Fix typo in release script. (#14920)
- Update build system requirements to allow building with poetry-core 1.5.0. (#14949, #15019)
- Add an lnav config file for Synapse logs to
/contrib/lnav
. (#14953) - Faster joins: Refactor internal handling of servers in room to never store an empty list. (#14954)
- Faster joins: tag
v2/send_join/
requests to indicate if they served a partial join response. (#14950) - Allow running
cargo
without theextension-module
option. (#14965) - Preparatory work for adding a denormalised event stream ordering column in the future. Contributed by Nick @ Beeper (@Fizzadar). (#14979, 9cd7610, f10caa7; see #15014)
- Add tests for
_flatten_dict
. (#14981, #15002)
Dependabot updates
- Bump dtolnay/rust-toolchain from e645b0cf01249a964ec099494d38d2da0f0b349f to 9cd00a88a73addc8617065438eff914dd08d0955. (#14968)
- Bump docker/build-push-action from 3 to 4. (#14952)
- Bump ijson from 3.1.4 to 3.2.0.post0. (#14935)
- Bump types-pyyaml from 6.0.12.2 to 6.0.12.3. (#14936)
- Bump types-jsonschema from 4.17.0.2 to 4.17.0.3. (#14937)
- Bump types-pillow from 9.4.0.3 to 9.4.0.5. (#14938)
- Bump hiredis from 2.0.0 to 2.1.1. (#14939)
- Bump hiredis from 2.1.1 to 2.2.1. (#14993)
- Bump types-setuptools from 65.6.0.3 to 67.1.0.0. (#14994)
- Bump prometheus-client from 0.15.0 to 0.16.0. (#14995)
- Bump anyhow from 1.0.68 to 1.0.69. (#14996)
- Bump serde_json from 1.0.91 to 1.0.92. (#14997)
- Bump isort from 5.11.4 to 5.11.5. (#14998)
- Bump phonenumbers from 8.13.4 to 8.13.5. (#14999)
v1.77.0rc2
v1.77.0rc1
Synapse 1.77.0rc1 (2023-02-07)
Features
- Experimental support for MSC3952: intentional mentions. (#14823, #14943, #14957, #14958)
- Experimental support to suppress notifications from message edits (MSC3958). (#14960, #15016)
- Add profile information, devices and connections to the command line user data export tool. (#14894)
- Improve performance when joining or sending an event in large rooms. (#14962)
- Improve performance of joining and leaving large rooms with many local users. (#14971)
Bugfixes
- Fix a bug introduced in Synapse 1.53.0 where
next_batch
tokens from/sync
could not be used with the/relations
endpoint. (#14866) - Fix a bug introduced in Synapse 1.35.0 where the module API's
send_local_online_presence_to
would fail to send presence updates over federation. (#14880) - Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. (#14915)
- Fix a regression introduced in Synapse 1.69.0 which can result in database corruption when database migrations are interrupted on sqlite. (#14926)
- Fix a bug introduced in Synapse 1.68.0 where we were unable to service remote joins in rooms with
@room
notification levels set tonull
in their (malformed) power levels. (#14942) - Fix a bug introduced in Synapse 1.64.0 where boolean power levels were erroneously permitted in v10 rooms. (#14944)
- Fix a long-standing bug where sending messages on servers with presence enabled would spam "Re-starting finished log context" log lines. (#14947)
- Fix a bug introduced in Synapse 1.68.0 where logging from the Rust module was not properly logged. (#14976)
- Fix various long-standing bugs in Synapse's config, event and request handling where booleans were unintentionally accepted where an integer was expected. (#14945)
Internal Changes
- Add missing type hints. (#14879, #14886, #14887, #14904, #14927, #14956, #14983, #14984, #14985, #14987, #14988, #14990, #14991, #14992, #15007)
- Use
StrCollection
to avoid potential bugs withCollection[str]
. (#14922) - Allow running the complement tests suites with the asyncio reactor enabled. (#14858)
- Improve performance of
/sync
in a few situations. (#14908, #14970) - Document how to handle Dependabot pull requests. (#14916)
- Fix typo in release script. (#14920)
- Update build system requirements to allow building with poetry-core 1.5.0. (#14949, #15019)
- Add an lnav config file for Synapse logs to
/contrib/lnav
. (#14953) - Faster joins: Refactor internal handling of servers in room to never store an empty list. (#14954)
- Faster joins: tag
v2/send_join/
requests to indicate if they served a partial join response. (#14950) - Allow running
cargo
without theextension-module
option. (#14965) - Preparatory work for adding a denormalised event stream ordering column in the future. Contributed by Nick @ Beeper (@Fizzadar). (#14979, 9cd7610, f10caa7; see #15014)
- Add tests for
_flatten_dict
. (#14981, #15002)
Dependabot updates
- Bump dtolnay/rust-toolchain from e645b0cf01249a964ec099494d38d2da0f0b349f to 9cd00a88a73addc8617065438eff914dd08d0955. (#14968)
- Bump docker/build-push-action from 3 to 4. (#14952)
- Bump ijson from 3.1.4 to 3.2.0.post0. (#14935)
- Bump types-pyyaml from 6.0.12.2 to 6.0.12.3. (#14936)
- Bump types-jsonschema from 4.17.0.2 to 4.17.0.3. (#14937)
- Bump types-pillow from 9.4.0.3 to 9.4.0.5. (#14938)
- Bump hiredis from 2.0.0 to 2.1.1. (#14939)
- Bump hiredis from 2.1.1 to 2.2.1. (#14993)
- Bump types-setuptools from 65.6.0.3 to 67.1.0.0. (#14994)
- Bump prometheus-client from 0.15.0 to 0.16.0. (#14995)
- Bump anyhow from 1.0.68 to 1.0.69. (#14996)
- Bump serde_json from 1.0.91 to 1.0.92. (#14997)
- Bump isort from 5.11.4 to 5.11.5. (#14998)
- Bump phonenumbers from 8.13.4 to 8.13.5. (#14999)
v1.76.0
Synapse 1.76.0 (2023-01-31)
The 1.76 release is the first to enable faster joins (MSC3706 and MSC3902) by default. Admins can opt-out: see the upgrade notes for more details.
The upgrade from 1.75 to 1.76 changes the account data replication streams in a backwards-incompatible manner. Server operators running a multi-worker deployment should consult the upgrade notes.
Those who are poetry install
ing from source using our lockfile should ensure their poetry version is 1.3.2 or higher; see upgrade notes.
Notes on faster joins
The faster joins project sees the most benefit when joining a room with a large number of members (joined or historical). We expect it to be particularly useful for joining large public rooms like the Matrix HQ or Synapse Admins rooms.
After a faster join, Synapse considers that room "partially joined". In this state, you should be able to
- read incoming messages;
- see incoming state changes, e.g. room topic changes; and
- send messages, if the room is unencrypted.
Synapse has to spend more effort to complete the join in the background. Once this finishes, you will be able to
- send messages, if the room is in encrypted;
- retrieve room history from before your join, if permitted by the room settings; and
- access the full list of room members.
Improved Documentation
- Describe the ideas and the internal machinery behind faster joins. (#14677)
Synapse 1.76.0rc2 (2023-01-27)
Bugfixes
- Faster joins: Fix a bug introduced in Synapse 1.69 where device list EDUs could fail to be handled after a restart when a faster join sync is in progress. (#14914)
Internal Changes
- Faster joins: Improve performance of looking up partial-state status of rooms. (#14917)
Synapse 1.76.0rc1 (2023-01-25)
Features
- Update the default room version to v10 (MSC 3904). Contributed by @FSG-Cat. (#14111)
- Add a
set_displayname()
method to the module API for setting a user's display name. (#14629) - Add a dedicated listener configuration for
health
endpoint. (#14747) - Implement support for MSC3890: Remotely silence local notifications. (#14775)
- Implement experimental support for MSC3930: Push rules for (MSC3381) Polls. (#14787)
- Per MSC3925, bundle the whole of the replacement with any edited events, and optionally inhibit server-side replacement. (#14811)
- Faster joins: always serve a partial join response to servers that request it with the stable query param. (#14839)
- Faster joins: allow non-lazy-loading ("eager") syncs to complete after a partial join by omitting partial state rooms until they become fully stated. (#14870)
- Faster joins: request partial joins by default. Admins can opt-out of this for the time being---see the upgrade notes. (#14905)
Bugfixes
- Add index to improve performance of the
/timestamp_to_event
endpoint used for jumping to a specific date in the timeline of a room. (#14799) - Fix a long-standing bug where Synapse would exhaust the stack when processing many federation requests where the remote homeserver has disconencted early. (#14812, #14842)
- Fix rare races when using workers. (#14820)
- Fix a bug introduced in Synapse 1.64.0 when using room version 10 with frozen events enabled. (#14864)
- Fix a long-standing bug where the
populate_room_stats
background job could fail on broken rooms. (#14873) - Faster joins: Fix a bug in worker deployments where the room stats and user directory would not get updated when finishing a fast join until another event is sent or received. (#14874)
- Faster joins: Fix incompatibility with joins into restricted rooms where no local users have the ability to invite. (#14882)
- Fix a regression introduced in Synapse 1.69.0 which can result in database corruption when database migrations are interrupted on sqlite. (#14910)
Updates to the Docker image
- Bump default Python version in the Dockerfile from 3.9 to 3.11. (#14875)
Improved Documentation
- Include
x_forwarded
entry in the HTTP listener example configs and remove the remainingworker_main_http_uri
entries. (#14667) - Remove duplicate commands from the Code Style documentation page; point to the Contributing Guide instead. (#14773)
- Add missing documentation for
tag
tolisteners
section. (#14803) - Updated documentation in configuration manual for
user_directory.search_all_users
. (#14818) - Add
worker_manhole
to configuration manual. (#14824) - Fix the example config missing the
id
field in application service documentation. (#14845) - Minor corrections to the logging configuration documentation. (#14868)
- Document the export user data command. Contributed by @thezaidbintariq. (#14883)
Deprecations and Removals
- Poetry 1.3.2 or higher is now required when
poetry install
ing from source. (#14860)
Internal Changes
- Faster remote room joins (worker mode): do not populate external hosts-in-room cache when sending events as this requires blocking for full state. (#14749)
- Enable Complement tests for Faster Remote Room Joins against worker-mode Synapse. (#14752)
- Add some clarifying comments and refactor a portion of the
Keyring
class for readability. (#14804) - Add local poetry config files (
poetry.toml
) to.gitignore
. (#14807) - Add missing type hints. (#14816, #14885, #14889)
- Refactor push tests. (#14819)
- Re-enable some linting that was disabled when we switched to ruff. (#14821)
- Add
cargo fmt
andcargo clippy
to the lint script. (#14822) - Drop unused table
presence
. (#14825) - Merge the two account data and the two device list replication streams. (#14826, #14833)
- Faster joins: use stable identifiers from MSC3706. (#14832, #14841)
- Add a parameter to control whether the federation client performs a partial state join. (#14843)
- Add check to avoid starting duplicate partial state syncs. (#14844)
- Add an early return when handling no-op presence updates. ([#14855](https://github.com/matrix-org/sy...