Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC1804: Advertising capable room versions to clients #1804

Merged
merged 5 commits into from
Jan 31, 2019

Conversation

turt2live
Copy link
Member

@turt2live turt2live commented Jan 17, 2019

Rendered

Note: this is effectively blocked on room versions landing in the spec to ease understanding. Please read the spec PR for room versions before this one, otherwise things might not make any sense.

@turt2live turt2live added proposal-in-review proposal A matrix spec change proposal labels Jan 17, 2019
@ara4n
Copy link
Member

ara4n commented Jan 17, 2019

this looks plausible to me fwiw

turt2live added a commit to matrix-org/matrix-js-sdk that referenced this pull request Jan 17, 2019
We'll still need something like matrix-org/matrix-spec-proposals#1804 to make this work correctly, but this fixes the immediate issue in element-hq/element-web#8154
Copy link
Contributor

@Half-Shot Half-Shot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having been persuaded by @turt2live, this looks like a good way to represent room versions supported by the server and works nicely with MSC1753. One minor comment about the proposal.

proposals/1804-advertising-capable-room-versions.md Outdated Show resolved Hide resolved
@richvdh richvdh self-requested a review January 18, 2019 09:09
Copy link
Member

@richvdh richvdh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'm going to reserve further judgement on this pending my comments on #1773.

@turt2live turt2live added the blocked Something needs to be done before action can be taken on this PR/issue. label Jan 18, 2019
@turt2live
Copy link
Member Author

To be abundantly clear: this is blocked on #1773

This proposal probably won't progress much until 1773 lands.

@turt2live turt2live removed the blocked Something needs to be done before action can be taken on this PR/issue. label Jan 24, 2019
@neilisfragile neilisfragile added r0 P1 and removed r0 P2 labels Jan 24, 2019
@turt2live
Copy link
Member Author

Now that #1773 has landed and this is updated to support it, I think it's safe to start the process for an FCP.

@mscbot fcp merge

@mscbot
Copy link
Collaborator

mscbot commented Jan 24, 2019

Team member @turt2live has proposed to merge this. The next step is review by the rest of the tagged people:

No concerns currently listed.

Once a majority of reviewers approve (and none object), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

@mscbot mscbot added proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. disposition-merge labels Jan 24, 2019
Copy link
Contributor

@Half-Shot Half-Shot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve of the new format 1000%

@ara4n
Copy link
Member

ara4n commented Jan 24, 2019

it still feels very strange to me that we do not distinguish old versions (eg v1) from future experimental versions. if nothing else i’d expect clients to show completely different messages: “this is on an old vulnerable room version and must be upgraded” versus “this room is on a new unstable version and may not work reliably”.

@turt2live
Copy link
Member Author

It's impossible for the server to make that distinction now without opening up the room versions can of worms again, which I'm not going to be happy to do at this stage.

The way the spec is worded for unstable vs stable does make it possible for clients to still show different messages if it wants, although they won't be exactly to your wording. A room on a stable but not default version might receive a prompt saying that the room is probably fine, but should really be on the default version. Under this proposal, clients would effectively have to consider unstable as vulnerable, broken, unsafe, or whatever other "please don't run this, at all, ever" wording that can be thought up.

@ara4n
Copy link
Member

ara4n commented Jan 25, 2019

grr, fatfingered

@ara4n ara4n added proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. disposition-merge labels Jan 25, 2019
@ara4n
Copy link
Member

ara4n commented Jan 25, 2019

Under this proposal, clients would effectively have to consider unstable as vulnerable, broken, unsafe, or whatever other "please don't run this, at all, ever" wording that can be thought up.

this feels incredibly anaemic and limited to me, and is going to result in awful client UX where clients have to say “uh, you’re on some kind of funny room version. do you want to switch it to the default?”, rather than “you are on a known vulnerable room version; upgrade now!” or “btw this room uses an experimental room version”. Surely it’s going to perpetrate the problem of the “vuln room warning!!” appearing everywhere - even when you upgrade to vN+1 as we have been doing over the last few weeks?

