Description
@maxidor Rather than building a forked version of the Matrix spec with its own URL prefixes, workflow and governance process, please can we work together to improve the official spec directly - otherwise you risk confusing and fragmenting the spec process even further, as well as creating an artificial and unconstructive distinction between the community & the core team. There should be only one Matrix community, of which the core Matrix.org team happens to be a subset.
The intended model for contributing to the Matrix spec (expanded out from matrix-org/matrix-doc's CONTRIBUTING.rst) is:
- Write a draft of the proposed or missing content in Google Docs. We originally started off trying to use the /drafts folder in Github and PRing against it, but it ended up being disasterous - e.g. messes like Straw-man HTML messages proposal matrix-org/matrix-spec-proposals#92 and Attaching data to messages matrix-org/matrix-spec-proposals#93, as GH doesn't provide a sensible UI for viewing historical comments or tracking documentation (versus code) revisions or proposed changes. Since moving to Google Docs we haven't looked back, and it would be a huge backwards step to start doing PRs against markdown in /drafts again.
- Publicise & discuss the draft in #matrix-dev:matrix.org or perhaps #matrix-architecture:matrix.org (although matrix-architecture's signal-to-noise ratio doesn't seem to be great) to gather feedback from the community, including the core team. Actual concrete feedback and QA happens in comments on the googledocs.
- The doc is added to the shared spec drafts folder on Google Drive
- File an issue against matrix-org/matrix-doc to track the existence of the feature/fix proposed by draft and its overall progress
- Get some feedback from the community (which includes the core team) on the draft
- Implement the proposal to demonstrate if/how it works, using the /_matrix/$api/unstable API prefix, PRing them at least against one server or client implementation as appropriate.
- Once there's some consensus on the discussion on the draft and the implementation PRs are accepted and seen to work, submit a PR against matrix-org/matrix-doc.
- Folks with commit access to matrix-org/matrix-doc do a final review on the PR and merge it.
- At the next release of the spec, the /unstable API prefix gets released as a /rx.y.z API. (Yes, I know we are horrifically behind on releasing specs, but this should be improved in the near future once we manage to locate someone trusted to manage the review/merge/release process).
So far we have merged almost all PRs against matrix-org/matrix-doc, and the google-doc based review model has proved successful, so I do not understand why a separate process is needed here. The concerns I have are:
- The README for this repository proposes a new workflow which duplicates the existing one, without explaining the issues that it's trying to address. Instead, it would be better to surely improve the existing process rather than create a parallel system.
- It creates and encourages an artificial divide between the "community" and the "core team". This divide does not exist: there is only one Matrix community, and we should all be contributing to the same project rather than forking or fragmenting it.
- Creating a new URL prefix (/_evt-matrix) makes the existing URL prefix situation even more confusing, and is tantamount to fragmenting the standard - something we are desperately trying to avoid to do, to avoid an XMPP-like situation.
- It unilaterally proposes a new governance process (e.g. "Eventually Matrix will also provide a process for gaining community consensus to attempt to move these spec changes into the official matrix-org spec.") rather than working to improve the current one.
- It duplicates effort (in terms of spec management) and is going to make it even harder to track and avoid redundant/duplicated spec work.
Now, of course, there is nothing stopping you from forking and fragmenting the protocol, giving it your own namespace and creating your own variant. However, it should be pretty obvious that creating schisms in the project is very unlikely to be helpful, and I would implore you to try to understand and participate in and improve the existing workflow instead. (cc @non-Jedi).