|
|
|
@ -41,6 +41,37 @@ Examples of valid server names are:
|
|
|
|
|
* ``[1234:5678::abcd]:5678`` (IPv6 literal with explicit port)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Room Versions
|
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
Room versions are used to change properties of rooms that may not be compatible
|
|
|
|
|
with other servers. For example, changing the rules for event authorization would
|
|
|
|
|
cause older servers to potentially end up in a split-brain situation due to them
|
|
|
|
|
not understanding the new rules.
|
|
|
|
|
|
|
|
|
|
A room version is defined as a string of characters which MUST NOT exceed 32
|
|
|
|
|
codepoints in length. Room versions MUST NOT be empty and SHOULD contain only
|
|
|
|
|
the characters ``a-z``, ``0-9``, ``.``, and ``-``.
|
|
|
|
|
|
|
|
|
|
Room versions are not intended to be parsed and should be treated as opaque
|
|
|
|
|
identifiers. Room versions consisting only of the characters ``0-9`` and ``.``
|
|
|
|
|
are reserved for future versions of the Matrix protocol.
|
|
|
|
|
|
|
|
|
|
The complete grammar for a legal room version is::
|
|
|
|
|
|
|
|
|
|
room_version = 1*room_version_char
|
|
|
|
|
room_version_char = DIGIT
|
|
|
|
|
/ %x61-7A ; a-z
|
|
|
|
|
/ "-" / "."
|
|
|
|
|
|
|
|
|
|
Examples of valid room versions are:
|
|
|
|
|
|
|
|
|
|
* ``1`` (would be reserved by the Matrix protocol)
|
|
|
|
|
* ``1.2`` (would be reserved by the Matrix protocol)
|
|
|
|
|
* ``1.2-beta``
|
|
|
|
|
* ``com.example.version``
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Common Identifier Format
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|