Synapse 1.50.0rc1 (2022-01-05)
Please note that we now only support Python 3.7+ and PostgreSQL 10+ (if applicable), because Python 3.6 and PostgreSQL 9.6 have reached end-of-life.
Features
- Allow guests to send state events per MSC3419. (#11378)
- Add experimental support for part of MSC3202: allowing application services to masquerade as specific devices. (#11538)
- Add admin API to get users' account data. (#11664)
- Include the room topic in the stripped state included with invites and knocking. (#11666)
- Send and handle cross-signing messages using the stable prefix. (#10520)
- Support unprefixed versions of fallback key property names. (#11541)
Bugfixes
- Fix a long-standing bug where relations from other rooms could be included in the bundled aggregations of an event. (#11516)
- Fix a long-standing bug which could cause
AssertionError
s to be written to the log when Synapse was restarted after purging events from the database. (#11536, #11642) - Fix a bug introduced in Synapse 1.17.0 where a pusher created for an email with capital letters would fail to be created. (#11547)
- Fix a long-standing bug where responses included bundled aggregations when they should not, per MSC2675. (#11592, #11623)
- Fix a long-standing bug that some unknown endpoints would return HTML error pages instead of JSON
M_UNRECOGNIZED
errors. (#11602) - Fix a bug introduced in Synapse 1.19.3 which could sometimes cause
AssertionError
s when backfilling rooms over federation. (#11632)
Improved Documentation
- Update Synapse install command for FreeBSD as the package is now prefixed with
py38
. Contributed by @itchychips. (#11267) - Document the usage of refresh tokens. (#11427)
- Add details for how to configure a TURN server when behind a NAT. Contibuted by @AndrewFerr. (#11553)
- Add references for using Postgres to the Docker documentation. (#11640)
- Fix the documentation link in newly-generated configuration files. (#11678)
- Correct the documentation for
nginx
to use a case-sensitive url pattern. Fixes an error introduced in v1.21.0. (#11680) - Clarify SSO mapping provider documentation by writing
def
orasync def
before the names of methods, as appropriate. (#11681)
Deprecations and Removals
- Replace
mock
package by its standard library version. (#11588)
Internal Changes
- Allow specific, experimental events to be created without
prev_events
. Used by MSC2716. (#11243) - A test helper (
wait_for_background_updates
) no longer depends on classes defining astore
property. (#11331) - Add type hints to
synapse.appservice
. (#11360) - Add missing type hints to
synapse.config
module. (#11480) - Add test to ensure we share the same
state_group
across the whole historical batch when using the MSC2716/batch_send
endpoint. (#11487) - Refactor
tests.util.setup_test_homeserver
andtests.server.setup_test_homeserver
. (#11503) - Move
glob_to_regex
andre_word_boundary
tomatrix-python-common
. (#11505, #11687) - Use
HTTPStatus
constants in place of literals intests.rest.client.test_auth
. (#11520) - Add a receipt types constant for
m.read
. (#11531) - Clean up
synapse.rest.admin
. (#11535) - Add missing
errcode
toparse_string
andparse_boolean
. (#11542) - Use
HTTPStatus
constants in place of literals insynapse.http
. (#11543) - Add missing type hints to storage classes. (#11546, #11549, #11551, #11555, #11575, #11589, #11594, #11652, #11653, #11654, #11657)
- Fix an inaccurate and misleading comment in the
/sync
code. (#11550) - Add missing type hints to
synapse.logging.context
. (#11556) - Stop populating unused database column
state_events.prev_state
. (#11558) - Minor efficiency improvements in event persistence. (#11560)
- Add some safety checks that storage functions are used correctly. (#11564, #11580)
- Make
get_device
returnNone
if the device doesn't exist rather than raising an exception. (#11565) - Split the HTML parsing code from the URL preview resource code. (#11566)
- Remove redundant
COALESCE()
s aroundCOUNT()
s in database queries. (#11570) - Add missing type hints to
synapse.http
. (#11571) - Add MSC2716 and MSC3030 to
/versions
->unstable_features
to detect server support. (#11582) - Add type hints to
synapse/tests/rest/admin
. (#11590) - Drop end-of-life Python 3.6 and Postgres 9.6 from CI. (#11595)
- Update black version and run it on all the files. (#11596)
- Add opentracing type stubs and fix associated mypy errors. (#11603, #11622)
- Improve OpenTracing support for requests which use a
ResponseCache
. (#11607) - Improve OpenTracing support for incoming HTTP requests. (#11618)
- A number of improvements to opentracing support. (#11619)
- Drop support for Python 3.6 and Ubuntu 18.04. (#11633)
- Refactor the way that the
outlier
flag is set on events received over federation. (#11634) - Improve the error messages from
get_create_event_for_room
. (#11638) - Remove redundant
get_current_events_token
method. (#11643) - Convert
namedtuples
toattrs
. (#11665, #11574) - Update the
/capabilities
response to include whether support for MSC3440 is available. (#11690) - Send the
Accept
header in HTTP requests made usingSimpleHttpClient.get_json
. (#11677) - Work around Mjolnir compatibility issue by adding an import for
glob_to_regex
insynapse.util
, where it moved from. (#11696)