You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matrix-spec-proposals/proposals/4304-room-version-12.md

4.0 KiB

MSC4304: Room Version 12

A new room version, 12, is proposed using room version 11 as a base and incorporating the following MSCs:

  • MSC4289 - Explicitly privilege room creators
  • MSC4291 - Room IDs as hashes of the create event
  • MSC4297 - State Resolution v2.1

Though not technically required, MSC4307: Validate auth_events are in the correct room is explicitly included in this room version as well.

Other MSCs are capable of being included in this version, but they do not have sufficient implementation, acceptance, and/or testing to be considered stable enough for v12 rooms. A future room version may still include them. Most notable are:

Room version 12 upon being added to the specification shall be considered stable. No other room versions are affected by this MSC.

Typically, an MSC like this one which cuts a room version release would not be encouraged to make that same room version the default for new rooms. Given the security context around the above MSCs however, this MSC does update the default room version to be v12 immediately. A wide variety of server implementations already exist at the time of publishing this MSC, and major clients have been tested for compatibility with the room version, though there are some noted incompatibilities expected.

As a result of those incompatibilities, servers are encouraged to exercise the "SHOULD" on the default room version applied by the spec and deviate in the early days/weeks of v12's rollout. Once their respective communities are better prepared, which may be a matter of days after publishing, servers SHOULD return back to the default in the spec.

Unstable prefix

Implementations looking to test v12 before written into the specification should use org.matrix.hydra.11 as the room version, treating it as unstable.

Prior art

Room version MSCs are meant to be lightweight and fit a standard process. In backwards chronological order, they are:

Room version 1 was the first room version, released formally in https://github.com/matrix-org/matrix-doc/pull/1773 (~r0.5.0, "Matrix 1.0", June 2019)