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)