diff --git a/changelog.d/14111.feature b/changelog.d/14111.feature
new file mode 100644
index 0000000000..0a794701a7
--- /dev/null
+++ b/changelog.d/14111.feature
@@ -0,0 +1 @@
+Update the default room version to [v10](https://spec.matrix.org/v1.5/rooms/v10/) ([MSC 3904](https://github.com/matrix-org/matrix-spec-proposals/pull/3904)). Contributed by @FSG-Cat.
\ No newline at end of file
diff --git a/docs/usage/configuration/config_documentation.md b/docs/usage/configuration/config_documentation.md
index 3481e866f7..2883f76a26 100644
--- a/docs/usage/configuration/config_documentation.md
+++ b/docs/usage/configuration/config_documentation.md
@@ -295,7 +295,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".
-Currently defaults to "9".
+Currently defaults to ["10"](https://spec.matrix.org/v1.5/rooms/v10/).
+
+_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/).
Example configuration:
```yaml
diff --git a/synapse/config/server.py b/synapse/config/server.py
index ec46ca63ad..80bcfa4080 100644
--- a/synapse/config/server.py
+++ b/synapse/config/server.py
@@ -151,7 +151,7 @@ DEFAULT_IP_RANGE_BLACKLIST = [
"fec0::/10",
]
-DEFAULT_ROOM_VERSION = "9"
+DEFAULT_ROOM_VERSION = "10"
ROOM_COMPLEXITY_TOO_GREAT = (
"Your homeserver is unable to join rooms this large or complex. "
diff --git a/tests/rest/client/test_upgrade_room.py b/tests/rest/client/test_upgrade_room.py
index 5e7bf97482..5ec343dd7f 100644
--- a/tests/rest/client/test_upgrade_room.py
+++ b/tests/rest/client/test_upgrade_room.py
@@ -199,9 +199,15 @@ class UpgradeRoomTest(unittest.HomeserverTestCase):
def test_stringy_power_levels(self) -> None:
"""The room upgrade converts stringy power levels to proper integers."""
+ # Create a room on room version < 10.
+ room_id = self.helper.create_room_as(
+ self.creator, tok=self.creator_token, room_version="9"
+ )
+ self.helper.join(room_id, self.other, tok=self.other_token)
+
# Retrieve the room's current power levels.
power_levels = self.helper.get_state(
- self.room_id,
+ room_id,
"m.room.power_levels",
tok=self.creator_token,
)
@@ -217,14 +223,14 @@ class UpgradeRoomTest(unittest.HomeserverTestCase):
# conscience, we ought to ensure it's upgrading from a sufficiently old
# version of room.
self.helper.send_state(
- self.room_id,
+ room_id,
"m.room.power_levels",
body=power_levels,
tok=self.creator_token,
)
# Upgrade the room. Check the homeserver reports success.
- channel = self._upgrade_room()
+ channel = self._upgrade_room(room_id=room_id)
self.assertEqual(200, channel.code, channel.result)
# Extract the new room ID.
|