Use full GitHub links instead of bare issue numbers. (#16637)
This commit is contained in:
parent
4dd18bdc2e
commit
f2f2c7c1f0
|
@ -8,21 +8,21 @@
|
||||||
# If ignoring a pull request that was not squash merged, only the merge
|
# If ignoring a pull request that was not squash merged, only the merge
|
||||||
# commit needs to be put here. Child commits will be resolved from it.
|
# commit needs to be put here. Child commits will be resolved from it.
|
||||||
|
|
||||||
# Run black (#3679).
|
# Run black (https://github.com/matrix-org/synapse/pull/3679).
|
||||||
8b3d9b6b199abb87246f982d5db356f1966db925
|
8b3d9b6b199abb87246f982d5db356f1966db925
|
||||||
|
|
||||||
# Black reformatting (#5482).
|
# Black reformatting (https://github.com/matrix-org/synapse/pull/5482).
|
||||||
32e7c9e7f20b57dd081023ac42d6931a8da9b3a3
|
32e7c9e7f20b57dd081023ac42d6931a8da9b3a3
|
||||||
|
|
||||||
# Target Python 3.5 with black (#8664).
|
# Target Python 3.5 with black (https://github.com/matrix-org/synapse/pull/8664).
|
||||||
aff1eb7c671b0a3813407321d2702ec46c71fa56
|
aff1eb7c671b0a3813407321d2702ec46c71fa56
|
||||||
|
|
||||||
# Update black to 20.8b1 (#9381).
|
# Update black to 20.8b1 (https://github.com/matrix-org/synapse/pull/9381).
|
||||||
0a00b7ff14890987f09112a2ae696c61001e6cf1
|
0a00b7ff14890987f09112a2ae696c61001e6cf1
|
||||||
|
|
||||||
# Convert tests/rest/admin/test_room.py to unix file endings (#7953).
|
# Convert tests/rest/admin/test_room.py to unix file endings (https://github.com/matrix-org/synapse/pull/7953).
|
||||||
c4268e3da64f1abb5b31deaeb5769adb6510c0a7
|
c4268e3da64f1abb5b31deaeb5769adb6510c0a7
|
||||||
|
|
||||||
# Update black to 23.1.0 (#15103)
|
# Update black to 23.1.0 (https://github.com/matrix-org/synapse/pull/15103)
|
||||||
9bb2eac71962970d02842bca441f4bcdbbf93a11
|
9bb2eac71962970d02842bca441f4bcdbbf93a11
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Improve references to GitHub issues.
|
|
@ -1637,7 +1637,7 @@ matrix-synapse-py3 (0.99.3.1) stable; urgency=medium
|
||||||
matrix-synapse-py3 (0.99.3) stable; urgency=medium
|
matrix-synapse-py3 (0.99.3) stable; urgency=medium
|
||||||
|
|
||||||
[ Richard van der Hoff ]
|
[ Richard van der Hoff ]
|
||||||
* Fix warning during preconfiguration. (Fixes: #4819)
|
* Fix warning during preconfiguration. (Fixes: https://github.com/matrix-org/synapse/issues/4819)
|
||||||
|
|
||||||
[ Synapse Packaging team ]
|
[ Synapse Packaging team ]
|
||||||
* New synapse release 0.99.3.
|
* New synapse release 0.99.3.
|
||||||
|
|
|
@ -192,7 +192,7 @@ phonenumbers = ">=8.2.0"
|
||||||
# we use GaugeHistogramMetric, which was added in prom-client 0.4.0.
|
# we use GaugeHistogramMetric, which was added in prom-client 0.4.0.
|
||||||
prometheus-client = ">=0.4.0"
|
prometheus-client = ">=0.4.0"
|
||||||
# we use `order`, which arrived in attrs 19.2.0.
|
# we use `order`, which arrived in attrs 19.2.0.
|
||||||
# Note: 21.1.0 broke `/sync`, see #9936
|
# Note: 21.1.0 broke `/sync`, see https://github.com/matrix-org/synapse/issues/9936
|
||||||
attrs = ">=19.2.0,!=21.1.0"
|
attrs = ">=19.2.0,!=21.1.0"
|
||||||
netaddr = ">=0.7.18"
|
netaddr = ">=0.7.18"
|
||||||
# Jinja 2.x is incompatible with MarkupSafe>=2.1. To ensure that admins do not
|
# Jinja 2.x is incompatible with MarkupSafe>=2.1. To ensure that admins do not
|
||||||
|
@ -357,7 +357,7 @@ commonmark = ">=0.9.1"
|
||||||
pygithub = ">=1.55"
|
pygithub = ">=1.55"
|
||||||
# The following are executed as commands by the release script.
|
# The following are executed as commands by the release script.
|
||||||
twine = "*"
|
twine = "*"
|
||||||
# Towncrier min version comes from #3425. Rationale unclear.
|
# Towncrier min version comes from https://github.com/matrix-org/synapse/pull/3425. Rationale unclear.
|
||||||
towncrier = ">=18.6.0rc1"
|
towncrier = ">=18.6.0rc1"
|
||||||
|
|
||||||
# Used for checking the Poetry lockfile
|
# Used for checking the Poetry lockfile
|
||||||
|
@ -377,8 +377,9 @@ furo = ">=2022.12.7,<2024.0.0"
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
# The upper bounds here are defensive, intended to prevent situations like
|
# The upper bounds here are defensive, intended to prevent situations like
|
||||||
# #13849 and #14079 where we see buildtime or runtime errors caused by build
|
# https://github.com/matrix-org/synapse/issues/13849 and
|
||||||
# system changes.
|
# https://github.com/matrix-org/synapse/issues/14079 where we see buildtime or
|
||||||
|
# runtime errors caused by build system changes.
|
||||||
# We are happy to raise these upper bounds upon request,
|
# 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).
|
# provided we check that it's safe to do so (i.e. that CI passes).
|
||||||
requires = ["poetry-core>=1.1.0,<=1.7.0", "setuptools_rust>=1.3,<=1.8.1"]
|
requires = ["poetry-core>=1.1.0,<=1.7.0", "setuptools_rust>=1.3,<=1.8.1"]
|
||||||
|
|
|
@ -104,8 +104,8 @@ logger = logging.getLogger("synapse.app.generic_worker")
|
||||||
|
|
||||||
|
|
||||||
class GenericWorkerStore(
|
class GenericWorkerStore(
|
||||||
# FIXME(#3714): We need to add UserDirectoryStore as we write directly
|
# FIXME(https://github.com/matrix-org/synapse/issues/3714): We need to add
|
||||||
# rather than going via the correct worker.
|
# UserDirectoryStore as we write directly rather than going via the correct worker.
|
||||||
UserDirectoryStore,
|
UserDirectoryStore,
|
||||||
StatsStore,
|
StatsStore,
|
||||||
UIAuthWorkerStore,
|
UIAuthWorkerStore,
|
||||||
|
|
|
@ -581,14 +581,14 @@ class FederationSender(AbstractFederationSender):
|
||||||
"get_joined_hosts", str(sg)
|
"get_joined_hosts", str(sg)
|
||||||
)
|
)
|
||||||
if destinations is None:
|
if destinations is None:
|
||||||
# Add logging to help track down #13444
|
# Add logging to help track down https://github.com/matrix-org/synapse/issues/13444
|
||||||
logger.info(
|
logger.info(
|
||||||
"Unexpectedly did not have cached destinations for %s / %s",
|
"Unexpectedly did not have cached destinations for %s / %s",
|
||||||
sg,
|
sg,
|
||||||
event.event_id,
|
event.event_id,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# Add logging to help track down #13444
|
# Add logging to help track down https://github.com/matrix-org/synapse/issues/13444
|
||||||
logger.info(
|
logger.info(
|
||||||
"Unexpectedly did not have cached prev group for %s",
|
"Unexpectedly did not have cached prev group for %s",
|
||||||
event.event_id,
|
event.event_id,
|
||||||
|
|
|
@ -748,7 +748,7 @@ class FederationEventHandler:
|
||||||
# fetching fresh state for the room if the missing event
|
# fetching fresh state for the room if the missing event
|
||||||
# can't be found, which slightly reduces our security.
|
# can't be found, which slightly reduces our security.
|
||||||
# it may also increase our DAG extremity count for the room,
|
# it may also increase our DAG extremity count for the room,
|
||||||
# causing additional state resolution? See #1760.
|
# causing additional state resolution? See https://github.com/matrix-org/synapse/issues/1760.
|
||||||
# However, fetching state doesn't hold the linearizer lock
|
# However, fetching state doesn't hold the linearizer lock
|
||||||
# apparently.
|
# apparently.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1816,7 +1816,7 @@ class PresenceEventSource(EventSource[int, UserPresenceState]):
|
||||||
# the same token repeatedly.
|
# the same token repeatedly.
|
||||||
#
|
#
|
||||||
# Hence this guard where we just return nothing so that the sync
|
# Hence this guard where we just return nothing so that the sync
|
||||||
# doesn't return. C.f. #5503.
|
# doesn't return. C.f. https://github.com/matrix-org/synapse/issues/5503.
|
||||||
return [], max_token
|
return [], max_token
|
||||||
|
|
||||||
# Figure out which other users this user should explicitly receive
|
# Figure out which other users this user should explicitly receive
|
||||||
|
|
|
@ -399,7 +399,7 @@ class SyncHandler:
|
||||||
#
|
#
|
||||||
# If that happens, we mustn't cache it, so that when the client comes back
|
# If that happens, we mustn't cache it, so that when the client comes back
|
||||||
# with the same cache token, we don't immediately return the same empty
|
# with the same cache token, we don't immediately return the same empty
|
||||||
# result, causing a tightloop. (#8518)
|
# result, causing a tightloop. (https://github.com/matrix-org/synapse/issues/8518)
|
||||||
if result.next_batch == since_token:
|
if result.next_batch == since_token:
|
||||||
cache_context.should_cache = False
|
cache_context.should_cache = False
|
||||||
|
|
||||||
|
@ -1003,7 +1003,7 @@ class SyncHandler:
|
||||||
# always make sure we LL ourselves so we know we're in the room
|
# always make sure we LL ourselves so we know we're in the room
|
||||||
# (if we are) to fix https://github.com/vector-im/riot-web/issues/7209
|
# (if we are) to fix https://github.com/vector-im/riot-web/issues/7209
|
||||||
# We only need apply this on full state syncs given we disabled
|
# We only need apply this on full state syncs given we disabled
|
||||||
# LL for incr syncs in #3840.
|
# LL for incr syncs in https://github.com/matrix-org/synapse/pull/3840.
|
||||||
# We don't insert ourselves into `members_to_fetch`, because in some
|
# We don't insert ourselves into `members_to_fetch`, because in some
|
||||||
# rare cases (an empty event batch with a now_token after the user's
|
# rare cases (an empty event batch with a now_token after the user's
|
||||||
# leave in a partial state room which another local user has
|
# leave in a partial state room which another local user has
|
||||||
|
|
|
@ -184,8 +184,8 @@ class UserDirectoryHandler(StateDeltasHandler):
|
||||||
"""Called to update index of our local user profiles when they change
|
"""Called to update index of our local user profiles when they change
|
||||||
irrespective of any rooms the user may be in.
|
irrespective of any rooms the user may be in.
|
||||||
"""
|
"""
|
||||||
# FIXME(#3714): We should probably do this in the same worker as all
|
# FIXME(https://github.com/matrix-org/synapse/issues/3714): We should
|
||||||
# the other changes.
|
# probably do this in the same worker as all the other changes.
|
||||||
|
|
||||||
if await self.store.should_include_local_user_in_dir(user_id):
|
if await self.store.should_include_local_user_in_dir(user_id):
|
||||||
await self.store.update_profile_in_user_dir(
|
await self.store.update_profile_in_user_dir(
|
||||||
|
@ -194,8 +194,8 @@ class UserDirectoryHandler(StateDeltasHandler):
|
||||||
|
|
||||||
async def handle_local_user_deactivated(self, user_id: str) -> None:
|
async def handle_local_user_deactivated(self, user_id: str) -> None:
|
||||||
"""Called when a user ID is deactivated"""
|
"""Called when a user ID is deactivated"""
|
||||||
# FIXME(#3714): We should probably do this in the same worker as all
|
# FIXME(https://github.com/matrix-org/synapse/issues/3714): We should
|
||||||
# the other changes.
|
# probably do this in the same worker as all the other changes.
|
||||||
await self.store.remove_from_user_dir(user_id)
|
await self.store.remove_from_user_dir(user_id)
|
||||||
|
|
||||||
async def _unsafe_process(self) -> None:
|
async def _unsafe_process(self) -> None:
|
||||||
|
|
|
@ -465,7 +465,7 @@ class MatrixFederationHttpClient:
|
||||||
"""Wrapper for _send_request which can optionally retry the request
|
"""Wrapper for _send_request which can optionally retry the request
|
||||||
upon receiving a combination of a 400 HTTP response code and a
|
upon receiving a combination of a 400 HTTP response code and a
|
||||||
'M_UNRECOGNIZED' errcode. This is a workaround for Synapse <= v0.99.3
|
'M_UNRECOGNIZED' errcode. This is a workaround for Synapse <= v0.99.3
|
||||||
due to #3622.
|
due to https://github.com/matrix-org/synapse/issues/3622.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
request: details of request to be sent
|
request: details of request to be sent
|
||||||
|
@ -958,9 +958,9 @@ class MatrixFederationHttpClient:
|
||||||
requests).
|
requests).
|
||||||
try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
|
try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
|
||||||
response we should try appending a trailing slash to the end
|
response we should try appending a trailing slash to the end
|
||||||
of the request. Workaround for #3622 in Synapse <= v0.99.3. This
|
of the request. Workaround for https://github.com/matrix-org/synapse/issues/3622
|
||||||
will be attempted before backing off if backing off has been
|
in Synapse <= v0.99.3. This will be attempted before backing off if
|
||||||
enabled.
|
backing off has been enabled.
|
||||||
parser: The parser to use to decode the response. Defaults to
|
parser: The parser to use to decode the response. Defaults to
|
||||||
parsing as JSON.
|
parsing as JSON.
|
||||||
backoff_on_all_error_codes: Back off if we get any error response
|
backoff_on_all_error_codes: Back off if we get any error response
|
||||||
|
@ -1155,7 +1155,8 @@ class MatrixFederationHttpClient:
|
||||||
|
|
||||||
try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
|
try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
|
||||||
response we should try appending a trailing slash to the end of
|
response we should try appending a trailing slash to the end of
|
||||||
the request. Workaround for #3622 in Synapse <= v0.99.3.
|
the request. Workaround for https://github.com/matrix-org/synapse/issues/3622
|
||||||
|
in Synapse <= v0.99.3.
|
||||||
|
|
||||||
parser: The parser to use to decode the response. Defaults to
|
parser: The parser to use to decode the response. Defaults to
|
||||||
parsing as JSON.
|
parsing as JSON.
|
||||||
|
@ -1250,7 +1251,8 @@ class MatrixFederationHttpClient:
|
||||||
|
|
||||||
try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
|
try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
|
||||||
response we should try appending a trailing slash to the end of
|
response we should try appending a trailing slash to the end of
|
||||||
the request. Workaround for #3622 in Synapse <= v0.99.3.
|
the request. Workaround for https://github.com/matrix-org/synapse/issues/3622
|
||||||
|
in Synapse <= v0.99.3.
|
||||||
|
|
||||||
parser: The parser to use to decode the response. Defaults to
|
parser: The parser to use to decode the response. Defaults to
|
||||||
parsing as JSON.
|
parsing as JSON.
|
||||||
|
|
|
@ -295,7 +295,8 @@ class ThirdPartyEventRulesModuleApiCallbacks:
|
||||||
raise
|
raise
|
||||||
except SynapseError as e:
|
except SynapseError as e:
|
||||||
# FIXME: Being able to throw SynapseErrors is relied upon by
|
# FIXME: Being able to throw SynapseErrors is relied upon by
|
||||||
# some modules. PR #10386 accidentally broke this ability.
|
# some modules. PR https://github.com/matrix-org/synapse/pull/10386
|
||||||
|
# accidentally broke this ability.
|
||||||
# That said, we aren't keen on exposing this implementation detail
|
# That said, we aren't keen on exposing this implementation detail
|
||||||
# to modules and we should one day have a proper way to do what
|
# to modules and we should one day have a proper way to do what
|
||||||
# is wanted.
|
# is wanted.
|
||||||
|
|
|
@ -45,7 +45,7 @@ class Databases(Generic[DataStoreT]):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
databases: List[DatabasePool]
|
databases: List[DatabasePool]
|
||||||
main: "DataStore" # FIXME: #11165: actually an instance of `main_store_class`
|
main: "DataStore" # FIXME: https://github.com/matrix-org/synapse/issues/11165: actually an instance of `main_store_class`
|
||||||
state: StateGroupDataStore
|
state: StateGroupDataStore
|
||||||
persist_events: Optional[PersistEventsStore]
|
persist_events: Optional[PersistEventsStore]
|
||||||
|
|
||||||
|
|
|
@ -425,7 +425,7 @@ class EventsBackgroundUpdatesStore(SQLBaseStore):
|
||||||
"""Background update to clean out extremities that should have been
|
"""Background update to clean out extremities that should have been
|
||||||
deleted previously.
|
deleted previously.
|
||||||
|
|
||||||
Mainly used to deal with the aftermath of #5269.
|
Mainly used to deal with the aftermath of https://github.com/matrix-org/synapse/issues/5269.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# This works by first copying all existing forward extremities into the
|
# This works by first copying all existing forward extremities into the
|
||||||
|
@ -558,7 +558,7 @@ class EventsBackgroundUpdatesStore(SQLBaseStore):
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
"Deleted %d forward extremities of %d checked, to clean up #5269",
|
"Deleted %d forward extremities of %d checked, to clean up matrix-org/synapse#5269",
|
||||||
deleted,
|
deleted,
|
||||||
len(original_set),
|
len(original_set),
|
||||||
)
|
)
|
||||||
|
|
|
@ -1312,7 +1312,8 @@ class EventsWorkerStore(SQLBaseStore):
|
||||||
room_version: Optional[RoomVersion]
|
room_version: Optional[RoomVersion]
|
||||||
if not room_version_id:
|
if not room_version_id:
|
||||||
# this should only happen for out-of-band membership events which
|
# this should only happen for out-of-band membership events which
|
||||||
# arrived before #6983 landed. For all other events, we should have
|
# arrived before https://github.com/matrix-org/synapse/issues/6983
|
||||||
|
# landed. For all other events, we should have
|
||||||
# an entry in the 'rooms' table.
|
# an entry in the 'rooms' table.
|
||||||
#
|
#
|
||||||
# However, the 'out_of_band_membership' flag is unreliable for older
|
# However, the 'out_of_band_membership' flag is unreliable for older
|
||||||
|
@ -1323,7 +1324,8 @@ class EventsWorkerStore(SQLBaseStore):
|
||||||
"Room %s for event %s is unknown" % (d["room_id"], event_id)
|
"Room %s for event %s is unknown" % (d["room_id"], event_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
# so, assuming this is an out-of-band-invite that arrived before #6983
|
# so, assuming this is an out-of-band-invite that arrived before
|
||||||
|
# https://github.com/matrix-org/synapse/issues/6983
|
||||||
# landed, we know that the room version must be v5 or earlier (because
|
# landed, we know that the room version must be v5 or earlier (because
|
||||||
# v6 hadn't been invented at that point, so invites from such rooms
|
# v6 hadn't been invented at that point, so invites from such rooms
|
||||||
# would have been rejected.)
|
# would have been rejected.)
|
||||||
|
|
|
@ -317,7 +317,7 @@ class MonthlyActiveUsersWorkerStore(RegistrationWorkerStore):
|
||||||
if user_id:
|
if user_id:
|
||||||
is_support = self.is_support_user_txn(txn, user_id)
|
is_support = self.is_support_user_txn(txn, user_id)
|
||||||
if not is_support:
|
if not is_support:
|
||||||
# We do this manually here to avoid hitting #6791
|
# We do this manually here to avoid hitting https://github.com/matrix-org/synapse/issues/6791
|
||||||
self.db_pool.simple_upsert_txn(
|
self.db_pool.simple_upsert_txn(
|
||||||
txn,
|
txn,
|
||||||
table="monthly_active_users",
|
table="monthly_active_users",
|
||||||
|
|
|
@ -494,7 +494,7 @@ class PurgeEventsStore(StateGroupWorkerStore, CacheInvalidationWorkerStore):
|
||||||
# - room_tags_revisions
|
# - room_tags_revisions
|
||||||
# The problem with these is that they are largeish and there is no room_id
|
# The problem with these is that they are largeish and there is no room_id
|
||||||
# index on them. In any case we should be clearing out 'stream' tables
|
# index on them. In any case we should be clearing out 'stream' tables
|
||||||
# periodically anyway (#5888)
|
# periodically anyway (https://github.com/matrix-org/synapse/issues/5888)
|
||||||
|
|
||||||
self._invalidate_caches_for_room_and_stream(txn, room_id)
|
self._invalidate_caches_for_room_and_stream(txn, room_id)
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,8 @@ class PostgresEngine(
|
||||||
super().__init__(psycopg2, database_config)
|
super().__init__(psycopg2, database_config)
|
||||||
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
|
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
|
||||||
|
|
||||||
# Disables passing `bytes` to txn.execute, c.f. #6186. If you do
|
# Disables passing `bytes` to txn.execute, c.f.
|
||||||
|
# https://github.com/matrix-org/synapse/issues/6186. If you do
|
||||||
# actually want to use bytes than wrap it in `bytearray`.
|
# actually want to use bytes than wrap it in `bytearray`.
|
||||||
def _disable_bytes_adapter(_: bytes) -> NoReturn:
|
def _disable_bytes_adapter(_: bytes) -> NoReturn:
|
||||||
raise Exception("Passing bytes to DB is disabled.")
|
raise Exception("Passing bytes to DB is disabled.")
|
||||||
|
|
|
@ -109,7 +109,8 @@ Changes in SCHEMA_VERSION = 78
|
||||||
|
|
||||||
Changes in SCHEMA_VERSION = 79
|
Changes in SCHEMA_VERSION = 79
|
||||||
- Add tables to handle in DB read-write locks.
|
- Add tables to handle in DB read-write locks.
|
||||||
- Add some mitigations for a painful race between foreground and background updates, cf #15677.
|
- Add some mitigations for a painful race between foreground and background updates, cf
|
||||||
|
https://github.com/matrix-org/synapse/issues/15677.
|
||||||
|
|
||||||
Changes in SCHEMA_VERSION = 80
|
Changes in SCHEMA_VERSION = 80
|
||||||
- The event_txn_id_device_id is always written to for new events.
|
- The event_txn_id_device_id is always written to for new events.
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
-- Start a background job to cleanup extremities that were incorrectly added
|
-- Start a background job to cleanup extremities that were incorrectly added
|
||||||
-- by bug #5269.
|
-- by bug https://github.com/matrix-org/synapse/issues/5269.
|
||||||
INSERT INTO background_updates (update_name, progress_json) VALUES
|
INSERT INTO background_updates (update_name, progress_json) VALUES
|
||||||
('delete_soft_failed_extremities', '{}');
|
('delete_soft_failed_extremities', '{}');
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
-- Now that #6232 is a thing, we can remove old rooms from the directory.
|
-- Now that https://github.com/matrix-org/synapse/pull/6232 is a thing, we can
|
||||||
|
-- remove old rooms from the directory.
|
||||||
INSERT INTO background_updates (update_name, progress_json) VALUES
|
INSERT INTO background_updates (update_name, progress_json) VALUES
|
||||||
('remove_tombstoned_rooms_from_directory', '{}');
|
('remove_tombstoned_rooms_from_directory', '{}');
|
||||||
|
|
|
@ -13,7 +13,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
-- Clean up left over rows from bug #11833, which was fixed in #12770.
|
-- Clean up left over rows from bug https://github.com/matrix-org/synapse/issues/11833,
|
||||||
|
-- which was fixed in https://github.com/matrix-org/synapse/pull/12770.
|
||||||
DELETE FROM federation_inbound_events_staging WHERE room_id not in (
|
DELETE FROM federation_inbound_events_staging WHERE room_id not in (
|
||||||
SELECT room_id FROM rooms
|
SELECT room_id FROM rooms
|
||||||
);
|
);
|
||||||
|
|
|
@ -189,7 +189,8 @@ def check_requirements(extra: Optional[str] = None) -> None:
|
||||||
errors.append(_not_installed(requirement, extra))
|
errors.append(_not_installed(requirement, extra))
|
||||||
else:
|
else:
|
||||||
if dist.version is None:
|
if dist.version is None:
|
||||||
# This shouldn't happen---it suggests a borked virtualenv. (See #12223)
|
# This shouldn't happen---it suggests a borked virtualenv. (See
|
||||||
|
# https://github.com/matrix-org/synapse/issues/12223)
|
||||||
# Try to give a vaguely helpful error message anyway.
|
# Try to give a vaguely helpful error message anyway.
|
||||||
# Type-ignore: the annotations don't reflect reality: see
|
# Type-ignore: the annotations don't reflect reality: see
|
||||||
# https://github.com/python/typeshed/issues/7513
|
# https://github.com/python/typeshed/issues/7513
|
||||||
|
|
|
@ -29,5 +29,5 @@ We can't peek into rooms with joined history_visibility
|
||||||
Local users can peek by room alias
|
Local users can peek by room alias
|
||||||
Peeked rooms only turn up in the sync for the device who peeked them
|
Peeked rooms only turn up in the sync for the device who peeked them
|
||||||
|
|
||||||
# Validation needs to be added to Synapse: #10554
|
# Validation needs to be added to Synapse: https://github.com/matrix-org/synapse/issues/10554
|
||||||
Rejects invalid device keys
|
Rejects invalid device keys
|
||||||
|
|
|
@ -478,7 +478,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
|
||||||
# expect two edus, in one or two transactions. We don't know what order the
|
# expect two edus, in one or two transactions. We don't know what order the
|
||||||
# devices will be updated.
|
# devices will be updated.
|
||||||
self.assertEqual(len(self.edus), 2)
|
self.assertEqual(len(self.edus), 2)
|
||||||
stream_id = None # FIXME: there is a discontinuity in the stream IDs: see #7142
|
stream_id = None # FIXME: there is a discontinuity in the stream IDs: see https://github.com/matrix-org/synapse/issues/7142
|
||||||
for edu in self.edus:
|
for edu in self.edus:
|
||||||
self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
|
self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
|
||||||
c = edu["content"]
|
c = edu["content"]
|
||||||
|
|
|
@ -112,7 +112,7 @@ class FederationTestCase(unittest.FederatingHomeserverTestCase):
|
||||||
"""
|
"""
|
||||||
Check that we store the state group correctly for rejected non-state events.
|
Check that we store the state group correctly for rejected non-state events.
|
||||||
|
|
||||||
Regression test for #6289.
|
Regression test for https://github.com/matrix-org/synapse/issues/6289.
|
||||||
"""
|
"""
|
||||||
OTHER_SERVER = "otherserver"
|
OTHER_SERVER = "otherserver"
|
||||||
OTHER_USER = "@otheruser:" + OTHER_SERVER
|
OTHER_USER = "@otheruser:" + OTHER_SERVER
|
||||||
|
@ -165,7 +165,7 @@ class FederationTestCase(unittest.FederatingHomeserverTestCase):
|
||||||
"""
|
"""
|
||||||
Check that we store the state group correctly for rejected state events.
|
Check that we store the state group correctly for rejected state events.
|
||||||
|
|
||||||
Regression test for #6289.
|
Regression test for https://github.com/matrix-org/synapse/issues/6289.
|
||||||
"""
|
"""
|
||||||
OTHER_SERVER = "otherserver"
|
OTHER_SERVER = "otherserver"
|
||||||
OTHER_USER = "@otheruser:" + OTHER_SERVER
|
OTHER_USER = "@otheruser:" + OTHER_SERVER
|
||||||
|
@ -222,7 +222,7 @@ class FederationTestCase(unittest.FederatingHomeserverTestCase):
|
||||||
of backwards extremities(the magic number is more than 5),
|
of backwards extremities(the magic number is more than 5),
|
||||||
no errors are thrown.
|
no errors are thrown.
|
||||||
|
|
||||||
Regression test, see #11027
|
Regression test, see https://github.com/matrix-org/synapse/pull/11027
|
||||||
"""
|
"""
|
||||||
# create the room
|
# create the room
|
||||||
user_id = self.register_user("kermit", "test")
|
user_id = self.register_user("kermit", "test")
|
||||||
|
|
|
@ -368,7 +368,8 @@ class FederationClientTests(HomeserverTestCase):
|
||||||
"""
|
"""
|
||||||
If a connection is made to a client but the client rejects it due to
|
If a connection is made to a client but the client rejects it due to
|
||||||
requiring a trailing slash. We need to retry the request with a
|
requiring a trailing slash. We need to retry the request with a
|
||||||
trailing slash. Workaround for Synapse <= v0.99.3, explained in #3622.
|
trailing slash. Workaround for Synapse <= v0.99.3, explained in
|
||||||
|
https://github.com/matrix-org/synapse/issues/3622.
|
||||||
"""
|
"""
|
||||||
d = defer.ensureDeferred(
|
d = defer.ensureDeferred(
|
||||||
self.cl.get_json("testserv:8008", "foo/bar", try_trailing_slash_on_400=True)
|
self.cl.get_json("testserv:8008", "foo/bar", try_trailing_slash_on_400=True)
|
||||||
|
|
|
@ -92,7 +92,7 @@ class TestBulkPushRuleEvaluator(HomeserverTestCase):
|
||||||
- the bad power level value for "room", before JSON serisalistion
|
- the bad power level value for "room", before JSON serisalistion
|
||||||
- whether Bob should expect the message to be highlighted
|
- whether Bob should expect the message to be highlighted
|
||||||
|
|
||||||
Reproduces #14060.
|
Reproduces https://github.com/matrix-org/synapse/issues/14060.
|
||||||
|
|
||||||
A lack of validation: the gift that keeps on giving.
|
A lack of validation: the gift that keeps on giving.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -62,7 +62,7 @@ class ToDeviceStreamTestCase(BaseStreamTestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
# add one more message, for user2 this time
|
# add one more message, for user2 this time
|
||||||
# this message would be dropped before fixing #15335
|
# this message would be dropped before fixing https://github.com/matrix-org/synapse/issues/15335
|
||||||
msg["content"] = {"device": {}}
|
msg["content"] = {"device": {}}
|
||||||
messages = {user2: {"device": msg}}
|
messages = {user2: {"device": msg}}
|
||||||
|
|
||||||
|
|
|
@ -1478,7 +1478,7 @@ class DeactivateAccountTestCase(unittest.HomeserverTestCase):
|
||||||
def test_deactivate_user_erase_true_avatar_nonnull_but_empty(self) -> None:
|
def test_deactivate_user_erase_true_avatar_nonnull_but_empty(self) -> None:
|
||||||
"""Check we can erase a user whose avatar is the empty string.
|
"""Check we can erase a user whose avatar is the empty string.
|
||||||
|
|
||||||
Reproduces #12257.
|
Reproduces https://github.com/matrix-org/synapse/issues/12257.
|
||||||
"""
|
"""
|
||||||
# Patch `self.other_user` to have an empty string as their avatar.
|
# Patch `self.other_user` to have an empty string as their avatar.
|
||||||
self.get_success(
|
self.get_success(
|
||||||
|
|
|
@ -64,7 +64,7 @@ class EventStreamPermissionsTestCase(unittest.HomeserverTestCase):
|
||||||
# 403. However, since the v1 spec no longer exists and the v1
|
# 403. However, since the v1 spec no longer exists and the v1
|
||||||
# implementation is now part of the r0 implementation, the newer
|
# implementation is now part of the r0 implementation, the newer
|
||||||
# behaviour is used instead to be consistent with the r0 spec.
|
# behaviour is used instead to be consistent with the r0 spec.
|
||||||
# see issue #2602
|
# see issue https://github.com/matrix-org/synapse/issues/2602
|
||||||
channel = self.make_request(
|
channel = self.make_request(
|
||||||
"GET", "/events?access_token=%s" % ("invalid" + self.token,)
|
"GET", "/events?access_token=%s" % ("invalid" + self.token,)
|
||||||
)
|
)
|
||||||
|
|
|
@ -170,7 +170,8 @@ class ProfileTestCase(unittest.HomeserverTestCase):
|
||||||
)
|
)
|
||||||
self.assertEqual(channel.code, 200, channel.result)
|
self.assertEqual(channel.code, 200, channel.result)
|
||||||
# FIXME: If a user has no displayname set, Synapse returns 200 and omits a
|
# FIXME: If a user has no displayname set, Synapse returns 200 and omits a
|
||||||
# displayname from the response. This contradicts the spec, see #13137.
|
# displayname from the response. This contradicts the spec, see
|
||||||
|
# https://github.com/matrix-org/synapse/issues/13137.
|
||||||
return channel.json_body.get("displayname")
|
return channel.json_body.get("displayname")
|
||||||
|
|
||||||
def _get_avatar_url(self, name: Optional[str] = None) -> Optional[str]:
|
def _get_avatar_url(self, name: Optional[str] = None) -> Optional[str]:
|
||||||
|
@ -179,7 +180,8 @@ class ProfileTestCase(unittest.HomeserverTestCase):
|
||||||
)
|
)
|
||||||
self.assertEqual(channel.code, 200, channel.result)
|
self.assertEqual(channel.code, 200, channel.result)
|
||||||
# FIXME: If a user has no avatar set, Synapse returns 200 and omits an
|
# FIXME: If a user has no avatar set, Synapse returns 200 and omits an
|
||||||
# avatar_url from the response. This contradicts the spec, see #13137.
|
# avatar_url from the response. This contradicts the spec, see
|
||||||
|
# https://github.com/matrix-org/synapse/issues/13137.
|
||||||
return channel.json_body.get("avatar_url")
|
return channel.json_body.get("avatar_url")
|
||||||
|
|
||||||
@unittest.override_config({"max_avatar_size": 50})
|
@unittest.override_config({"max_avatar_size": 50})
|
||||||
|
|
|
@ -888,7 +888,8 @@ class RoomsCreateTestCase(RoomBase):
|
||||||
)
|
)
|
||||||
def test_room_creation_ratelimiting(self) -> None:
|
def test_room_creation_ratelimiting(self) -> None:
|
||||||
"""
|
"""
|
||||||
Regression test for #14312, where ratelimiting was made too strict.
|
Regression test for https://github.com/matrix-org/synapse/issues/14312,
|
||||||
|
where ratelimiting was made too strict.
|
||||||
Clients should be able to create 10 rooms in a row
|
Clients should be able to create 10 rooms in a row
|
||||||
without hitting rate limits, using default rate limit config.
|
without hitting rate limits, using default rate limit config.
|
||||||
(We override rate limiting config back to its default value.)
|
(We override rate limiting config back to its default value.)
|
||||||
|
|
|
@ -642,7 +642,7 @@ class SyncCacheTestCase(unittest.HomeserverTestCase):
|
||||||
def test_noop_sync_does_not_tightloop(self) -> None:
|
def test_noop_sync_does_not_tightloop(self) -> None:
|
||||||
"""If the sync times out, we shouldn't cache the result
|
"""If the sync times out, we shouldn't cache the result
|
||||||
|
|
||||||
Essentially a regression test for #8518.
|
Essentially a regression test for https://github.com/matrix-org/synapse/issues/8518.
|
||||||
"""
|
"""
|
||||||
self.user_id = self.register_user("kermit", "monkey")
|
self.user_id = self.register_user("kermit", "monkey")
|
||||||
self.tok = self.login("kermit", "monkey")
|
self.tok = self.login("kermit", "monkey")
|
||||||
|
|
|
@ -66,9 +66,9 @@ class LockTestCase(unittest.HomeserverTestCase):
|
||||||
|
|
||||||
# Run the tasks to completion.
|
# Run the tasks to completion.
|
||||||
# To work around `Linearizer`s using a different reactor to sleep when
|
# To work around `Linearizer`s using a different reactor to sleep when
|
||||||
# contended (#12841), we call `runUntilCurrent` on
|
# contended (https://github.com/matrix-org/synapse/issues/12841), we call
|
||||||
# `twisted.internet.reactor`, which is a different reactor to that used
|
# `runUntilCurrent` on `twisted.internet.reactor`, which is a different
|
||||||
# by the homeserver.
|
# reactor to that used by the homeserver.
|
||||||
assert isinstance(reactor, ReactorBase)
|
assert isinstance(reactor, ReactorBase)
|
||||||
self.get_success(task1)
|
self.get_success(task1)
|
||||||
reactor.runUntilCurrent()
|
reactor.runUntilCurrent()
|
||||||
|
@ -217,9 +217,9 @@ class ReadWriteLockTestCase(unittest.HomeserverTestCase):
|
||||||
|
|
||||||
# Run the tasks to completion.
|
# Run the tasks to completion.
|
||||||
# To work around `Linearizer`s using a different reactor to sleep when
|
# To work around `Linearizer`s using a different reactor to sleep when
|
||||||
# contended (#12841), we call `runUntilCurrent` on
|
# contended (https://github.com/matrix-org/synapse/issues/12841), we call
|
||||||
# `twisted.internet.reactor`, which is a different reactor to that used
|
# `runUntilCurrent` on `twisted.internet.reactor`, which is a different
|
||||||
# by the homeserver.
|
# reactor to that used by the homeserver.
|
||||||
assert isinstance(reactor, ReactorBase)
|
assert isinstance(reactor, ReactorBase)
|
||||||
self.get_success(task1)
|
self.get_success(task1)
|
||||||
reactor.runUntilCurrent()
|
reactor.runUntilCurrent()
|
||||||
|
@ -269,9 +269,9 @@ class ReadWriteLockTestCase(unittest.HomeserverTestCase):
|
||||||
|
|
||||||
# Run the tasks to completion.
|
# Run the tasks to completion.
|
||||||
# To work around `Linearizer`s using a different reactor to sleep when
|
# To work around `Linearizer`s using a different reactor to sleep when
|
||||||
# contended (#12841), we call `runUntilCurrent` on
|
# contended (https://github.com/matrix-org/synapse/issues/12841), we call
|
||||||
# `twisted.internet.reactor`, which is a different reactor to that used
|
# `runUntilCurrent` on `twisted.internet.reactor`, which is a different
|
||||||
# by the homeserver.
|
# reactor to that used by the homeserver.
|
||||||
assert isinstance(reactor, ReactorBase)
|
assert isinstance(reactor, ReactorBase)
|
||||||
self.get_success(task1)
|
self.get_success(task1)
|
||||||
reactor.runUntilCurrent()
|
reactor.runUntilCurrent()
|
||||||
|
|
|
@ -214,7 +214,8 @@ class CallbacksTestCase(unittest.HomeserverTestCase):
|
||||||
after_callback, exception_callback = self._run_interaction(_test_txn)
|
after_callback, exception_callback = self._run_interaction(_test_txn)
|
||||||
|
|
||||||
# Calling both `after_callback`s when the first attempt failed is rather
|
# Calling both `after_callback`s when the first attempt failed is rather
|
||||||
# surprising (#12184). Let's document the behaviour in a test.
|
# surprising (https://github.com/matrix-org/synapse/issues/12184).
|
||||||
|
# Let's document the behaviour in a test.
|
||||||
after_callback.assert_has_calls(
|
after_callback.assert_has_calls(
|
||||||
[
|
[
|
||||||
call(123, 456, extra=789),
|
call(123, 456, extra=789),
|
||||||
|
@ -293,7 +294,7 @@ class PostgresReplicaIdentityTestCase(unittest.HomeserverTestCase):
|
||||||
def test_all_tables_have_postgres_replica_identity(self) -> None:
|
def test_all_tables_have_postgres_replica_identity(self) -> None:
|
||||||
"""
|
"""
|
||||||
Tests that all tables have a Postgres REPLICA IDENTITY.
|
Tests that all tables have a Postgres REPLICA IDENTITY.
|
||||||
(See #16224).
|
(See https://github.com/matrix-org/synapse/issues/16224).
|
||||||
|
|
||||||
Tables with a PRIMARY KEY have an implied REPLICA IDENTITY and are fine.
|
Tables with a PRIMARY KEY have an implied REPLICA IDENTITY and are fine.
|
||||||
Other tables need them to be set with `ALTER TABLE`.
|
Other tables need them to be set with `ALTER TABLE`.
|
||||||
|
|
|
@ -1060,7 +1060,7 @@ class EventFederationWorkerStoreTestCase(tests.unittest.HomeserverTestCase):
|
||||||
self,
|
self,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""
|
"""
|
||||||
A test that reproduces #13929 (Postgres only).
|
A test that reproduces https://github.com/matrix-org/synapse/issues/13929 (Postgres only).
|
||||||
|
|
||||||
Test to make sure we can still get backfill points after many failed pull
|
Test to make sure we can still get backfill points after many failed pull
|
||||||
attempts that cause us to backoff to the limit. Even if the backoff formula
|
attempts that cause us to backoff to the limit. Even if the backoff formula
|
||||||
|
|
|
@ -93,7 +93,7 @@ class EventSearchInsertionTest(HomeserverTestCase):
|
||||||
both strings and integers. When using Postgres, integers are automatically
|
both strings and integers. When using Postgres, integers are automatically
|
||||||
converted to strings.
|
converted to strings.
|
||||||
|
|
||||||
Regression test for #11918.
|
Regression test for https://github.com/matrix-org/synapse/issues/11918.
|
||||||
"""
|
"""
|
||||||
store = self.hs.get_datastores().main
|
store = self.hs.get_datastores().main
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,8 @@ class TestDependencyChecker(TestCase):
|
||||||
def test_version_reported_as_none(self) -> None:
|
def test_version_reported_as_none(self) -> None:
|
||||||
"""Complain if importlib.metadata.version() returns None.
|
"""Complain if importlib.metadata.version() returns None.
|
||||||
|
|
||||||
This shouldn't normally happen, but it was seen in the wild (#12223).
|
This shouldn't normally happen, but it was seen in the wild
|
||||||
|
(https://github.com/matrix-org/synapse/issues/12223).
|
||||||
"""
|
"""
|
||||||
with patch(
|
with patch(
|
||||||
"synapse.util.check_dependencies.metadata.requires",
|
"synapse.util.check_dependencies.metadata.requires",
|
||||||
|
@ -148,7 +149,7 @@ class TestDependencyChecker(TestCase):
|
||||||
"""
|
"""
|
||||||
Tests that release candidates count as far as satisfying a dependency
|
Tests that release candidates count as far as satisfying a dependency
|
||||||
is concerned.
|
is concerned.
|
||||||
(Regression test, see #12176.)
|
(Regression test, see https://github.com/matrix-org/synapse/issues/12176.)
|
||||||
"""
|
"""
|
||||||
with patch(
|
with patch(
|
||||||
"synapse.util.check_dependencies.metadata.requires",
|
"synapse.util.check_dependencies.metadata.requires",
|
||||||
|
@ -162,7 +163,10 @@ class TestDependencyChecker(TestCase):
|
||||||
check_requirements()
|
check_requirements()
|
||||||
|
|
||||||
def test_setuptools_rust_ignored(self) -> None:
|
def test_setuptools_rust_ignored(self) -> None:
|
||||||
"""Test a workaround for a `poetry build` problem. Reproduces #13926."""
|
"""
|
||||||
|
Test a workaround for a `poetry build` problem. Reproduces
|
||||||
|
https://github.com/matrix-org/synapse/issues/13926.
|
||||||
|
"""
|
||||||
with patch(
|
with patch(
|
||||||
"synapse.util.check_dependencies.metadata.requires",
|
"synapse.util.check_dependencies.metadata.requires",
|
||||||
return_value=["setuptools_rust >= 1.3"],
|
return_value=["setuptools_rust >= 1.3"],
|
||||||
|
|
Loading…
Reference in New Issue