Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Releases: matrix-org/synapse

v1.80.0rc1

21 Mar 19:05
v1.80.0rc1
Compare
Choose a tag to compare
v1.80.0rc1 Pre-release
Pre-release

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 to access-control-expose-headers header. (#14974)
  • Make the HttpTransactionCache use the Requester in addition of the just the Request 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 and destination_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

14 Mar 16:40
Compare
Choose a tag to compare

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

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 by on_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 and get_event_reports_paginate from RoomStore to RoomWorkerStore. (#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 to StreamIdGenerator to match MultiWriterIdGenerator. (#15191)
  • Combine AbstractStreamIdTracker and AbstractStreamIdGenerator. (#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://...
Read more

v1.79.0rc2

13 Mar 15:19
Compare
Choose a tag to compare
v1.79.0rc2 Pre-release
Pre-release

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

07 Mar 14:17
Compare
Choose a tag to compare
v1.79.0rc1 Pre-release
Pre-release

Synapse 1.79.0rc1 (2023-03-07)

Features

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 by on_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 and get_event_reports_paginate from RoomStore to RoomWorkerStore. (#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 to StreamIdGenerator to match MultiWriterIdGenerator. (#15191)
  • Combine AbstractStreamIdTracker and AbstractStreamIdGenerator. (#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

28 Feb 17:50
v1.78.0
Compare
Choose a tag to compare

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

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 with Collection[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...
Read more

v1.78.0rc1

21 Feb 18:01
Compare
Choose a tag to compare
v1.78.0rc1 Pre-release
Pre-release

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

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 with Collection[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

14 Feb 14:24
Compare
Choose a tag to compare

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 to null 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 with Collection[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 the extension-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

10 Feb 13:37
Compare
Choose a tag to compare
v1.77.0rc2 Pre-release
Pre-release

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)

v1.77.0rc1

08 Feb 12:28
Compare
Choose a tag to compare
v1.77.0rc1 Pre-release
Pre-release

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 to null 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 with Collection[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 the extension-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

31 Jan 16:40
v1.76.0
Compare
Choose a tag to compare

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 installing 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 remaining worker_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 to listeners 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 installing 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 and cargo 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...
Read more