Skip to content

Commit f6105b7

Browse files
authored
Remove support for MSC3244: Room version capabilities as the MSC was rejected. (#19429)
Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org>
1 parent 8d4ebc2 commit f6105b7

5 files changed

Lines changed: 2 additions & 87 deletions

File tree

changelog.d/19429.removal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Remove support for [MSC3244: Room version capabilities](https://github.com/matrix-org/matrix-spec-proposals/pull/3244) as the MSC was rejected.

synapse/api/room_versions.py

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#
1919
#
2020

21-
from typing import Callable
2221

2322
import attr
2423

@@ -496,40 +495,3 @@ class RoomVersions:
496495
RoomVersions.HydraV11,
497496
)
498497
}
499-
500-
501-
@attr.s(slots=True, frozen=True, auto_attribs=True)
502-
class RoomVersionCapability:
503-
"""An object which describes the unique attributes of a room version."""
504-
505-
identifier: str # the identifier for this capability
506-
preferred_version: RoomVersion | None
507-
support_check_lambda: Callable[[RoomVersion], bool]
508-
509-
510-
MSC3244_CAPABILITIES = {
511-
cap.identifier: {
512-
"preferred": (
513-
cap.preferred_version.identifier
514-
if cap.preferred_version is not None
515-
else None
516-
),
517-
"support": [
518-
v.identifier
519-
for v in KNOWN_ROOM_VERSIONS.values()
520-
if cap.support_check_lambda(v)
521-
],
522-
}
523-
for cap in (
524-
RoomVersionCapability(
525-
"knock",
526-
RoomVersions.V7,
527-
lambda room_version: room_version.knock_join_rule,
528-
),
529-
RoomVersionCapability(
530-
"restricted",
531-
RoomVersions.V9,
532-
lambda room_version: room_version.restricted_join_rule,
533-
),
534-
)
535-
}

synapse/config/experimental.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,6 @@ def read_config(
385385
# MSC3814 (dehydrated devices with SSSS)
386386
self.msc3814_enabled: bool = experimental.get("msc3814_enabled", False)
387387

388-
# MSC3244 (room version capabilities)
389-
self.msc3244_enabled: bool = experimental.get("msc3244_enabled", True)
390-
391388
# MSC3266 (room summary api)
392389
self.msc3266_enabled: bool = experimental.get("msc3266_enabled", False)
393390

synapse/rest/client/capabilities.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from http import HTTPStatus
2222
from typing import TYPE_CHECKING
2323

24-
from synapse.api.room_versions import KNOWN_ROOM_VERSIONS, MSC3244_CAPABILITIES
24+
from synapse.api.room_versions import KNOWN_ROOM_VERSIONS
2525
from synapse.http.server import HttpServer
2626
from synapse.http.servlet import RestServlet
2727
from synapse.http.site import SynapseRequest
@@ -77,11 +77,6 @@ async def on_GET(self, request: SynapseRequest) -> tuple[int, JsonDict]:
7777
}
7878
}
7979

80-
if self.config.experimental.msc3244_enabled:
81-
response["capabilities"]["m.room_versions"][
82-
"org.matrix.msc3244.room_capabilities"
83-
] = MSC3244_CAPABILITIES
84-
8580
if self.config.experimental.msc3720_enabled:
8681
response["capabilities"]["org.matrix.msc3720.account_status"] = {
8782
"enabled": True,

tests/rest/client/test_capabilities.py

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -209,46 +209,6 @@ def test_get_change_3pid_capabilities_3pid_disabled(self) -> None:
209209
self.assertEqual(channel.code, HTTPStatus.OK)
210210
self.assertFalse(capabilities["m.3pid_changes"]["enabled"])
211211

212-
@override_config({"experimental_features": {"msc3244_enabled": False}})
213-
def test_get_does_not_include_msc3244_fields_when_disabled(self) -> None:
214-
access_token = self.get_success(
215-
self.auth_handler.create_access_token_for_user_id(
216-
self.user, device_id=None, valid_until_ms=None
217-
)
218-
)
219-
220-
channel = self.make_request("GET", self.url, access_token=access_token)
221-
capabilities = channel.json_body["capabilities"]
222-
223-
self.assertEqual(channel.code, 200)
224-
self.assertNotIn(
225-
"org.matrix.msc3244.room_capabilities", capabilities["m.room_versions"]
226-
)
227-
228-
def test_get_does_include_msc3244_fields_when_enabled(self) -> None:
229-
access_token = self.get_success(
230-
self.auth_handler.create_access_token_for_user_id(
231-
self.user, device_id=None, valid_until_ms=None
232-
)
233-
)
234-
235-
channel = self.make_request("GET", self.url, access_token=access_token)
236-
capabilities = channel.json_body["capabilities"]
237-
238-
self.assertEqual(channel.code, 200)
239-
for details in capabilities["m.room_versions"][
240-
"org.matrix.msc3244.room_capabilities"
241-
].values():
242-
if details["preferred"] is not None:
243-
self.assertTrue(
244-
details["preferred"] in KNOWN_ROOM_VERSIONS,
245-
str(details["preferred"]),
246-
)
247-
248-
self.assertGreater(len(details["support"]), 0)
249-
for room_version in details["support"]:
250-
self.assertTrue(room_version in KNOWN_ROOM_VERSIONS, str(room_version))
251-
252212
def test_get_get_token_login_fields_when_disabled(self) -> None:
253213
"""By default login via an existing session is disabled."""
254214
access_token = self.get_success(

0 commit comments

Comments
 (0)