@@ -262,7 +262,7 @@ is as follows:
262262 will warrant another MSC. Any minor, non-fundamental changes are
263263 allowed but ** must** be documented in the original proposal
264264 document. This ensures that someone reading a proposal in the future
265- doesn't assume old information wasn't merged into the spec.
265+ doesn't assume old information that wasn't merged into the spec.
266266 - Similar to the proposal PR, please sign off the spec PR as per
267267 the guidelines on
268268 [ CONTRIBUTING.rst] ( https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst ) .
@@ -391,13 +391,11 @@ release, implementations are required to use the following process to
391391ensure that the official Matrix namespace is not cluttered with
392392development or testing data.
393393
394- Note
395-
396- Unreleased implementations (including proofs-of-concept demonstrating
394+ ** Note:** Unreleased implementations (including proofs-of-concept demonstrating
397395that a particular MSC works) do not have to follow this process.
398396
3993971 . Have an idea for a feature.
400- 2 . Implement the feature using unstable endpoints, vendor prefixes, and
398+ 1 . Implement the feature using unstable endpoints, vendor prefixes, and
401399 unstable feature flags as appropriate.
402400 - When using unstable endpoints, they MUST include a vendor
403401 prefix. For example:
@@ -432,22 +430,25 @@ that a particular MSC works) do not have to follow this process.
432430 - If at any point after early release, the idea changes in a
433431 backwards-incompatible way, the feature flag should also change
434432 so that implementations can adapt as needed.
435- 3 . In parallel, or ahead of implementation, open an MSC and solicit
433+ 1 . In parallel, or ahead of implementation, open an MSC and solicit
436434 review per above.
437- 4 . Before FCP can be called, the Spec Core Team will require evidence
435+ 1 . Before FCP can be called, the Spec Core Team will require evidence
438436 of the MSC working as proposed. A typical example of this is an
439437 implementation of the MSC, though the implementation does not need
440438 to be shipped anywhere and can therefore avoid the
441439 forwards/backwards compatibility concerns mentioned here.
442- 5 . The FCP process is completed, and assuming nothing is flagged the
440+ 1 . The FCP process is completed, and assuming nothing is flagged the
443441 MSC lands.
444- 6 . A spec PR is written to incorporate the changes into Matrix.
445- 7 . A spec release happens.
446- 8 . Implementations switch to using stable prefixes (e.g.: ` /r0 ` ) if the
447- server supports the specification version released. If the server
448- doesn't advertise the specification version, but does have the
449- feature flag, unstable prefixes should still be used.
450- 9 . A transition period of about 2 months starts immediately after the
442+ 1 . Implementations can now switch to using stable prefixes
443+ (for example, for an endpoint, moving from
444+ ` /unstable/org.matrix.mscxxxx/frobnicate `
445+ to ` /v1/frobnicate ` ), assuming that the change
446+ is backwards compatible with older implementations. In the rare occasion
447+ where backwards compatibility is not possible without a new spec release,
448+ implementations should continue to use unstable prefixes.
449+ 1 . A spec PR is written to incorporate the changes into Matrix.
450+ 1 . A spec release happens.
451+ 1 . A transition period of about 2 months starts immediately after the
451452 spec release, before implementations start to encourage other
452453 implementations to switch to stable endpoints. For example, a server
453454 implementation should start asking client implementations to support
@@ -466,9 +467,9 @@ com.example/new/endpoint`.
466467
467468In summary:
468469
469- - Implementations MUST NOT use stable endpoints before the MSC is in
470- the spec. This includes NOT using stable endpoints in the period
471- between completion of FCP and release of the spec. passed .
470+ - Implementations MUST NOT use stable endpoints before the MSC has
471+ completed FCP. Once that has occurred, implementations are allowed
472+ to use stable endpoints, but are not required to .
472473- Implementations are able to ship features that are exposed to users
473474 by default before an MSC has been merged to the spec, provided they
474475 follow the process above.
0 commit comments