Merge remote-tracking branch 'origin/release-v1.69' into matrix-org-hotfixes
commit
382c9e9acd
|
@ -9,6 +9,7 @@
|
|||
!pyproject.toml
|
||||
!poetry.lock
|
||||
!Cargo.lock
|
||||
!Cargo.toml
|
||||
!build_rust.py
|
||||
|
||||
rust/target
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Rename the `url_preview` extra to `url-preview`, for compatability with poetry-core 1.3.0 and [PEP 685](https://peps.python.org/pep-0685/). From-source installations using this extra will need to install using the new name.
|
|
@ -0,0 +1 @@
|
|||
Fix an issue with Docker images causing the Rust dependencies to not be pinned correctly.
|
|
@ -0,0 +1 @@
|
|||
Fix a bug introduced in Synapse 1.69.0rc1 which would cause registration replication requests to fail if the worker sending the request is not running Synapse 1.69.
|
|
@ -0,0 +1 @@
|
|||
Fix error in background update when rotating existing notifications. Introduced in v1.69.0rc2.
|
|
@ -121,7 +121,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \
|
|||
COPY synapse /synapse/synapse/
|
||||
COPY rust /synapse/rust/
|
||||
# ... and what we need to `pip install`.
|
||||
COPY pyproject.toml README.rst build_rust.py /synapse/
|
||||
COPY pyproject.toml README.rst build_rust.py Cargo.toml Cargo.lock /synapse/
|
||||
|
||||
# Repeat of earlier build argument declaration, as this is a new build stage.
|
||||
ARG TEST_ONLY_IGNORE_POETRY_LOCKFILE
|
||||
|
|
|
@ -219,7 +219,7 @@ oidc = ["authlib"]
|
|||
# `systemd.journal.JournalHandler`, as is documented in
|
||||
# `contrib/systemd/log_config.yaml`.
|
||||
systemd = ["systemd-python"]
|
||||
url_preview = ["lxml"]
|
||||
url-preview = ["lxml"]
|
||||
sentry = ["sentry-sdk"]
|
||||
opentracing = ["jaeger-client", "opentracing"]
|
||||
jwt = ["authlib"]
|
||||
|
@ -250,7 +250,7 @@ all = [
|
|||
"pysaml2",
|
||||
# oidc and jwt
|
||||
"authlib",
|
||||
# url_preview
|
||||
# url-preview
|
||||
"lxml",
|
||||
# sentry
|
||||
"sentry-sdk",
|
||||
|
@ -307,7 +307,12 @@ twine = "*"
|
|||
towncrier = ">=18.6.0rc1"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core==1.2.0", "setuptools_rust==1.5.2"]
|
||||
# The upper bounds here are defensive, intended to prevent situations like
|
||||
# #13849 and #14079 where we see buildtime or runtime errors caused by build
|
||||
# system changes.
|
||||
# We are happy to raise these upper bounds upon request,
|
||||
# provided we check that it's safe to do so (i.e. that CI passes).
|
||||
requires = ["poetry-core>=1.0.0,<=1.3.1", "setuptools_rust>=1.3,<=1.5.2"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
|
||||
|
||||
|
|
|
@ -205,7 +205,7 @@ class ContentRepositoryConfig(Config):
|
|||
)
|
||||
self.url_preview_enabled = config.get("url_preview_enabled", False)
|
||||
if self.url_preview_enabled:
|
||||
check_requirements("url_preview")
|
||||
check_requirements("url-preview")
|
||||
|
||||
proxy_env = getproxies_environment()
|
||||
if "url_preview_ip_range_blacklist" not in config:
|
||||
|
|
|
@ -39,6 +39,16 @@ class ReplicationRegisterServlet(ReplicationEndpoint):
|
|||
self.store = hs.get_datastores().main
|
||||
self.registration_handler = hs.get_registration_handler()
|
||||
|
||||
# Default value if the worker that sent the replication request did not include
|
||||
# an 'approved' property.
|
||||
if (
|
||||
hs.config.experimental.msc3866.enabled
|
||||
and hs.config.experimental.msc3866.require_approval_for_new_accounts
|
||||
):
|
||||
self._approval_default = False
|
||||
else:
|
||||
self._approval_default = True
|
||||
|
||||
@staticmethod
|
||||
async def _serialize_payload( # type: ignore[override]
|
||||
user_id: str,
|
||||
|
@ -92,6 +102,12 @@ class ReplicationRegisterServlet(ReplicationEndpoint):
|
|||
|
||||
await self.registration_handler.check_registration_ratelimit(content["address"])
|
||||
|
||||
# Always default admin users to approved (since it means they were created by
|
||||
# an admin).
|
||||
approved_default = self._approval_default
|
||||
if content["admin"]:
|
||||
approved_default = True
|
||||
|
||||
await self.registration_handler.register_with_store(
|
||||
user_id=user_id,
|
||||
password_hash=content["password_hash"],
|
||||
|
@ -103,7 +119,7 @@ class ReplicationRegisterServlet(ReplicationEndpoint):
|
|||
user_type=content["user_type"],
|
||||
address=content["address"],
|
||||
shadow_banned=content["shadow_banned"],
|
||||
approved=content["approved"],
|
||||
approved=content.get("approved", approved_default),
|
||||
)
|
||||
|
||||
return 200, {}
|
||||
|
|
|
@ -1104,11 +1104,13 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas
|
|||
)
|
||||
|
||||
# First ensure that the existing rows have an updated thread_id field.
|
||||
self.db_pool.simple_update_txn(
|
||||
txn,
|
||||
table="event_push_summary",
|
||||
keyvalues={"room_id": room_id, "user_id": user_id, "thread_id": None},
|
||||
updatevalues={"thread_id": "main"},
|
||||
txn.execute(
|
||||
"""
|
||||
UPDATE event_push_summary
|
||||
SET thread_id = ?
|
||||
WHERE room_id = ? AND user_id = ? AND thread_id is NULL
|
||||
""",
|
||||
("main", room_id, user_id),
|
||||
)
|
||||
|
||||
# Replace the previous summary with the new counts.
|
||||
|
@ -1272,6 +1274,14 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas
|
|||
logger.info("Rotating notifications, handling %d rows", len(summaries))
|
||||
|
||||
# Ensure that any updated threads have an updated thread_id.
|
||||
txn.execute_batch(
|
||||
"""
|
||||
UPDATE event_push_summary
|
||||
SET thread_id = ?
|
||||
WHERE room_id = ? AND user_id = ? AND thread_id is NULL
|
||||
""",
|
||||
[("main", room_id, user_id) for user_id, room_id in summaries],
|
||||
)
|
||||
self.db_pool.simple_update_many_txn(
|
||||
txn,
|
||||
table="event_push_summary",
|
||||
|
|
Loading…
Reference in New Issue