Merge branch 'release-v1.50' into develop

This commit is contained in:
Olivier Wilkinson (reivilibre) 2022-01-07 14:22:13 +00:00
commit 6a04767439
78 changed files with 117 additions and 73 deletions

View File

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

View File

@ -1 +0,0 @@
Send and handle cross-signing messages using the stable prefix.

View File

@ -1 +0,0 @@
Allow specific, experimental events to be created without `prev_events`. Used by [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716).

View File

@ -1 +0,0 @@
Update Synapse install command for FreeBSD as the package is now prefixed with `py38`. Contributed by @itchychips.

View File

@ -1 +0,0 @@
A test helper (`wait_for_background_updates`) no longer depends on classes defining a `store` property.

View File

@ -1 +0,0 @@
Add type hints to `synapse.appservice`.

View File

@ -1 +0,0 @@
Allow guests to send state events per [MSC3419](https://github.com/matrix-org/matrix-doc/pull/3419).

View File

@ -1 +0,0 @@
Document the usage of refresh tokens.

View File

@ -1 +0,0 @@
Add missing type hints to `synapse.config` module.

View File

@ -1 +0,0 @@
Add test to ensure we share the same `state_group` across the whole historical batch when using the [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) `/batch_send` endpoint.

View File

@ -1 +0,0 @@
Refactor `tests.util.setup_test_homeserver` and `tests.server.setup_test_homeserver`.

View File

@ -1 +0,0 @@
Move `glob_to_regex` and `re_word_boundary` to `matrix-python-common`.

View File

@ -1 +0,0 @@
Fix a long-standing bug where relations from other rooms could be included in the bundled aggregations of an event.

View File

@ -1 +0,0 @@
Use HTTPStatus constants in place of literals in `tests.rest.client.test_auth`.

View File

@ -1 +0,0 @@
Add a receipt types constant for `m.read`.

View File

@ -1 +0,0 @@
Clean up `synapse.rest.admin`.

View File

@ -1 +0,0 @@
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.

View File

@ -1 +0,0 @@
Add experimental support for MSC3202: allowing application services to masquerade as specific devices.

View File

@ -1 +0,0 @@
Support unprefixed versions of fallback key property names.

View File

@ -1 +0,0 @@
Add missing `errcode` to `parse_string` and `parse_boolean`.

View File

@ -1 +0,0 @@
Use HTTPStatus constants in place of literals in `synapse.http`.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Fix a bug introduced in Synapse 1.17.0 where a pusher created for an email with capital letters would fail to be created.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Fix an inaccurate and misleading comment in the `/sync` code.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add details for how to configure a TURN server when behind a NAT. Contibuted by @AndrewFerr.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add missing type hints to `synapse.logging.context`.

View File

@ -1 +0,0 @@
Stop populating unused database column `state_events.prev_state`.

View File

@ -1 +0,0 @@
Minor efficiency improvements in event persistence.

View File

@ -1 +0,0 @@
Add some safety checks that storage functions are used correctly.

View File

@ -1 +0,0 @@
Make `get_device` return `None` if the device doesn't exist rather than raising an exception.

View File

@ -1 +0,0 @@
Split the HTML parsing code from the URL preview resource code.

View File

@ -1 +0,0 @@
Remove redundant `COALESCE()`s around `COUNT()`s in database queries.

View File

@ -1 +0,0 @@
Add missing type hints to `synapse.http`.

View File

@ -1 +0,0 @@
Convert `EventStreamResult` from a `namedtuple` to `attrs` to improve type hints.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add some safety checks that storage functions are used correctly.

View File

@ -1 +0,0 @@
Add [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) and [MSC3030](https://github.com/matrix-org/matrix-doc/pull/3030) to `/versions` -> `unstable_features` to detect server support.

View File

@ -1 +0,0 @@
Replace `mock` package by its standard library version.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add type hints to `synapse/tests/rest/admin`.

View File

@ -1 +0,0 @@
Fix a long-standing bug where responses included bundled aggregations when they should not, per [MSC2675](https://github.com/matrix-org/matrix-doc/pull/2675).

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Drop EOL python 3.6 and postgres 9.6 from CI.

View File

@ -1 +0,0 @@
Update black version and run it on all the files.

View File

@ -1 +0,0 @@
Fix a long-standing bug that some unknown endpoints would return HTML error pages instead of JSON `M_UNRECOGNIZED` errors.

View File

@ -1 +0,0 @@
Add opentracing type stubs and fix associated mypy errors.

View File

@ -1 +0,0 @@
Improve opentracing support for requests which use a `ResponseCache`.

View File

@ -1 +0,0 @@
Improve opentracing support for incoming HTTP requests.

View File

@ -1 +0,0 @@
A number of improvements to opentracing support.

View File

@ -1 +0,0 @@
Add opentracing type stubs and fix associated mypy errors.

View File

@ -1 +0,0 @@
Fix a long-standing bug where responses included bundled aggregations when they should not, per [MSC2675](https://github.com/matrix-org/matrix-doc/pull/2675).

View File

@ -1 +0,0 @@
Fix a bug introduced in Synapse 1.19.3 which could sometimes cause `AssertionError`s when backfilling rooms over federation.

View File

@ -1 +0,0 @@
Drop support for Python 3.6 and Ubuntu 18.04.

View File

@ -1 +0,0 @@
Refactor the way that the `outlier` flag is set on events received over federation.

View File

@ -1 +0,0 @@
Improve the error messages from `get_create_event_for_room`.

View File

@ -1 +0,0 @@
Add references for using Postgres to the Docker documentation.

View File

@ -1 +0,0 @@
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.

View File

@ -1 +0,0 @@
Remove redundant `get_current_events_token` method.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add missing type hints to storage classes.

View File

@ -1 +0,0 @@
Add admin API to get users' account data.

View File

@ -1 +0,0 @@
Convert `namedtuples` to `attrs`.

View File

@ -1 +0,0 @@
Include the room topic in the stripped state included with invites and knocking.

View File

@ -1 +0,0 @@
Fix wrong variable reference in `SimpleHttpClient.get_json` that results in the absence of the `Accept` header in the request.

View File

@ -1 +0,0 @@
Fix the documentation link in newly-generated configuration files.

View File

@ -1 +0,0 @@
Correct the documentation for `nginx` to use a case-sensitive url pattern. Fixes an error introduced in v1.21.0.

View File

@ -1 +0,0 @@
Clarify SSO mapping provider documentation by writing `def` or `async def` before the names of methods, as appropriate.

View File

@ -1 +0,0 @@
Move `glob_to_regex` and `re_word_boundary` to `matrix-python-common`.

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
matrix-synapse-py3 (1.50.0~rc1) stable; urgency=medium
* New synapse release 1.50.0~rc1.
-- Synapse Packaging team <packages@matrix.org> Wed, 05 Jan 2022 12:36:17 +0000
matrix-synapse-py3 (1.49.2) stable; urgency=medium matrix-synapse-py3 (1.49.2) stable; urgency=medium
* New synapse release 1.49.2. * New synapse release 1.49.2.

View File

@ -85,6 +85,17 @@ process, for example:
dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb
``` ```
# Upgrading to v1.50.0
## Dropping support for old Python and Postgres versions
In line with our [deprecation policy](deprecation_policy.md),
we've dropped support for Python 3.6 and PostgreSQL 9.6, as they are no
longer supported upstream.
This release of Synapse requires Python 3.7+ and PostgreSQL 10+.
# Upgrading to v1.47.0 # Upgrading to v1.47.0
## Removal of old Room Admin API ## Removal of old Room Admin API

View File

@ -47,7 +47,7 @@ try:
except ImportError: except ImportError:
pass pass
__version__ = "1.49.2" __version__ = "1.50.0rc1"
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)): if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
# We import here so that we don't have to install a bunch of deps when # We import here so that we don't have to install a bunch of deps when

View File

@ -73,6 +73,9 @@ class CapabilitiesRestServlet(RestServlet):
"enabled": self.config.registration.enable_3pid_changes "enabled": self.config.registration.enable_3pid_changes
} }
if self.config.experimental.msc3440_enabled:
response["capabilities"]["io.element.thread"] = {"enabled": True}
return 200, response return 200, response

View File

@ -31,6 +31,13 @@ from synapse.logging import context
if typing.TYPE_CHECKING: if typing.TYPE_CHECKING:
pass pass
# FIXME Mjolnir imports glob_to_regex from this file, but it was moved to
# matrix_common.
# As a temporary workaround, we import glob_to_regex here for
# compatibility with current versions of Mjolnir.
# See https://github.com/matrix-org/mjolnir/pull/174
from matrix_common.regex import glob_to_regex # noqa
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)