mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Merge branch 'release-v1.83' into develop
This commit is contained in:
commit
8aee823393
53
CHANGES.md
53
CHANGES.md
@ -1,3 +1,56 @@
|
|||||||
|
Synapse 1.83.0rc1 (2023-05-02)
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Experimental support to recursively provide relations per [MSC3981](https://github.com/matrix-org/matrix-spec-proposals/pull/3981). ([\#15315](https://github.com/matrix-org/synapse/issues/15315))
|
||||||
|
- Experimental support for [MSC3970](https://github.com/matrix-org/matrix-spec-proposals/pull/3970): Scope transaction IDs to devices. ([\#15318](https://github.com/matrix-org/synapse/issues/15318))
|
||||||
|
- Add an [admin API endpoint](https://matrix-org.github.io/synapse/v1.83/admin_api/experimental_features.html) to support per-user feature flags. ([\#15344](https://github.com/matrix-org/synapse/issues/15344))
|
||||||
|
- Add a module API to send an HTTP push notification. ([\#15387](https://github.com/matrix-org/synapse/issues/15387))
|
||||||
|
- Add an [admin API endpoint](https://matrix-org.github.io/synapse/v1.83/admin_api/statistics.html#get-largest-rooms-by-size-in-database) to query the largest rooms by disk space used in the database. ([\#15482](https://github.com/matrix-org/synapse/issues/15482))
|
||||||
|
|
||||||
|
|
||||||
|
Bugfixes
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Disable push rule evaluation for rooms excluded from sync. ([\#15361](https://github.com/matrix-org/synapse/issues/15361))
|
||||||
|
- Fix a long-standing bug where cached server key results which were directly fetched would not be properly re-used. ([\#15417](https://github.com/matrix-org/synapse/issues/15417))
|
||||||
|
- Fix a bug introduced in Synapse 1.73.0 where some experimental push rules were returned by default. ([\#15494](https://github.com/matrix-org/synapse/issues/15494))
|
||||||
|
|
||||||
|
|
||||||
|
Improved Documentation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- Add Nginx loadbalancing example with sticky mxid for workers. ([\#15411](https://github.com/matrix-org/synapse/issues/15411))
|
||||||
|
- Update outdated development docs that mention restrictions in versions of SQLite that we no longer support. ([\#15498](https://github.com/matrix-org/synapse/issues/15498))
|
||||||
|
|
||||||
|
|
||||||
|
Internal Changes
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- Speedup tests by caching HomeServerConfig instances. ([\#15284](https://github.com/matrix-org/synapse/issues/15284))
|
||||||
|
- Add denormalised event stream ordering column to membership state tables for future use. Contributed by Nick @ Beeper (@fizzadar). ([\#15356](https://github.com/matrix-org/synapse/issues/15356))
|
||||||
|
- Always use multi-user device resync replication endpoints. ([\#15418](https://github.com/matrix-org/synapse/issues/15418))
|
||||||
|
- Add column `full_user_id` to tables `profiles` and `user_filters`. ([\#15458](https://github.com/matrix-org/synapse/issues/15458))
|
||||||
|
- Update support for [MSC3983](https://github.com/matrix-org/matrix-spec-proposals/pull/3983) to allow always returning fallback-keys in a `/keys/claim` request. ([\#15462](https://github.com/matrix-org/synapse/issues/15462))
|
||||||
|
- Improve type hints. ([\#15465](https://github.com/matrix-org/synapse/issues/15465), [\#15496](https://github.com/matrix-org/synapse/issues/15496), [\#15497](https://github.com/matrix-org/synapse/issues/15497))
|
||||||
|
- Support claiming more than one OTK at a time. ([\#15468](https://github.com/matrix-org/synapse/issues/15468))
|
||||||
|
- Bump types-pyyaml from 6.0.12.8 to 6.0.12.9. ([\#15471](https://github.com/matrix-org/synapse/issues/15471))
|
||||||
|
- Bump pyasn1-modules from 0.2.8 to 0.3.0. ([\#15473](https://github.com/matrix-org/synapse/issues/15473))
|
||||||
|
- Bump cryptography from 40.0.1 to 40.0.2. ([\#15474](https://github.com/matrix-org/synapse/issues/15474))
|
||||||
|
- Bump types-netaddr from 0.8.0.7 to 0.8.0.8. ([\#15475](https://github.com/matrix-org/synapse/issues/15475))
|
||||||
|
- Bump types-jsonschema from 4.17.0.6 to 4.17.0.7. ([\#15476](https://github.com/matrix-org/synapse/issues/15476))
|
||||||
|
- Ask bug reporters to provide logs as text. ([\#15479](https://github.com/matrix-org/synapse/issues/15479))
|
||||||
|
- Add a Nix flake for use as a development environment. ([\#15495](https://github.com/matrix-org/synapse/issues/15495))
|
||||||
|
- Bump anyhow from 1.0.70 to 1.0.71. ([\#15507](https://github.com/matrix-org/synapse/issues/15507))
|
||||||
|
- Bump types-pillow from 9.4.0.19 to 9.5.0.2. ([\#15508](https://github.com/matrix-org/synapse/issues/15508))
|
||||||
|
- Bump packaging from 23.0 to 23.1. ([\#15510](https://github.com/matrix-org/synapse/issues/15510))
|
||||||
|
- Bump types-requests from 2.28.11.16 to 2.29.0.0. ([\#15511](https://github.com/matrix-org/synapse/issues/15511))
|
||||||
|
- Bump setuptools-rust from 1.5.2 to 1.6.0. ([\#15512](https://github.com/matrix-org/synapse/issues/15512))
|
||||||
|
- Update the check_schema_delta script to account for when the schema version has been bumped locally. ([\#15466](https://github.com/matrix-org/synapse/issues/15466))
|
||||||
|
|
||||||
|
|
||||||
Synapse 1.82.0 (2023-04-25)
|
Synapse 1.82.0 (2023-04-25)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
Speedup tests by caching HomeServerConfig instances.
|
|
@ -1 +0,0 @@
|
|||||||
Experimental support to recursively provide relations per [MSC3981](https://github.com/matrix-org/matrix-spec-proposals/pull/3981).
|
|
@ -1 +0,0 @@
|
|||||||
Experimental support for MSC3970: Scope transaction IDs to devices.
|
|
@ -1 +0,0 @@
|
|||||||
Add an admin API endpoint to support per-user feature flags.
|
|
@ -1 +0,0 @@
|
|||||||
Add denormalised event stream ordering column to membership state tables for future use. Contributed by Nick @ Beeper (@fizzadar).
|
|
@ -1 +0,0 @@
|
|||||||
Disable push rule evaluation for rooms excluded from sync.
|
|
@ -1 +0,0 @@
|
|||||||
Add a module API to send an HTTP push notification.
|
|
@ -1 +0,0 @@
|
|||||||
Docs: Add Nginx loadbalancing example with sticky mxid for workers.
|
|
@ -1 +0,0 @@
|
|||||||
Fix a long-standing bug where cached key results which were directly fetched would not be properly re-used.
|
|
@ -1 +0,0 @@
|
|||||||
Always use multi-user device resync replication endpoints.
|
|
@ -1 +0,0 @@
|
|||||||
Add column `full_user_id` to tables `profiles` and `user_filters`.
|
|
@ -1 +0,0 @@
|
|||||||
Update support for [MSC3983](https://github.com/matrix-org/matrix-spec-proposals/pull/3983) to allow always returning fallback-keys in a `/keys/claim` request.
|
|
@ -1 +0,0 @@
|
|||||||
Improve type hints.
|
|
@ -1 +0,0 @@
|
|||||||
Update the check_schema_delta script to account for when the schema version has been bumped locally.
|
|
@ -1 +0,0 @@
|
|||||||
Support claiming more than one OTK at a time.
|
|
@ -1 +0,0 @@
|
|||||||
Bump types-pyyaml from 6.0.12.8 to 6.0.12.9.
|
|
@ -1 +0,0 @@
|
|||||||
Bump pyasn1-modules from 0.2.8 to 0.3.0.
|
|
@ -1 +0,0 @@
|
|||||||
Bump cryptography from 40.0.1 to 40.0.2.
|
|
@ -1 +0,0 @@
|
|||||||
Bump types-netaddr from 0.8.0.7 to 0.8.0.8.
|
|
@ -1 +0,0 @@
|
|||||||
Bump types-jsonschema from 4.17.0.6 to 4.17.0.7.
|
|
@ -1 +0,0 @@
|
|||||||
Ask bug reporters to provide logs as text.
|
|
@ -1 +0,0 @@
|
|||||||
Add admin endpoint to query the largest rooms by disk space used in the database.
|
|
@ -1 +0,0 @@
|
|||||||
Fix a bug introduced in Synapse 1.73.0 where some experimental push rules were returned by default.
|
|
@ -1 +0,0 @@
|
|||||||
Add a Nix flake for use as a development environment.
|
|
@ -1 +0,0 @@
|
|||||||
Improve type hints.
|
|
@ -1 +0,0 @@
|
|||||||
Improve type hints.
|
|
@ -1 +0,0 @@
|
|||||||
Update outdated development docs that mention restrictions in versions of SQLite that we no longer support.
|
|
@ -1 +0,0 @@
|
|||||||
Bump anyhow from 1.0.70 to 1.0.71.
|
|
@ -1 +0,0 @@
|
|||||||
Bump types-pillow from 9.4.0.19 to 9.5.0.2.
|
|
@ -1 +0,0 @@
|
|||||||
Bump packaging from 23.0 to 23.1.
|
|
@ -1 +0,0 @@
|
|||||||
Bump types-requests from 2.28.11.16 to 2.29.0.0.
|
|
@ -1 +0,0 @@
|
|||||||
Bump setuptools-rust from 1.5.2 to 1.6.0.
|
|
@ -1 +0,0 @@
|
|||||||
Reduce the size of the HTTP connection pool for non-pushers.
|
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
|||||||
|
matrix-synapse-py3 (1.83.0~rc1) stable; urgency=medium
|
||||||
|
|
||||||
|
* New Synapse release 1.83.0rc1.
|
||||||
|
|
||||||
|
-- Synapse Packaging team <packages@matrix.org> Tue, 02 May 2023 15:56:38 +0100
|
||||||
|
|
||||||
matrix-synapse-py3 (1.82.0) stable; urgency=medium
|
matrix-synapse-py3 (1.82.0) stable; urgency=medium
|
||||||
|
|
||||||
* New Synapse release 1.82.0.
|
* New Synapse release 1.82.0.
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
- [Account Validity](admin_api/account_validity.md)
|
- [Account Validity](admin_api/account_validity.md)
|
||||||
- [Background Updates](usage/administration/admin_api/background_updates.md)
|
- [Background Updates](usage/administration/admin_api/background_updates.md)
|
||||||
- [Event Reports](admin_api/event_reports.md)
|
- [Event Reports](admin_api/event_reports.md)
|
||||||
|
- [Experimental Features](admin_api/experimental_features.md)
|
||||||
- [Media](admin_api/media_admin_api.md)
|
- [Media](admin_api/media_admin_api.md)
|
||||||
- [Purge History](admin_api/purge_history_api.md)
|
- [Purge History](admin_api/purge_history_api.md)
|
||||||
- [Register Users](admin_api/register_api.md)
|
- [Register Users](admin_api/register_api.md)
|
||||||
|
@ -89,7 +89,7 @@ manifest-path = "rust/Cargo.toml"
|
|||||||
|
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "matrix-synapse"
|
name = "matrix-synapse"
|
||||||
version = "1.82.0"
|
version = "1.83.0rc1"
|
||||||
description = "Homeserver for the Matrix decentralised comms protocol"
|
description = "Homeserver for the Matrix decentralised comms protocol"
|
||||||
authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
|
authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
|
@ -768,7 +768,6 @@ class SimpleHttpClient(BaseHttpClient):
|
|||||||
request if it were otherwise caught in a blacklist.
|
request if it were otherwise caught in a blacklist.
|
||||||
use_proxy: Whether proxy settings should be discovered and used
|
use_proxy: Whether proxy settings should be discovered and used
|
||||||
from conventional environment variables.
|
from conventional environment variables.
|
||||||
connection_pool: The connection pool to use for this client's agent.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@ -778,7 +777,6 @@ class SimpleHttpClient(BaseHttpClient):
|
|||||||
ip_whitelist: Optional[IPSet] = None,
|
ip_whitelist: Optional[IPSet] = None,
|
||||||
ip_blacklist: Optional[IPSet] = None,
|
ip_blacklist: Optional[IPSet] = None,
|
||||||
use_proxy: bool = False,
|
use_proxy: bool = False,
|
||||||
connection_pool: Optional[HTTPConnectionPool] = None,
|
|
||||||
):
|
):
|
||||||
super().__init__(hs, treq_args=treq_args)
|
super().__init__(hs, treq_args=treq_args)
|
||||||
self._ip_whitelist = ip_whitelist
|
self._ip_whitelist = ip_whitelist
|
||||||
@ -791,12 +789,22 @@ class SimpleHttpClient(BaseHttpClient):
|
|||||||
self.reactor, self._ip_whitelist, self._ip_blacklist
|
self.reactor, self._ip_whitelist, self._ip_blacklist
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# the pusher makes lots of concurrent SSL connections to Sygnal, and tends to
|
||||||
|
# do so in batches, so we need to allow the pool to keep lots of idle
|
||||||
|
# connections around.
|
||||||
|
pool = HTTPConnectionPool(self.reactor)
|
||||||
|
# XXX: The justification for using the cache factor here is that larger
|
||||||
|
# instances will need both more cache and more connections.
|
||||||
|
# Still, this should probably be a separate dial
|
||||||
|
pool.maxPersistentPerHost = max(int(100 * hs.config.caches.global_factor), 5)
|
||||||
|
pool.cachedConnectionTimeout = 2 * 60
|
||||||
|
|
||||||
self.agent: IAgent = ProxyAgent(
|
self.agent: IAgent = ProxyAgent(
|
||||||
self.reactor,
|
self.reactor,
|
||||||
hs.get_reactor(),
|
hs.get_reactor(),
|
||||||
connectTimeout=15,
|
connectTimeout=15,
|
||||||
contextFactory=self.hs.get_http_client_context_factory(),
|
contextFactory=self.hs.get_http_client_context_factory(),
|
||||||
pool=connection_pool,
|
pool=pool,
|
||||||
use_proxy=use_proxy,
|
use_proxy=use_proxy,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -143,8 +143,7 @@ class HttpPusher(Pusher):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.url = url
|
self.url = url
|
||||||
self.http_client = hs.get_pusher_http_client()
|
self.http_client = hs.get_proxied_blacklisted_http_client()
|
||||||
|
|
||||||
self.data_minus_url = {}
|
self.data_minus_url = {}
|
||||||
self.data_minus_url.update(self.data)
|
self.data_minus_url.update(self.data)
|
||||||
del self.data_minus_url["url"]
|
del self.data_minus_url["url"]
|
||||||
|
@ -27,7 +27,6 @@ from typing_extensions import TypeAlias
|
|||||||
|
|
||||||
from twisted.internet.interfaces import IOpenSSLContextFactory
|
from twisted.internet.interfaces import IOpenSSLContextFactory
|
||||||
from twisted.internet.tcp import Port
|
from twisted.internet.tcp import Port
|
||||||
from twisted.web.client import HTTPConnectionPool
|
|
||||||
from twisted.web.iweb import IPolicyForHTTPS
|
from twisted.web.iweb import IPolicyForHTTPS
|
||||||
from twisted.web.resource import Resource
|
from twisted.web.resource import Resource
|
||||||
|
|
||||||
@ -459,26 +458,6 @@ class HomeServer(metaclass=abc.ABCMeta):
|
|||||||
use_proxy=True,
|
use_proxy=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@cache_in_self
|
|
||||||
def get_pusher_http_client(self) -> SimpleHttpClient:
|
|
||||||
# the pusher makes lots of concurrent SSL connections to Sygnal, and tends to
|
|
||||||
# do so in batches, so we need to allow the pool to keep lots of idle
|
|
||||||
# connections around.
|
|
||||||
pool = HTTPConnectionPool(self.get_reactor())
|
|
||||||
# XXX: The justification for using the cache factor here is that larger
|
|
||||||
# instances will need both more cache and more connections.
|
|
||||||
# Still, this should probably be a separate dial
|
|
||||||
pool.maxPersistentPerHost = max(int(100 * self.config.caches.global_factor), 5)
|
|
||||||
pool.cachedConnectionTimeout = 2 * 60
|
|
||||||
|
|
||||||
return SimpleHttpClient(
|
|
||||||
self,
|
|
||||||
ip_whitelist=self.config.server.ip_range_whitelist,
|
|
||||||
ip_blacklist=self.config.server.ip_range_blacklist,
|
|
||||||
use_proxy=True,
|
|
||||||
connection_pool=pool,
|
|
||||||
)
|
|
||||||
|
|
||||||
@cache_in_self
|
@cache_in_self
|
||||||
def get_federation_http_client(self) -> MatrixFederationHttpClient:
|
def get_federation_http_client(self) -> MatrixFederationHttpClient:
|
||||||
"""
|
"""
|
||||||
|
@ -52,7 +52,7 @@ class HTTPPusherTests(HomeserverTestCase):
|
|||||||
|
|
||||||
m.post_json_get_json = post_json_get_json
|
m.post_json_get_json = post_json_get_json
|
||||||
|
|
||||||
hs = self.setup_test_homeserver(pusher_http_client=m)
|
hs = self.setup_test_homeserver(proxied_blacklisted_http_client=m)
|
||||||
|
|
||||||
return hs
|
return hs
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ class PusherShardTestCase(BaseMultiWorkerStreamTestCase):
|
|||||||
self.make_worker_hs(
|
self.make_worker_hs(
|
||||||
"synapse.app.generic_worker",
|
"synapse.app.generic_worker",
|
||||||
{"worker_name": "pusher1", "pusher_instances": ["pusher1"]},
|
{"worker_name": "pusher1", "pusher_instances": ["pusher1"]},
|
||||||
pusher_http_client=http_client_mock,
|
proxied_blacklisted_http_client=http_client_mock,
|
||||||
)
|
)
|
||||||
|
|
||||||
event_id = self._create_pusher_and_send_msg("user")
|
event_id = self._create_pusher_and_send_msg("user")
|
||||||
@ -126,7 +126,7 @@ class PusherShardTestCase(BaseMultiWorkerStreamTestCase):
|
|||||||
"worker_name": "pusher1",
|
"worker_name": "pusher1",
|
||||||
"pusher_instances": ["pusher1", "pusher2"],
|
"pusher_instances": ["pusher1", "pusher2"],
|
||||||
},
|
},
|
||||||
pusher_http_client=http_client_mock1,
|
proxied_blacklisted_http_client=http_client_mock1,
|
||||||
)
|
)
|
||||||
|
|
||||||
http_client_mock2 = Mock(spec_set=["post_json_get_json"])
|
http_client_mock2 = Mock(spec_set=["post_json_get_json"])
|
||||||
@ -140,7 +140,7 @@ class PusherShardTestCase(BaseMultiWorkerStreamTestCase):
|
|||||||
"worker_name": "pusher2",
|
"worker_name": "pusher2",
|
||||||
"pusher_instances": ["pusher1", "pusher2"],
|
"pusher_instances": ["pusher1", "pusher2"],
|
||||||
},
|
},
|
||||||
pusher_http_client=http_client_mock2,
|
proxied_blacklisted_http_client=http_client_mock2,
|
||||||
)
|
)
|
||||||
|
|
||||||
# We choose a user name that we know should go to pusher1.
|
# We choose a user name that we know should go to pusher1.
|
||||||
|
Loading…
Reference in New Issue
Block a user