-
Notifications
You must be signed in to change notification settings - Fork 385
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
Fully specify room versions #3432
Conversation
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've not done a complete review, but this certainly looks like the right direction imho - thank you very much @turt2live for putting the work in to improve this!
fe21c16
to
8dbbf94
Compare
@richvdh redactions should be differently clear now. The rendered spec is probably better to review than the code side, given all the templating and such. |
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally, I'm a big fan of this change. I have nitpicking about exactly how we arrange the words, but everything here is a big improvement.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Fixes #3153
Builds on top of #3423(merged)Builds on top of #3425(merged)The general approach taken for this is to reuse as much as possible when the text would be duplicated beyond trivial copy/paste. For example, v1's state resolution algorithm is left as-is in
v1.md
, but v2's state res algorithm is split out to a "fragment" because more than 2 room versions will be making reference to it.Some things somewhat arbitrarily did (or didn't) get converted into fragments depending on how annoying it was to make it a fragment. An example of this is the auth rule changes in v6 and v7: while a lot of the text could be broken out to fragments, it's actually easier to just copy/paste the whole thing and manually make edits. Other room versions won't be making use of the algorithms as defined, so it's not worth breaking out to a fragment as a whole either. v3's auth rules got carried over up until v5 however, so it got split out.
Additionally, every room version now has an "Unchanged from vPrev" heading so readers can easily see what the whole room version looks like. I've tried to keep the heading order roughly the same between room versions, and deliberately put the client-facing redactions algorithm last so client authors can avoid the server-side stuff as much as possible (didn't even want the possibility for them to scroll down into server stuff and become confused).
This is probably best reviewed from a rendered version of the spec, if you can dig out a link from our CI (sorry).
Preview: https://pr3432--matrix-org-previews.netlify.app