However, given additional labels can be easily added in future, and how opinionated the inputs have ended up being here, i guess i’m okay for it to ship in this state albeit with the expectation that we’ll have to fix it down the line, and the argument will be clearer then.

@uhoreg
Copy link
Member

uhoreg commented Jan 25, 2019

However, given additional labels can be easily added in future, and how opinionated the inputs have ended up being here, i guess i’m okay for it to ship in this state albeit with the expectation that we’ll have to fix it down the line, and the argument will be clearer then.

Maybe we can say that any value other than "stable" should be considered to be unstable, allowing us to add more values in the future.

@turt2live
Copy link
Member Author

Maybe we can say that any value other than "stable" should be considered to be unstable, allowing us to add more values in the future.

I'll put this in as it mirrors what the spec's intention is. I thought I put it in here though :(

@erikjohnston
Copy link
Member

Registering M's concern:

@mscbot concern stable vs unstable ux

@ara4n
Copy link
Member

ara4n commented Jan 25, 2019

this doesn’t fix my point that i believe that for clients to provide good UX, they need to know whether to tell admins that their room version is outdated and vulnerable and needs upgrading - as opposed to being on a beta version which isn’t yet correct (and indeed is counterproductive) to tell people to upgrade from.

it feels like in the excitement to fix the overlap between recommendedness and maturity, maturity got entirely thrown out, breaking this MSC.

@turt2live
Copy link
Member Author

Discussed this OOB to try and figure out the requirements a bit more. Clients would end up treating unspecced versions as unsafe (intended) as one route for ensuring that the ecosystem isn't fragmented with weird room versions all over the place. The downside being that development of these room versions could be tiring (although in a development environment, one controls how their version is represented anyhow).

@ara4n please correct me if I've missed anything or am wildly off point.

@turt2live
Copy link
Member Author

mscbot looks to have gotten stuck, so in an attempt to fix it I'm asking for another FCP and mirroring the checkboxes - maybe it'll work. Original FCP here: #1804 (comment)

@mscbot fcp merge

@mscbot
Copy link
Collaborator

mscbot commented Jan 25, 2019

Team member @turt2live has proposed to merge this. The next step is review by the rest of the tagged people:

No concerns currently listed.

Once a majority of reviewers approve (and none object), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

@mscbot mscbot added the final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. label Jan 25, 2019
@mscbot
Copy link
Collaborator

mscbot commented Jan 25, 2019

🔔 This is now entering its final comment period, as per the review above. 🔔

@mscbot mscbot removed the proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. label Jan 25, 2019
@mscbot
Copy link
Collaborator

mscbot commented Jan 31, 2019

The final comment period, with a disposition to merge, as per the review above, is now complete.

@mscbot mscbot removed the final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. label Jan 31, 2019
@turt2live turt2live merged commit 72a2871 into master Jan 31, 2019
@turt2live turt2live deleted the travis/msc/room-version-client-advertising branch January 31, 2019 00:06
turt2live added a commit that referenced this pull request Jan 31, 2019
Original proposals:
* #1753
* #1804

Implementation proof:
* matrix-org/synapse#4472
* matrix-org/matrix-js-sdk#830

There is one change to MSC1753 which is included in this commit. MSC1804 remains unchanged. In the original proposal, the change password capability being present was an indication that password changes were possible. It was found that this doesn't really communicate the state very well to clients in that lack of a capability (or a 404, etc) would mean that users would erroneously not be able to change their passwords. A simple boolean flag was added to assist clients in detecting this capability.
@turt2live turt2live added spec-pr-in-review A proposal which has been PR'd against the spec and is in review merged A proposal whose PR has merged into the spec! and removed finished-final-comment-period proposal-in-review spec-pr-in-review A proposal which has been PR'd against the spec and is in review labels Jan 31, 2019
@turt2live
Copy link
Member Author

Merged via #1829 🎉

@turt2live turt2live added the kind:maintenance MSC which clarifies/updates existing spec label Apr 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge kind:maintenance MSC which clarifies/updates existing spec merged A proposal whose PR has merged into the spec! proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants