matrix-org / matrix-org/matrix-spec
Consider changing the point in the spec process when implementations are expected to follow the spec.
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
MSC matrix-org/matrix-spec-proposals#3589 generated some discussion about spec stabilisation.
Currently, per @turt2live;
Implementations are generally expected to implement [MSCs which passed FCP] before it is released in the spec, and indeed before we even specify it formally.
There are 4 steps a MSC goes through through its lifetime;
- MSC in-proposal, this is often called "unstable"
- MSC post-FCP, this is called "stable"
- Spec PR passed, i'll call this "formal"
- New matrix version released with MSC-specified feature/change, i'll call this "released"
Currently, community matrix projects are expected to have implemented the spec whenever it's marked "stable". However, as i note in a comment on above MSC, this is non-ideal, and puts a lot of pressure on community projects to scour and search MSC texts, unstable reference implementations, and author reasoning to piece together a "it must work this way" idea.
It is then expected that all implementations have either a. followed the tides and turns of the MSC, and already have a half-ready implementation to convert, or b. somehow have the energy and will to scramble together an implementation based off of the text of the MSC.
The hazard with the latter one is that this will make implementations often miss out on gotchas that the original MSC authors, SCT, and spec scribes know amongst themselves from resolving threads, but which the community must then discover for themselves.
Another problem with saying "it is done, it is stable" upon FCP, is that it burdens community projects with heavy social expectations of "oh you're not implementing X yet?", this gives heavy leeway to projects that the original authors came from, or the projects which can afford implementing these features in "double-time".
The whole idea of the matrix implementation is that there is a formal, single, spec. So i'm requesting here that the burden on community implementations to definitively implement something is shifted to after a spec PR has been passed and formalised, when the spec is "formal".
This would make the community feedback much more clear, and allows the period between stabilisation and formalisation to be a grace period for wide-spread implementation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with MSC matrix-org/matrix-spec-proposals#3589 and the linked discussion about spec stabilisation. Determine the agreed implementation expectation and the point at which it should change; done means the process decision is resolved and reflected in the applicable project guidance.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100