@@ -245,10 +245,13 @@ is as follows:
245245 75% of the members of the Spec Core Team agree on its outcome, and
246246 all existing concerns have been resolved.
247247- The FCP will then begin and last for 5 days, giving anyone else some
248- time to speak up before it concludes. On its conclusion, the
249- disposition of the FCP will be carried out. If sufficient reasoning
250- against the disposition is raised, the FCP can be cancelled and the
251- MSC will continue to evolve accordingly.
248+ time to speak up before it concludes. If sufficient reasoning
249+ against the disposition is provided, a member of the Spec Core Team can
250+ raise a concern and block FCP from completing. This will not reset or
251+ pause the 5 day FCP timer, but FCP will not conclude until all concerns have
252+ been resolved. If sufficient change in the MSC is required to resolve those
253+ concerns, FCP might be cancelled and reproposed. Once FCP has concluded,
254+ the disposition of the FCP will be carried out.
252255- Once the proposal has been accepted and merged, it is time to submit
253256 the actual change to the Specification that your proposal reasoned
254257 about. This is known as a spec PR. However in order for the spec PR
@@ -259,7 +262,7 @@ is as follows:
259262 will warrant another MSC. Any minor, non-fundamental changes are
260263 allowed but ** must** be documented in the original proposal
261264 document. This ensures that someone reading a proposal in the future
262- doesn't assume old information wasn't merged into the spec.
265+ doesn't assume old information that wasn't merged into the spec.
263266 - Similar to the proposal PR, please sign off the spec PR as per
264267 the guidelines on
265268 [ CONTRIBUTING.rst] ( https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst ) .
@@ -373,7 +376,7 @@ be merged without the Spec Core Team focusing on them specifically.
373376
374377## Implementing a proposal
375378
376- As part of the proposal process the spec core team will require evidence
379+ As part of the proposal process the Spec Core Team will require evidence
377380of the MSC working in order for it to move into FCP. This can usually be
378381a branch/pull request to whichever implementation of choice that proves
379382the MSC works in practice, though in some cases the MSC itself will be
@@ -388,13 +391,11 @@ release, implementations are required to use the following process to
388391ensure that the official Matrix namespace is not cluttered with
389392development or testing data.
390393
391- Note
392-
393- Unreleased implementations (including proofs-of-concept demonstrating
394+ ** Note:** Unreleased implementations (including proofs-of-concept demonstrating
394395that a particular MSC works) do not have to follow this process.
395396
3963971 . Have an idea for a feature.
397- 2 . Implement the feature using unstable endpoints, vendor prefixes, and
398+ 1 . Implement the feature using unstable endpoints, vendor prefixes, and
398399 unstable feature flags as appropriate.
399400 - When using unstable endpoints, they MUST include a vendor
400401 prefix. For example:
@@ -429,22 +430,25 @@ that a particular MSC works) do not have to follow this process.
429430 - If at any point after early release, the idea changes in a
430431 backwards-incompatible way, the feature flag should also change
431432 so that implementations can adapt as needed.
432- 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
433434 review per above.
434- 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
435436 of the MSC working as proposed. A typical example of this is an
436437 implementation of the MSC, though the implementation does not need
437438 to be shipped anywhere and can therefore avoid the
438439 forwards/backwards compatibility concerns mentioned here.
439- 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
440441 MSC lands.
441- 6 . A spec PR is written to incorporate the changes into Matrix.
442- 7 . A spec release happens.
443- 8 . Implementations switch to using stable prefixes (e.g.: ` /r0 ` ) if the
444- server supports the specification version released. If the server
445- doesn't advertise the specification version, but does have the
446- feature flag, unstable prefixes should still be used.
447- 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
448452 spec release, before implementations start to encourage other
449453 implementations to switch to stable endpoints. For example, a server
450454 implementation should start asking client implementations to support
@@ -463,9 +467,9 @@ com.example/new/endpoint`.
463467
464468In summary:
465469
466- - Implementations MUST NOT use stable endpoints before the MSC is in
467- the spec. This includes NOT using stable endpoints in the period
468- 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 .
469473- Implementations are able to ship features that are exposed to users
470474 by default before an MSC has been merged to the spec, provided they
471475 follow the process above.
0 commit comments