From 2439ceb2824bd0d53b79310fb78d5467d8b1de7a Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 16:47:15 +0300 Subject: [PATCH 01/10] add proposal xxxx-copy-room-type-on-upgrade.md Signed-off-by: Aminda Suomalainen --- proposals/xxxx-copy-room-type-on-upgrade.md | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 proposals/xxxx-copy-room-type-on-upgrade.md diff --git a/proposals/xxxx-copy-room-type-on-upgrade.md b/proposals/xxxx-copy-room-type-on-upgrade.md new file mode 100644 index 00000000000..0365e7bcb29 --- /dev/null +++ b/proposals/xxxx-copy-room-type-on-upgrade.md @@ -0,0 +1,36 @@ +# MSCXXXX: Copy room type on upgrade. + +There can never be enough templates in the world, and MSCs shouldn't be any different. The level +of detail expected of proposals can be unclear - this is what this example proposal (which doubles +as a template itself) aims to resolve. + +Unless the room upgrade API specifies that room type must be copied over, clients cannot rely on +rooms staying the same type leading to trouble. + + +## Proposal + +This MSC proposes that the room upgade API MUST copy the room type over to the new room. Otherwise +clients cannot trust that to happen and Spaces or MSC3588 Story rooms may incorrectly become normal +rooms breaking user-experience. + + +## Potential issues + +Non-applicable. + +## Alternatives + +Non-applicable. + +## Security considerations + +Non-applicable. + +## Unstable prefix + +Non-applicable. + +## Dependencies + +Non-applicable. From 4cd1d73b343d5a9c92b53a447a7c5e0d6d922289 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 16:52:36 +0300 Subject: [PATCH 02/10] MSC 3818: add MSC number Signed-off-by: Aminda Suomalainen --- ...oom-type-on-upgrade.md => 3818-copy-room-type-on-upgrade.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename proposals/{xxxx-copy-room-type-on-upgrade.md => 3818-copy-room-type-on-upgrade.md} (95%) diff --git a/proposals/xxxx-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md similarity index 95% rename from proposals/xxxx-copy-room-type-on-upgrade.md rename to proposals/3818-copy-room-type-on-upgrade.md index 0365e7bcb29..8e01f77ea11 100644 --- a/proposals/xxxx-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -1,4 +1,4 @@ -# MSCXXXX: Copy room type on upgrade. +# MSC3818: Copy room type on upgrade There can never be enough templates in the world, and MSCs shouldn't be any different. The level of detail expected of proposals can be unclear - this is what this example proposal (which doubles From ffb42744dce58260ca8b01790dd8b2373252b432 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 16:54:23 +0300 Subject: [PATCH 03/10] msc3818: remove template text from beginning Signed-off-by: Aminda Suomalainen --- proposals/3818-copy-room-type-on-upgrade.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index 8e01f77ea11..71e02852bcb 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -1,9 +1,5 @@ # MSC3818: Copy room type on upgrade -There can never be enough templates in the world, and MSCs shouldn't be any different. The level -of detail expected of proposals can be unclear - this is what this example proposal (which doubles -as a template itself) aims to resolve. - Unless the room upgrade API specifies that room type must be copied over, clients cannot rely on rooms staying the same type leading to trouble. From 0b8d03757555d5abc7eae685d40df585ce10c9c6 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 17:36:44 +0300 Subject: [PATCH 04/10] 3818-copy-room-type-on-upgrade: refer to the current version of spec and what to change Signed-off-by: Aminda Suomalainen --- proposals/3818-copy-room-type-on-upgrade.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index 71e02852bcb..fd344f7f310 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -10,6 +10,15 @@ This MSC proposes that the room upgade API MUST copy the room type over to the n clients cannot trust that to happen and Spaces or MSC3588 Story rooms may incorrectly become normal rooms breaking user-experience. +The Spec currently specfies this in [section 11.32.3. server behaviour](https://spec.matrix.org/v1.2/client-server-api/#server-behaviour-16): + +> 2. Creates a replacement room with a `m.room.create` event containing a `predecessor` field and the applicable `room_version`. + +It becomes: + +> 2. Creates a replacement room with a `m.room.create` event containing a `predecessor` field, a +> `type` field if it was set in the previous room, and the applicable `room_version`. + ## Potential issues From 594d9a1aa802d0f68501d99b55478ab802062e4b Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 17:45:08 +0300 Subject: [PATCH 05/10] Update proposals/3818-copy-room-type-on-upgrade.md Signed-off-by: Aminda Suomalainen Co-authored-by: Andy Balaam --- proposals/3818-copy-room-type-on-upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index fd344f7f310..32062609145 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -17,7 +17,7 @@ The Spec currently specfies this in [section 11.32.3. server behaviour](https:// It becomes: > 2. Creates a replacement room with a `m.room.create` event containing a `predecessor` field, a -> `type` field if it was set in the previous room, and the applicable `room_version`. +> `type` field set to what it was in the previous room (if it was set), and the applicable `room_version`. ## Potential issues From d6ae0bbeed380046d681b25106e2d13a9a362b01 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 18:18:08 +0300 Subject: [PATCH 06/10] Update proposals/3818-copy-room-type-on-upgrade.md Signed-off-by: Aminda Suomalainen Co-authored-by: Patrick Cloke --- proposals/3818-copy-room-type-on-upgrade.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index 32062609145..8b0d1b39115 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -6,9 +6,10 @@ rooms staying the same type leading to trouble. ## Proposal -This MSC proposes that the room upgade API MUST copy the room type over to the new room. Otherwise -clients cannot trust that to happen and Spaces or MSC3588 Story rooms may incorrectly become normal -rooms breaking user-experience. +This MSC proposes that the room upgade API MUST copy the [room type](https://spec.matrix.org/latest/client-server-api/#types) +over to the new room. Otherwise clients cannot trust that to happen and [Spaces](https://spec.matrix.org/latest/client-server-api/#spaces) +or [MSC3588](https://github.com/matrix-org/matrix-doc/pull/3588) Story rooms may incorrectly become +normal rooms breaking user-experience. The Spec currently specfies this in [section 11.32.3. server behaviour](https://spec.matrix.org/v1.2/client-server-api/#server-behaviour-16): From d85ba65b7ffc22fe7c188c116b07d0c8e77b31d4 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 18:19:05 +0300 Subject: [PATCH 07/10] 3818-copy-room-type-on-upgrade.md: specify v1.2 in links Signed-off-by: Aminda Suomalainen --- proposals/3818-copy-room-type-on-upgrade.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index 8b0d1b39115..dca54b7395d 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -6,8 +6,8 @@ rooms staying the same type leading to trouble. ## Proposal -This MSC proposes that the room upgade API MUST copy the [room type](https://spec.matrix.org/latest/client-server-api/#types) -over to the new room. Otherwise clients cannot trust that to happen and [Spaces](https://spec.matrix.org/latest/client-server-api/#spaces) +This MSC proposes that the room upgade API MUST copy the [room type](https://spec.matrix.org/v1.2/client-server-api/#types) +over to the new room. Otherwise clients cannot trust that to happen and [Spaces](https://spec.matrix.org/v1.2/client-server-api/#spaces) or [MSC3588](https://github.com/matrix-org/matrix-doc/pull/3588) Story rooms may incorrectly become normal rooms breaking user-experience. From 2598da2832272c98779efda17faf63414e9c31d9 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Wed, 18 May 2022 18:36:40 +0300 Subject: [PATCH 08/10] 3818-copy-room-type-on-upgrade.md: correct link for MSC3588 Signed-off-by: Aminda Suomalainen --- proposals/3818-copy-room-type-on-upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index dca54b7395d..de451d7be40 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -8,7 +8,7 @@ rooms staying the same type leading to trouble. This MSC proposes that the room upgade API MUST copy the [room type](https://spec.matrix.org/v1.2/client-server-api/#types) over to the new room. Otherwise clients cannot trust that to happen and [Spaces](https://spec.matrix.org/v1.2/client-server-api/#spaces) -or [MSC3588](https://github.com/matrix-org/matrix-doc/pull/3588) Story rooms may incorrectly become +or [MSC3588](https://github.com/matrix-org/matrix-spec-proposals/pull/3588) Story rooms may incorrectly become normal rooms breaking user-experience. The Spec currently specfies this in [section 11.32.3. server behaviour](https://spec.matrix.org/v1.2/client-server-api/#server-behaviour-16): From b2b1889e8f774ea24af1ae26b7c2641db81d563e Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Thu, 19 May 2022 10:13:10 +0300 Subject: [PATCH 09/10] MSC3818: note potential issue when state events are needed --- proposals/3818-copy-room-type-on-upgrade.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index de451d7be40..525d7258746 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -23,7 +23,9 @@ It becomes: ## Potential issues -Non-applicable. +Some room types such as Spaces also require copying over state events as a part of the update progress, +in case of Spaces, `m.space.child` events. However as that can be changed later and done by the client, +it's out of scope for this MSC. ## Alternatives From 124285036352954abf191b468622ccce5e285338 Mon Sep 17 00:00:00 2001 From: Aminda Suomalainen Date: Thu, 19 May 2022 10:19:26 +0300 Subject: [PATCH 10/10] MSC3818: note an alternative of all room types needing an MSC --- proposals/3818-copy-room-type-on-upgrade.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/proposals/3818-copy-room-type-on-upgrade.md b/proposals/3818-copy-room-type-on-upgrade.md index 525d7258746..c0c2bd468c9 100644 --- a/proposals/3818-copy-room-type-on-upgrade.md +++ b/proposals/3818-copy-room-type-on-upgrade.md @@ -29,7 +29,11 @@ it's out of scope for this MSC. ## Alternatives -Non-applicable. +A suggested alternative is having every room type specify their own update process if they use other +room types. However this would complicate the MSC process with even simple client-side proposals +requiring also a server-side implementation. This could also result in room types dependent on a +particular server software or discourage using Matrix for a smaller project where an MSC wasn't +otherwise consider necessary. ## Security considerations