Merge remote-tracking branch 'matrix-org/master' into travis/c2s/clarify-html-again
commit
2d18b0d2d8
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright 2018 New Vector Ltd
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
homeserverAccessToken:
|
||||||
|
type: apiKey
|
||||||
|
description: The ``hs_token`` provided by the application service's registration.
|
||||||
|
name: access_token
|
||||||
|
in: query
|
||||||
@ -0,0 +1 @@
|
|||||||
|
!.gitignore
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
[tool.towncrier]
|
||||||
|
filename = "../application_service.rst"
|
||||||
|
directory = "newsfragments"
|
||||||
|
issue_format = "`#{issue} <https://github.com/matrix-org/matrix-doc/issues/{issue}>`_"
|
||||||
|
title_format = "{version}"
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "breaking"
|
||||||
|
name = "Breaking Changes"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "deprecation"
|
||||||
|
name = "Deprecations"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "new"
|
||||||
|
name = "New Endpoints"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "feature"
|
||||||
|
name = "Backwards Compatible Changes"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "clarification"
|
||||||
|
name = "Spec Clarifications"
|
||||||
|
showcontent = true
|
||||||
@ -0,0 +1 @@
|
|||||||
|
Specify how to control the power level required for ``@room``
|
||||||
@ -0,0 +1 @@
|
|||||||
|
Share room decryption keys between devices
|
||||||
@ -0,0 +1 @@
|
|||||||
|
Document the 403 error for sending state events.
|
||||||
@ -0,0 +1 @@
|
|||||||
|
specify how to handle multiple olm sessions with the same device
|
||||||
@ -0,0 +1 @@
|
|||||||
|
Add more presence options to the ``set_presence`` parameter of ``/sync``. (Thanks @mujx!)
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
r0.1.0
|
||||||
|
======
|
||||||
|
|
||||||
|
The first release of the Push Gateway specification. This release contains
|
||||||
|
a single endpoint, ``/notify``, that pushers may use to send push notifications
|
||||||
|
to clients.
|
||||||
@ -0,0 +1 @@
|
|||||||
|
!.gitignore
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
[tool.towncrier]
|
||||||
|
filename = "../push_gateway.rst"
|
||||||
|
directory = "newsfragments"
|
||||||
|
issue_format = "`#{issue} <https://github.com/matrix-org/matrix-doc/issues/{issue}>`_"
|
||||||
|
title_format = "{version}"
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "breaking"
|
||||||
|
name = "Breaking Changes"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "deprecation"
|
||||||
|
name = "Deprecations"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "new"
|
||||||
|
name = "New Endpoints"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "feature"
|
||||||
|
name = "Backwards Compatible Changes"
|
||||||
|
showcontent = true
|
||||||
|
|
||||||
|
[[tool.towncrier.type]]
|
||||||
|
directory = "clarification"
|
||||||
|
name = "Spec Clarifications"
|
||||||
|
showcontent = true
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"algorithm": "m.megolm.v1.aes-sha2",
|
||||||
|
"room_id": "!Cuyf34gef24t:localhost",
|
||||||
|
"session_id": "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ",
|
||||||
|
"session_key": "AgAAAADxKHa9uFxcXzwYoNueL5Xqi69IkD4sni8Llf...",
|
||||||
|
"sender_key": "RF3s+E7RkTQTGF2d8Deol0FkQvgII2aJDf3/Jp5mxVU",
|
||||||
|
"sender_claimed_ed25519_key": "aj40p+aw64yPIdsxoog8jhPu9i7l7NcFRecuOQblE3Y",
|
||||||
|
"forwarding_curve25519_key_chain": [
|
||||||
|
"hPQNcabIABgGnx3/ACv/jmMmiQHoeFfuLB17tzWp6Hw"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"type": "m.forwarded_room_key"
|
||||||
|
}
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"action": "cancel_request",
|
||||||
|
"requesting_device_id": "RJYKSTBOIE",
|
||||||
|
"request_id": "1495474790150.19"
|
||||||
|
},
|
||||||
|
"type": "m.room_key_request"
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"body": {
|
||||||
|
"algorithm": "m.megolm.v1.aes-sha2",
|
||||||
|
"room_id": "!Cuyf34gef24t:localhost",
|
||||||
|
"session_id": "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ",
|
||||||
|
"sender_key": "RF3s+E7RkTQTGF2d8Deol0FkQvgII2aJDf3/Jp5mxVU"
|
||||||
|
},
|
||||||
|
"action": "request",
|
||||||
|
"requesting_device_id": "RJYKSTBOIE",
|
||||||
|
"request_id": "1495474790150.19"
|
||||||
|
},
|
||||||
|
"type": "m.room_key_request"
|
||||||
|
}
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/event.yaml
|
||||||
|
|
||||||
|
description: |-
|
||||||
|
This event type is used to forward keys for end-to-end encryption. Typically
|
||||||
|
it is encrypted as an ``m.room.encrypted`` event, then sent as a `to-device`_
|
||||||
|
event.
|
||||||
|
properties:
|
||||||
|
content:
|
||||||
|
properties:
|
||||||
|
algorithm:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
The encryption algorithm the key in this event is to be used with.
|
||||||
|
room_id:
|
||||||
|
type: string
|
||||||
|
description: The room where the key is used.
|
||||||
|
sender_key:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
The Curve25519 key of the device which initiated the session originally.
|
||||||
|
session_id:
|
||||||
|
type: string
|
||||||
|
description: The ID of the session that the key is for.
|
||||||
|
session_key:
|
||||||
|
type: string
|
||||||
|
description: The key to be exchanged.
|
||||||
|
sender_claimed_ed25519_key:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
The Ed25519 key of the device which initiated the session originally.
|
||||||
|
It is 'claimed' because the receiving device has no way to tell that the
|
||||||
|
original room_key actually came from a device which owns the private part of
|
||||||
|
this key unless they have done device verification.
|
||||||
|
forwarding_curve25519_key_chain:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
Chain of Curve25519 keys. It starts out empty, but each time the
|
||||||
|
key is forwarded to another device, the previous sender in the chain is added
|
||||||
|
to the end of the list. For example, if the key is forwarded from A to B to
|
||||||
|
C, this field is empty between A and B, and contains A's Curve25519 key between
|
||||||
|
B and C.
|
||||||
|
required:
|
||||||
|
- algorithm
|
||||||
|
- room_id
|
||||||
|
- session_id
|
||||||
|
- session_key
|
||||||
|
- sender_claimed_ed25519_key
|
||||||
|
- forwarding_curve25519_key_chain
|
||||||
|
- sender_key
|
||||||
|
type: object
|
||||||
|
type:
|
||||||
|
enum:
|
||||||
|
- m.forwarded_room_key
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/event.yaml
|
||||||
|
|
||||||
|
description: |-
|
||||||
|
This event type is used to request keys for end-to-end encryption. It is sent as an
|
||||||
|
unencrypted `to-device`_ event.
|
||||||
|
properties:
|
||||||
|
content:
|
||||||
|
properties:
|
||||||
|
body:
|
||||||
|
description: |-
|
||||||
|
Information about the requested key. Required when ``action`` is
|
||||||
|
``request``.
|
||||||
|
properties:
|
||||||
|
algorithm:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
The encryption algorithm the requested key in this event is to be used
|
||||||
|
with.
|
||||||
|
room_id:
|
||||||
|
type: string
|
||||||
|
description: The room where the key is used.
|
||||||
|
sender_key:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
The Curve25519 key of the device which initiated the session originally.
|
||||||
|
session_id:
|
||||||
|
type: string
|
||||||
|
description: The ID of the session that the key is for.
|
||||||
|
required:
|
||||||
|
- algorithm
|
||||||
|
- room_id
|
||||||
|
- session_id
|
||||||
|
- sender_key
|
||||||
|
type: object
|
||||||
|
title: RequestedKeyInfo
|
||||||
|
action:
|
||||||
|
enum:
|
||||||
|
- request
|
||||||
|
- cancel_request
|
||||||
|
type: string
|
||||||
|
requesting_device_id:
|
||||||
|
description: ID of the device requesting the key.
|
||||||
|
type: string
|
||||||
|
request_id:
|
||||||
|
description: |-
|
||||||
|
A random string uniquely identifying the request for a key. If the key is
|
||||||
|
requested multiple times, it should be reused. It should also reused in order
|
||||||
|
to cancel a request.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- action
|
||||||
|
- requesting_device_id
|
||||||
|
- request_id
|
||||||
|
type: object
|
||||||
|
type:
|
||||||
|
enum:
|
||||||
|
- m.room_key_request
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
# How to release a specification
|
||||||
|
|
||||||
|
There are several specifications that belong to matrix, such as the client-server
|
||||||
|
specification, server-server specification, and identity server specification. Each
|
||||||
|
of these gets released independently of each other with their own version numbers.
|
||||||
|
|
||||||
|
Once a specification is ready for release, a branch should be created to track the
|
||||||
|
changes in and to hold potential future hotfixes. This should be the name of the
|
||||||
|
specification (as it appears in the directory structure of this project) followed
|
||||||
|
by "release-" and the release version. For example, if the Client-Server Specification
|
||||||
|
was getting an r0.4.0 release, the branch name would be `client_server/release-r0.4.0`.
|
||||||
|
|
||||||
|
*Note*: Historical releases prior to this process may or may not have an appropriate
|
||||||
|
release branch. Releases after this document came into place will have an appropriate
|
||||||
|
branch.
|
||||||
|
|
||||||
|
The remainder of the process is as follows:
|
||||||
|
1. Activate your Python 3 virtual environment.
|
||||||
|
1. Having checked out the new release branch, navigate your way over to `./changelogs`.
|
||||||
|
1. Follow the release instructions provided in the README.md located there.
|
||||||
|
1. Update the changelog section of the specification you're releasing to make a reference
|
||||||
|
to the new version.
|
||||||
|
1. Update any version/link references across all specifications.
|
||||||
|
1. Ensure the `targets.yml` file lists the version correctly.
|
||||||
|
1. Commit the changes and PR them to master.
|
||||||
|
1. Tag the release with the format `client_server/r0.4.0`.
|
||||||
|
1. Add the changes to the matrix-org/matrix.org repository (for historic tracking).
|
||||||
|
* This is done by making a PR to the `unstyled_docs/spec` folder for the version and
|
||||||
|
specification you're releasing.
|
||||||
|
* Don't forget to symlink the new release as `latest`.
|
||||||
|
1. Perform a release on GitHub to tag the release.
|
||||||
|
1. Yell from the mountaintop to the world about the new release.
|
||||||
|
|
||||||
|
### Creating a release for a brand-new specification
|
||||||
|
|
||||||
|
Some specifications may not have ever had a release, and therefore need a bit more work
|
||||||
|
to become ready.
|
||||||
|
|
||||||
|
1. Activate your Python 3 virtual environment.
|
||||||
|
1. Having checked out the new release branch, navigate your way over to `./changelogs`.
|
||||||
|
1. Follow the "new changelog" instructions provided in the README.md located there.
|
||||||
|
1. Open the specification RST file and make some changes:
|
||||||
|
* Using a released specification as a template, update the changelog section.
|
||||||
|
* Use the appropriate changelog variable in the RST.
|
||||||
|
1. Create/define the appropriate variables in `gendoc.py`.
|
||||||
|
1. Update `targets.yml`.
|
||||||
|
1. Update any version/link references across all specifications.
|
||||||
|
1. Follow the regular release process.
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
# Copyright 2018 New Vector Ltd
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
type: object
|
||||||
|
example: {
|
||||||
|
"example.com": {
|
||||||
|
"ed25519:0": "these86bytesofbase64signaturecoveressentialfieldsincludinghashessocancheckredactedpdus"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
title: Server Signatures
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
Loading…
Reference in New Issue