No description
Find a file
2017-10-17 16:34:50 +01:00
api Clarify what happens when there is no power_levels event 2017-10-17 16:34:50 +01:00
attic Consistently spell homeserver as homeserver 2015-12-02 19:23:33 +00:00
changelogs document joined_members and joined_rooms endpoints (#999) 2017-10-10 16:16:27 +01:00
drafts clarify ID rules 2017-09-26 15:13:15 +01:00
event-schemas Clarify what happens when there is no power_levels event 2017-10-17 16:34:50 +01:00
meta Link to doc style doc 2016-07-14 10:13:10 +01:00
scripts Simplify dump_swagger 2017-09-27 08:04:24 +01:00
specification fix inter-spec link 2017-10-15 23:42:05 +01:00
supporting-docs readd hangouts-bridge with right url 2017-10-15 23:33:19 +01:00
templating Clarify what happens when there is no power_levels event 2017-10-17 16:34:50 +01:00
.gitignore Move jekyll back out of matrix-doc again 2017-08-03 15:49:17 +01:00
CONTRIBUTING.rst Link to doc style doc 2016-07-14 10:13:10 +01:00
jenkins.sh Move jekyll back out of matrix-doc again 2017-08-03 15:49:17 +01:00
LICENSE Add a license to the spec 2016-07-12 17:28:30 +01:00
README.rst Update README.rst 2017-10-16 10:09:11 +01:00

This repository contains the documentation for Matrix.

Primarily, that means the Matrix protocol specifcation, but this repo also
comtains a lot of supporting documents, including some introductions to Matrix,
and, notably, a list of projects using Matrix which is visible on the
`matrix.org website <https://matrix.org/docs/projects/try-matrix-now.html>`_.

Issue tracking
==============

Issues with the Matrix specification and supporting documentation are tracked
in `GitHub <https://github.com/matrix-org/matrix-doc/issues>`_.

The following labels are used to help categorize issues:

`spec-omission <https://github.com/matrix-org/matrix-doc/labels/spec-omission>`_
--------------------------------------------------------------------------------

Things which have been implemented but not currently specified. These may range
from entire API endpoints, to particular options or return parameters.

Issues with this label will have been implemented in `Synapse
<https://github.com/matrix-org/synapse>`_. Normally there will be a design
document in Google Docs or similar which describes the feature.

Examples:

* `Spec PUT /directory/list <https://github.com/matrix-org/matrix-doc/issues/417>`_
* `Unspec'd server_name request param for /join/{roomIdOrAlias}
  <https://github.com/matrix-org/matrix-doc/issues/904>`_

`clarification <https://github.com/matrix-org/matrix-doc/labels/clarification>`_
--------------------------------------------------------------------------------

An area where the spec could do with being more explicit.

Examples:

* `Spec the implicit limit on /syncs
  <https://github.com/matrix-org/matrix-doc/issues/708>`_

* `Clarify the meaning of the currently_active flags in presence events
  <https://github.com/matrix-org/matrix-doc/issues/686>`_

`bug <https://github.com/matrix-org/matrix-doc/labels/bug>`_
------------------------------------------------------------

Something which is in the spec, but is wrong.

Note: this is *not* for things that are badly designed or don't work well
(for which see 'improvement' or 'feature') - it is for places where the
spec doesn't match reality.

Examples:

* `swagger is wrong for directory PUT
  <https://github.com/matrix-org/matrix-doc/issues/933>`_

* `receipts section still refers to initialSync
  <https://github.com/matrix-org/matrix-doc/issues/695>`_

`improvement <https://github.com/matrix-org/matrix-doc/labels/improvement>`_
----------------------------------------------------------------------------

A suggestion for a relaatively simple improvement to the protocol.

Examples:

* `We need a 'remove 3PID' API so that users can remove mappings
  <https://github.com/matrix-org/matrix-doc/issues/620>`_
* `We should mandate that /publicRooms requires an access_token
  <https://github.com/matrix-org/matrix-doc/issues/612>`_

`feature <https://github.com/matrix-org/matrix-doc/labels/feature>`_
--------------------------------------------------------------------

A suggestion for a significant extension to the matrix protocol which
needs considerable consideration before implementation.

Examples:

* `Peer-to-peer Matrix <https://github.com/matrix-org/matrix-doc/issues/710>`_
* `Specify a means for clients to "edit" previous messages
  <https://github.com/matrix-org/matrix-doc/issues/682>`_

`projects <https://github.com/matrix-org/matrix-doc/labels/projects>`_
----------------------------------------------------------------------

A project which needs adding to the 'Try Matrix Now' page.

Examples:

* `add https://gitlab.com/uhoreg/matrix-appservice-prosody
  <https://github.com/matrix-org/matrix-doc/issues/1016>`_

* `add https://github.com/tavoda/matrix-java project
  <https://github.com/matrix-org/matrix-doc/issues/956>`_

`site <https://github.com/matrix-org/matrix-doc/labels/site>`_
--------------------------------------------------------------

Ideas for things to help document or sell matrix more generally.
(Probably these would be better filed under 
https://github.com/matrix-org/matrix.org, but they tend to end up here.)

Structure of this repository
============================

- ``api`` : `OpenAPI`_ (swagger) specifications for the the HTTP APIs.
- ``attic``: historical sections of specification for reference
  purposes.
- ``changelogs``: change logs for the various parts of the
  specification.
- ``drafts``: Previously, contained documents which were under discussion for
  future incusion into the specification and/or supporting documentation. This
  is now historical, as we use separate discussion documents (see
  `<CONTRIBUTING.rst>`_).
- ``event-schemas``: the `JSON Schema`_ for all Matrix events
  contained in the specification, along with example JSON files.
- ``meta``: documents outlining the processes involved when writing
  documents, e.g. documentation style, guidelines.
- ``scripts``: scripts to generate formatted versions of the
  documentation, typically HTML.
- ``specification``: the specification split up into sections.
- ``supporting-docs``: additional documents which explain design
  decisions, examples, use cases, etc.
- ``templating``: the templates and templating system used to
  generate the spec.

.. _OpenAPI: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md
.. _JSON Schema: http://json-schema.org/

Contributing
============

If you want to ask more about the specification, join us on
`#matrix-dev:matrix.org <http://matrix.to/#/#matrix-dev:matrix.org>`_.

If you would like to contribute to the specification or supporting
documentation, see `<CONTRIBUTING.rst>`_.