-
Notifications
You must be signed in to change notification settings - Fork 370
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
Room v2 proposal #1759
Room v2 proposal #1759
Conversation
Given I hope this is uncontroversial, I'm going to straight up propose an FCP @mscbot fcp merge |
@mscbot fcp merge |
3rd time's the charm? @mscbot fcp merge |
Team member @turt2live has proposed to merge this. The next step is review by the rest of the tagged teams: 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. |
A note largely for my own reference: this will use the room versioning APIs specified in #1516. |
@mscbot reviewed |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
The final comment period, with a disposition to merge, as per the review above, is now complete. |
implemented in matrix-org/synapse#4307 |
The "Room Specification" (or "Room Version Specification") is the specification that defines which room versions do what and are intended to be documents which speak the truth about how rooms operate under the hood. The approach taken here is a bit different than other specifications. For starters, the specification is versioned in this project instead of relying on the matrix.org repository to track compiled HTML. This is done for a couple reasons, the first being we're still developing the v1 specification while concurrently making a v2 spec and the second being trying to reduce the reliance on matrix.org's repository for specifications. Because the room spec is built into versions, some changes needed to be made. The `targets.yaml` now has a special syntax for indicating what version something is at, and the changelog generator can handle rendering different versions of the same changelog (as parsed from the RST). Some additional work has been put in to the changelog parsing to allow us to reference the v1 room spec as "v1" without having to sacrifice clarity in the changelog headings. Finally, this moves the state resolution algorithms into the versioned spec as a result of MSC1759 (#1759). Note: this does not introduce the concept of versioned schemas (tabs) that I was previously working with. There's currently no use for them, so they are shelved elsewhere.
Merged via #1773 🎉 |
This MSC proposes adding a new room version to allow servers and users to opt into using the new state resolution algorithm. Given that this does not propose making the new room version the default, nor prompting users to upgrade existing rooms, I'm hoping that this should be relatively uncontroversial.
We do not propose to make this a new default as there are several other incompatible changes to rooms we wish to make, and so its probably best to wait for those to land before changing the default and prompting people to upgrade existing rooms.
This assumes that MSC #1693 lands.
Rendered