mirror of
https://github.com/element-hq/synapse.git
synced 2026-10-23 00:03:16 +00:00
Change default room version to 11 (MSC4239) (#18680)
Fix #18530 Complement test changes: https://github.com/matrix-org/complement/pull/858 SyTest changes: https://github.com/matrix-org/sytest/pull/1422
This commit is contained in:
10 files changed
+57
-53
No files matched your search
@@ -0,0 +1 @@
|
||||
Change default room version to 11, implementing [MSC4239](https://github.com/matrix-org/matrix-spec-proposals/pull/4239) as part of Matrix v1.14.
|
||||
@@ -363,8 +363,9 @@ Known room versions are listed [here](https://spec.matrix.org/latest/rooms/#comp
|
||||
For example, for room version 1, `default_room_version` should be set to "1".
|
||||
|
||||
_Changed in Synapse 1.76:_ the default version room version was increased from [9](https://spec.matrix.org/v1.5/rooms/v9/) to [10](https://spec.matrix.org/v1.5/rooms/v10/).
|
||||
_Changed in Synapse 1.157:_ the default version room version was increased from [10](https://spec.matrix.org/v1.12/rooms/v10/) to [11](https://spec.matrix.org/v1.12/rooms/v11/).
|
||||
|
||||
Defaults to `"10"`.
|
||||
Defaults to `"11"`.
|
||||
|
||||
Example configuration:
|
||||
```yaml
|
||||
|
||||
@@ -309,7 +309,11 @@ properties:
|
||||
_Changed in Synapse 1.76:_ the default version room version was increased
|
||||
from [9](https://spec.matrix.org/v1.5/rooms/v9/) to
|
||||
[10](https://spec.matrix.org/v1.5/rooms/v10/).
|
||||
default: "10"
|
||||
|
||||
_Changed in Synapse 1.157:_ the default version room version was increased
|
||||
from [10](https://spec.matrix.org/v1.12/rooms/v10/) to
|
||||
[11](https://spec.matrix.org/v1.12/rooms/v11/).
|
||||
default: "11"
|
||||
examples:
|
||||
- "8"
|
||||
gc_thresholds:
|
||||
|
||||
@@ -176,7 +176,7 @@ DEFAULT_IP_RANGE_BLOCKLIST = [
|
||||
"fec0::/10",
|
||||
]
|
||||
|
||||
DEFAULT_ROOM_VERSION = "10"
|
||||
DEFAULT_ROOM_VERSION = "11"
|
||||
|
||||
# Defaults for the presence state machine timers, in milliseconds. Overridden
|
||||
# by the corresponding options in the `presence` config section.
|
||||
|
||||
@@ -189,7 +189,7 @@ class OutOfBandMembershipTests(unittest.FederatingHomeserverTestCase):
|
||||
# Create a remote room
|
||||
room_creator_user_id = f"@remote-user:{self.OTHER_SERVER_NAME}"
|
||||
remote_room_id = f"!remote-room:{self.OTHER_SERVER_NAME}"
|
||||
room_version = RoomVersions.V10
|
||||
room_version = RoomVersions.V11
|
||||
|
||||
room_create_event = make_test_event(
|
||||
self.add_hashes_and_signatures_from_other_server(
|
||||
@@ -201,9 +201,6 @@ class OutOfBandMembershipTests(unittest.FederatingHomeserverTestCase):
|
||||
"type": EventTypes.Create,
|
||||
"state_key": "",
|
||||
"content": {
|
||||
# The `ROOM_CREATOR` field could be removed if we used a room
|
||||
# version > 10 (in favor of relying on `sender`)
|
||||
EventContentFields.ROOM_CREATOR: room_creator_user_id,
|
||||
EventContentFields.ROOM_VERSION: room_version.identifier,
|
||||
},
|
||||
"auth_events": [],
|
||||
|
||||
@@ -743,7 +743,6 @@ class ModuleApiTestCase(BaseModuleApiTestCase):
|
||||
|
||||
# Now do the happy path.
|
||||
user_id = self.register_user("user", "password")
|
||||
access_token = self.login(user_id, "password")
|
||||
|
||||
room_id, room_alias = self.get_success(
|
||||
self.module_api.create_room(
|
||||
@@ -751,15 +750,6 @@ class ModuleApiTestCase(BaseModuleApiTestCase):
|
||||
)
|
||||
)
|
||||
|
||||
# Check room creator.
|
||||
channel = self.make_request(
|
||||
"GET",
|
||||
f"/_matrix/client/v3/rooms/{room_id}/state/m.room.create",
|
||||
access_token=access_token,
|
||||
)
|
||||
self.assertEqual(channel.code, 200, channel.result)
|
||||
self.assertEqual(channel.json_body["creator"], user_id)
|
||||
|
||||
# Check room alias.
|
||||
self.assertEqual(room_alias, f"#foo-bar:{self.module_api.server_name}")
|
||||
|
||||
@@ -768,15 +758,6 @@ class ModuleApiTestCase(BaseModuleApiTestCase):
|
||||
self.module_api.create_room(user_id=user_id, config={}, ratelimit=False)
|
||||
)
|
||||
|
||||
# Check room creator.
|
||||
channel = self.make_request(
|
||||
"GET",
|
||||
f"/_matrix/client/v3/rooms/{room_id}/state/m.room.create",
|
||||
access_token=access_token,
|
||||
)
|
||||
self.assertEqual(channel.code, 200, channel.result)
|
||||
self.assertEqual(channel.json_body["creator"], user_id)
|
||||
|
||||
# Check room alias.
|
||||
self.assertIsNone(room_alias)
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ class SlidingSyncRoomsInvitesTestCase(SlidingSyncBase):
|
||||
response_body["rooms"][room_id1]["invite_state"],
|
||||
[
|
||||
{
|
||||
"content": {"creator": user2_id, "room_version": "10"},
|
||||
"content": {"room_version": "11"},
|
||||
"sender": user2_id,
|
||||
"state_key": "",
|
||||
"type": "m.room.create",
|
||||
@@ -253,7 +253,7 @@ class SlidingSyncRoomsInvitesTestCase(SlidingSyncBase):
|
||||
response_body["rooms"][room_id1]["invite_state"],
|
||||
[
|
||||
{
|
||||
"content": {"creator": user2_id, "room_version": "10"},
|
||||
"content": {"room_version": "11"},
|
||||
"sender": user2_id,
|
||||
"state_key": "",
|
||||
"type": "m.room.create",
|
||||
@@ -374,7 +374,7 @@ class SlidingSyncRoomsInvitesTestCase(SlidingSyncBase):
|
||||
response_body["rooms"][room_id1]["invite_state"],
|
||||
[
|
||||
{
|
||||
"content": {"creator": user2_id, "room_version": "10"},
|
||||
"content": {"room_version": "11"},
|
||||
"sender": user2_id,
|
||||
"state_key": "",
|
||||
"type": "m.room.create",
|
||||
@@ -500,7 +500,7 @@ class SlidingSyncRoomsInvitesTestCase(SlidingSyncBase):
|
||||
response_body["rooms"][room_id1]["invite_state"],
|
||||
[
|
||||
{
|
||||
"content": {"creator": user2_id, "room_version": "10"},
|
||||
"content": {"room_version": "11"},
|
||||
"sender": user2_id,
|
||||
"state_key": "",
|
||||
"type": "m.room.create",
|
||||
|
||||
@@ -63,7 +63,12 @@ class RedactionsTestCase(HomeserverTestCase):
|
||||
|
||||
# Create a room
|
||||
self.room_id = self.helper.create_room_as(
|
||||
self.mod_user_id, tok=self.mod_access_token
|
||||
self.mod_user_id,
|
||||
tok=self.mod_access_token,
|
||||
# FIXME: Using room version 10 here as using later version requires
|
||||
# https://github.com/element-hq/synapse/pull/19782
|
||||
# Remove the override when the above PR is merged.
|
||||
room_version="10",
|
||||
)
|
||||
|
||||
# Invite the other user
|
||||
|
||||
@@ -4916,7 +4916,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
bad_user = "@remote_bad_user:" + self.OTHER_SERVER_NAME
|
||||
channel = self.make_signed_federation_request(
|
||||
"GET",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=10",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=11",
|
||||
)
|
||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.json_body)
|
||||
join_result = channel.json_body
|
||||
@@ -4924,7 +4924,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
join_event_dict = join_result["event"]
|
||||
self.add_hashes_and_signatures_from_other_server(
|
||||
join_event_dict,
|
||||
RoomVersions.V10,
|
||||
RoomVersions.V11,
|
||||
)
|
||||
channel = self.make_signed_federation_request(
|
||||
"PUT",
|
||||
@@ -4959,7 +4959,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
@@ -5010,7 +5010,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
@@ -5035,7 +5035,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
bad_user = "@remote_bad_user:" + self.OTHER_SERVER_NAME
|
||||
channel = self.make_signed_federation_request(
|
||||
"GET",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=10",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=11",
|
||||
)
|
||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.json_body)
|
||||
join_result = channel.json_body
|
||||
@@ -5043,7 +5043,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
join_event_dict = join_result["event"]
|
||||
self.add_hashes_and_signatures_from_other_server(
|
||||
join_event_dict,
|
||||
RoomVersions.V10,
|
||||
RoomVersions.V11,
|
||||
)
|
||||
channel = self.make_signed_federation_request(
|
||||
"PUT",
|
||||
@@ -5078,7 +5078,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
@@ -5119,7 +5119,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
# user should be able to join again
|
||||
channel = self.make_signed_federation_request(
|
||||
"GET",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=10",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=11",
|
||||
)
|
||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.json_body)
|
||||
join_result = channel.json_body
|
||||
@@ -5167,7 +5167,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
@@ -5281,7 +5281,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
bad_user = "@remote_bad_user:" + self.OTHER_SERVER_NAME
|
||||
channel = self.make_signed_federation_request(
|
||||
"GET",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=10",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=11",
|
||||
)
|
||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.json_body)
|
||||
join_result = channel.json_body
|
||||
@@ -5289,7 +5289,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
join_event_dict = join_result["event"]
|
||||
self.add_hashes_and_signatures_from_other_server(
|
||||
join_event_dict,
|
||||
RoomVersions.V10,
|
||||
RoomVersions.V11,
|
||||
)
|
||||
channel = self.make_signed_federation_request(
|
||||
"PUT",
|
||||
@@ -5324,7 +5324,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
@@ -5375,7 +5375,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
@@ -5397,7 +5397,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
bad_user = "@remote_bad_user:" + self.OTHER_SERVER_NAME
|
||||
channel = self.make_signed_federation_request(
|
||||
"GET",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=10",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=11",
|
||||
)
|
||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.json_body)
|
||||
join_result = channel.json_body
|
||||
@@ -5405,7 +5405,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
join_event_dict = join_result["event"]
|
||||
self.add_hashes_and_signatures_from_other_server(
|
||||
join_event_dict,
|
||||
RoomVersions.V10,
|
||||
RoomVersions.V11,
|
||||
)
|
||||
channel = self.make_signed_federation_request(
|
||||
"PUT",
|
||||
@@ -5440,7 +5440,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
@@ -5476,7 +5476,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
# user re-joins after kick
|
||||
channel = self.make_signed_federation_request(
|
||||
"GET",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=10",
|
||||
f"/_matrix/federation/v1/make_join/{self.room_id}/{bad_user}?ver=11",
|
||||
)
|
||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.json_body)
|
||||
join_result = channel.json_body
|
||||
@@ -5484,7 +5484,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
join_event_dict = join_result["event"]
|
||||
self.add_hashes_and_signatures_from_other_server(
|
||||
join_event_dict,
|
||||
RoomVersions.V10,
|
||||
RoomVersions.V11,
|
||||
)
|
||||
channel = self.make_signed_federation_request(
|
||||
"PUT",
|
||||
@@ -5524,7 +5524,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
"prev_events": auth_ids,
|
||||
}
|
||||
),
|
||||
room_version=RoomVersions.V10,
|
||||
room_version=RoomVersions.V11,
|
||||
)
|
||||
|
||||
self.get_success(
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#
|
||||
|
||||
import json
|
||||
from typing import Optional
|
||||
|
||||
from twisted.internet.testing import MemoryReactor
|
||||
|
||||
@@ -45,9 +46,13 @@ class RoomBackgroundUpdateStoreTestCase(HomeserverTestCase):
|
||||
self.user_id = self.register_user("foo", "pass")
|
||||
self.token = self.login("foo", "pass")
|
||||
|
||||
def _generate_room(self) -> str:
|
||||
def _generate_room(self, room_version: Optional[str] = None) -> str:
|
||||
"""Create a room and return the room ID."""
|
||||
return self.helper.create_room_as(self.user_id, tok=self.token)
|
||||
return self.helper.create_room_as(
|
||||
self.user_id,
|
||||
tok=self.token,
|
||||
room_version=room_version,
|
||||
)
|
||||
|
||||
def run_background_updates(self, update_name: str) -> None:
|
||||
"""Insert and run the background update."""
|
||||
@@ -70,7 +75,17 @@ class RoomBackgroundUpdateStoreTestCase(HomeserverTestCase):
|
||||
"""
|
||||
|
||||
# Insert a room without the creator
|
||||
room_id = self._generate_room()
|
||||
room_id = self._generate_room(
|
||||
# Create the room as v10, because the `POPULATE_ROOMS_CREATOR_COLUMN`
|
||||
# background update assumes that the room `creator` field is available
|
||||
# in the `m.room.create` event content, which was removed in room
|
||||
# version 11. That assumption is safe as the background update only
|
||||
# backfills rooms whose `creator` column is unset, which can only be
|
||||
# rooms created before Synapse started populating the column at room
|
||||
# creation time (Synapse 1.43, 2021), all of which predate room version
|
||||
# 11 (2023).
|
||||
room_version="10"
|
||||
)
|
||||
self.get_success(
|
||||
self.store.db_pool.simple_update(
|
||||
table="rooms",
|
||||
|
||||
Reference in new issue
Block a user