docs-matrix-spec/changelogs
Travis Ralston ccce6c196d Specify how capabilities work in the c2s API
Original proposals:
* https://github.com/matrix-org/matrix-doc/pull/1753
* https://github.com/matrix-org/matrix-doc/pull/1804

Implementation proof:
* https://github.com/matrix-org/synapse/pull/4472
* https://github.com/matrix-org/matrix-js-sdk/pull/830

There is one change to MSC1753 which is included in this commit. MSC1804 remains unchanged. In the original proposal, the change password capability being present was an indication that password changes were possible. It was found that this doesn't really communicate the state very well to clients in that lack of a capability (or a 404, etc) would mean that users would erroneously not be able to change their passwords. A simple boolean flag was added to assist clients in detecting this capability.
2019-01-30 19:43:55 -07:00
..
application_service Prepare the appservice spec for an r0 release 2018-08-27 18:04:08 -06:00
client_server Specify how capabilities work in the c2s API 2019-01-30 19:43:55 -07:00
identity_service It's actually an "identity server implementing the Identity Service API" 2018-08-31 15:35:32 -06:00
push_gateway r0.1.0 release of the Push Gateway specification 2018-08-16 11:50:18 -06:00
server_server Prepare the identity service and server-server APIs for r0 2018-08-24 17:19:25 -06:00
application_service.rst Appservice r0.1.0 changelog 2018-08-30 13:36:43 -06:00
client_server.rst Client-server r0.4.0 changelog 2018-08-31 16:45:41 -06:00
identity_service.rst Changelog for r0.1.0 IS spec 2018-08-31 16:21:51 -06:00
push_gateway.rst r0.1.0 release of the Push Gateway specification 2018-08-16 11:50:18 -06:00
README.md Don't let the newsfragments wink out of existence 2018-07-06 17:32:57 -06:00
server_server.rst Prepare the identity service and server-server APIs for r0 2018-08-24 17:19:25 -06:00

Changelogs

Towncrier is used to manage the changelog and keep it up to date. Because of this, updating a changelog is really easy.

How to update a changelog when releasing an API

  1. Ensure you're in your Python 3 virtual environment
  2. cd your way to the API you're releasing (eg: cd changelogs/client_server)
  3. Run towncrier --version "r0.4.0" --name "client-server" --yes substituting the variables as approprite. Note that --name is required although the value is ignored.
  4. Commit the changes and finish the release process.

How to prepare a changelog for a new API

For this example, we're going to pretend that the server_server API doesn't exist.

  1. Create the file changelogs/server_server.rst
  2. Create the folder changelogs/server_server
  3. In the new folder, create a pyproject.toml file with these contents:
    [tool.towncrier]
     filename = "../server_server.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
    
  4. Create a .gitignore in changelogs/server_server/newsfragments with the contents !.gitignore