Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
375 commits
Select commit Hold shift + click to select a range
03c646d
Added translation using Weblate (Central Atlas Tamazight)
Apr 27, 2021
dd3c05a
Translated using Weblate (Central Atlas Tamazight)
Apr 27, 2021
9586d16
Merge branch 'origin/master' into Weblate.
weblate Apr 27, 2021
8588acb
Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas…
turt2live Apr 27, 2021
21221e6
Update i18n
turt2live Apr 27, 2021
17274a2
Added translation using Weblate (Hungarian)
szimszon Apr 27, 2021
10fcfda
Add information about using SSSS for cross-signing and key backup.
uhoreg Apr 27, 2021
bb3c0c0
add changelog
uhoreg Apr 27, 2021
1d98a74
Add spec for verification by QR codes.
uhoreg Apr 27, 2021
a39155f
Merge pull request #3147 from uhoreg/cross_signing_backup_ssss
uhoreg Apr 27, 2021
6338edc
add changelog
uhoreg Apr 28, 2021
9e4fbfc
Make SAS outline fit with key verification in DM flow.
uhoreg Apr 28, 2021
8cf2329
add changelog
uhoreg Apr 28, 2021
c7df373
Document Single SSSS.
uhoreg Apr 28, 2021
9852a0b
add changelog
uhoreg Apr 28, 2021
b6884c2
Update content/client-server-api/modules/end_to_end_encryption.md
uhoreg Apr 28, 2021
b67ff35
Merge pull request #3150 from uhoreg/verification_fixes
uhoreg Apr 28, 2021
06dc1ac
Merge pull request #3151 from uhoreg/single_ssss_spec
uhoreg Apr 28, 2021
dc8dd05
Apply suggestions from code review
uhoreg Apr 28, 2021
4f0825f
Merge pull request #3149 from uhoreg/qr_codes_spec
uhoreg Apr 28, 2021
c27a29b
Add knocking to the spec
turt2live Apr 29, 2021
97b11a6
Add changelogs
turt2live Apr 29, 2021
60b5930
Declare required properties correctly
turt2live Apr 29, 2021
cbe362f
Update data/api/server-server/knocks.yaml
turt2live Apr 29, 2021
509e056
Fix general wording
turt2live Apr 30, 2021
5278027
Add missing endpoint changelog
turt2live Apr 30, 2021
315f36c
Merge pull request #3154 from matrix-org/travis/spec/knock-knock-whos…
turt2live Apr 30, 2021
7e3f72a
Describe social-sign-on (multiple SSO providers)
turt2live May 1, 2021
a9a15fe
Add changelogs
turt2live May 1, 2021
fae88b8
Move brand registry out of structured data directory
turt2live May 1, 2021
13f7fb8
Spec device_id on whoami
turt2live May 2, 2021
1a9606b
Changelog
turt2live May 2, 2021
dd3fbab
Specify that email handling converts to lowercase first
turt2live May 2, 2021
c26227f
changelog
turt2live May 2, 2021
7458ce9
Downgrade identity server failure to FAIL_PROMPT instead of FAIL_ERROR
turt2live May 2, 2021
c66ad88
changelog
turt2live May 2, 2021
b4e1a81
Remove v1 identity service API
turt2live May 2, 2021
dfa717b
Changelog
turt2live May 2, 2021
740e76a
Merge branch 'master' into travis/spec/MSC2320-identity-versions
turt2live May 2, 2021
3dd6c84
Typo fixes
turt2live May 2, 2021
34c5d8e
Merge pull request #3169 from matrix-org/travis/spec/msc2284-is-optional
turt2live May 2, 2021
4271718
Spelling
turt2live May 3, 2021
e20735a
Merge pull request #3166 from matrix-org/travis/spec/msc2033-whoami-d…
turt2live May 3, 2021
2119b5e
Merge pull request #3167 from matrix-org/travis/spec/msc2265-lower-3pid
turt2live May 3, 2021
641d2ad
Apply suggestions from code review
turt2live May 3, 2021
e6245f6
Clarify provider naming
turt2live May 3, 2021
67b62cf
Clarify render approach
turt2live May 3, 2021
36b19fb
Clarify link.
clokep May 3, 2021
3d913b3
Add current proposals.
clokep May 3, 2021
ce86508
Wording.
clokep May 3, 2021
b6cba64
Update MSC number.
clokep May 3, 2021
1cfbf76
Wrapping.
clokep May 3, 2021
70d9deb
Apply suggestions from code review
turt2live May 4, 2021
ab0c773
Merge pull request #3163 from matrix-org/travis/spec/msc2858-multisso
turt2live May 4, 2021
a083846
Update data/api/identity/versions.yaml
turt2live May 4, 2021
f27b8e3
Merge pull request #3101 from matrix-org/travis/spec/MSC2320-identity…
turt2live May 4, 2021
69381cc
Case fold instead of lowercase
turt2live May 4, 2021
51e602b
Changelogs
turt2live May 4, 2021
abbf2d5
Remove group identifiers
turt2live May 4, 2021
4fc5487
Merge pull request #3170 from matrix-org/travis/spec/msc2713-rm-v1-id
turt2live May 4, 2021
a04d103
Update client_secret examples so that they are valid (#2985)
anoadragon453 May 5, 2021
15d22c4
Merge pull request #1772 from matrix-org/matthew/msc1772
turt2live May 5, 2021
6c4ee89
Merge pull request #3177 from matrix-org/travis/spec/spaces-groups-rm
turt2live May 5, 2021
a7b344d
Clarify what happens when a concern is raised during FCP (#3180)
anoadragon453 May 6, 2021
aeca4de
OpenAPI: fix tags of add3PID
lukaslihotzki May 6, 2021
8fa0cba
Translated using Weblate (Hungarian)
szimszon May 6, 2021
6db3885
Merge pull request #3122 from uhoreg/deprecate_verification_start
turt2live May 9, 2021
41fbc11
Merge pull request #3181 from lukaslihotzki/fix-add3pid-tag
turt2live May 10, 2021
31e444b
Mention expected client behaviour of unknown types on MSC1772
turt2live May 10, 2021
8594a01
Merge pull request #3185 from matrix-org/travis/clarify/1772
turt2live May 10, 2021
16241a7
Fix Typo
lukaslihotzki May 10, 2021
01bb971
Merge pull request #3186 from lukaslihotzki/fix-typo
turt2live May 10, 2021
a823138
Bump lodash from 4.17.20 to 4.17.21
dependabot[bot] May 11, 2021
33b42be
Merge pull request #3190 from matrix-org/dependabot/npm_and_yarn/loda…
turt2live May 12, 2021
10c606e
Merge branch 'origin/master' into Weblate.
weblate May 12, 2021
eb24928
Merge pull request #3191 from RiotTranslateBot/weblate-matrix-doc-sas…
turt2live May 12, 2021
ad32eb0
Update i18n
turt2live May 12, 2021
45bcd86
Strip whitespace.
clokep May 12, 2021
2919e57
Update dependencies to include MSC3173.
clokep May 12, 2021
62e94c5
Remove security considerations (moved to MSC3083).
clokep May 12, 2021
84331fc
Re-arrange security impact of knocking.
clokep May 12, 2021
fab5eaa
Add notes from @madlittlemods.
clokep May 12, 2021
5afe23a
More wrapping.
clokep May 12, 2021
590b7a4
Fill in the TODO about what how to mark access via spaces for the sum…
clokep May 12, 2021
cbc4515
Spacing.
clokep May 13, 2021
4eeb27f
Add more notes about edge-cases.
clokep May 13, 2021
cea6622
Clarify that implementations can use stable prefixes once an MSC has …
anoadragon453 May 13, 2021
d7219fb
Change space's valid `order` range to 0x7E
turt2live May 14, 2021
55c2866
Merge pull request #3195 from matrix-org/travis/msc1772-7E
turt2live May 16, 2021
d879eb6
Rename encrypted status to encryption information.
clokep May 17, 2021
3fe5ca9
Wrap text.
clokep May 17, 2021
d069ca2
Also include the room topic.
clokep May 17, 2021
b1051e4
Various clarifications based on feedback.
clokep May 17, 2021
c44998c
Fix awkward wording.
clokep May 17, 2021
9dc3830
Merge branch 'master' into travis/clarification/lowercasing
turt2live May 18, 2021
60566bf
iterate
turt2live May 18, 2021
29e4006
Fix typo.
clokep May 18, 2021
e201f49
Deprecate verifications that don't begin with a request.
uhoreg May 18, 2021
78adb21
add changelog
uhoreg May 18, 2021
6923606
Clarify what changes are being proposed.
clokep May 18, 2021
fd84bd7
Fix a typo in event soft rejection schema
toadjaune May 20, 2021
701ca0f
Merge pull request #3199 from uhoreg/deprecate_verification_start_spec
uhoreg May 20, 2021
4beb869
Fix broken ASCII art
uhoreg May 21, 2021
43e471f
Add changelog
uhoreg May 21, 2021
71a9bef
Merge pull request #3207 from toadjaune/patch-2
uhoreg May 21, 2021
4b7dc17
Include an API endpoint.
clokep May 25, 2021
b5d0969
Clarify examples.
clokep May 26, 2021
8810f59
Update 3167.clarification
turt2live May 26, 2021
eb6f924
Merge pull request #3176 from matrix-org/travis/clarification/lowerca…
turt2live May 26, 2021
8253c07
Bump browserslist from 4.14.0 to 4.16.6
dependabot[bot] May 26, 2021
d80939a
Merge pull request #3218 from matrix-org/dependabot/npm_and_yarn/brow…
turt2live May 27, 2021
fee59e3
Correct 'once-off' to 'one-off'
Jun 1, 2021
b94d379
Add federation and reword a bit.
clokep Jun 1, 2021
122c803
Rework this (again) to remove the API based on conversations with the…
clokep Jun 1, 2021
5204b85
Remove unstable prefixes.
clokep Jun 2, 2021
2481074
Drop Origin & Accept from Access-Control-Allow-Headers value
sideshowbarker May 30, 2021
0f49611
Remove spaces summary changes.
clokep Jun 4, 2021
c7ab867
Fix broken backlink.
clokep Jun 4, 2021
c1eb461
Remove bit about user IDs being listed directly.
clokep Jun 4, 2021
41dd06d
Clarify an edge case.
clokep Jun 4, 2021
e81686c
Many clarifications.
clokep Jun 4, 2021
8a3ad47
A bit less passive.
clokep Jun 4, 2021
1694146
Explicitly call replacement_room a room ID
Half-Shot Jun 8, 2021
524c552
Create 3233.clarification
Half-Shot Jun 9, 2021
bc915e2
Merge pull request #3233 from matrix-org/hs/explicit-room-id-for-tomb…
turt2live Jun 9, 2021
1d1d356
Space -> room.
clokep Jun 10, 2021
7061e19
Add a type field.
clokep Jun 10, 2021
f493778
Bump glob-parent from 5.1.1 to 5.1.2
dependabot[bot] Jun 12, 2021
e606218
Merge pull request #3241 from matrix-org/dependabot/npm_and_yarn/glob…
turt2live Jun 12, 2021
c95aa1c
Merge pull request #2732 from uhoreg/fallback_keys
turt2live Jun 13, 2021
5a58af6
Namespace the allow type.
clokep Jun 15, 2021
f3e7fba
Re-iterate that ban and server-acls matter.
clokep Jun 15, 2021
ed679c7
Clarify membership checking over federation.
clokep Jun 15, 2021
bfa0dfe
Clarify auth rules for restrictedjoin rules.
clokep Jun 15, 2021
39b9a9d
Clarify security concerns.
clokep Jun 15, 2021
91c7612
Handle feedback from Travis.
clokep Jun 16, 2021
8451c23
Fix sidebar overlap for small width devices
jryans Jun 16, 2021
0fd85ed
Merge pull request #3250 from matrix-org/jryans/mobile-toc-overlap
turt2live Jun 16, 2021
721d4ed
Bump postcss from 7.0.32 to 7.0.36
dependabot[bot] Jun 17, 2021
cd6441c
Merge pull request #3251 from matrix-org/dependabot/npm_and_yarn/post…
turt2live Jun 17, 2021
39fdfa3
Add a list of trusted servers.
clokep Jun 17, 2021
3bab6bd
Remove via field.
clokep Jun 17, 2021
8e0b001
Add a note about ensuring each allowed room has at least one server i…
clokep Jun 17, 2021
0b49932
Clarifications.
clokep Jun 18, 2021
ecd28fe
Merge pull request #3173 from matrix-org/clokep/stripped-state
turt2live Jun 20, 2021
d86f8aa
Add "knock" membership to /members endpoint (#3254)
Jun 22, 2021
b4296ef
Remove the authorised servers list.
clokep Jun 22, 2021
e5305a7
Clarifications / simplifications.
clokep Jun 22, 2021
08cddf0
changelog for https://github.com/matrix-org/matrix-doc/pull/3254
turt2live Jun 22, 2021
5578eba
Merge pull request #3228 from ilovecommits/patch-1
turt2live Jun 23, 2021
56a86e4
Merge pull request #3225 from sideshowbarker/client-server-api-Access…
turt2live Jun 23, 2021
a330dee
Changelog for https://github.com/matrix-org/matrix-doc/pull/3225
turt2live Jun 23, 2021
ea19271
Merge branch 'master' into hs/proposal-appservice-login
turt2live Jun 23, 2021
ec2c1f6
Remove what appears to be leftover notes
turt2live Jun 23, 2021
7aecdbe
Merge pull request #2778 from matrix-org/hs/proposal-appservice-login
turt2live Jun 23, 2021
c116942
sso_login_redirect: Fix a copy-pasted operationId
KitsuneRal Jun 23, 2021
6d041d4
Fix typos.
clokep Jun 24, 2021
69aec55
Clarify soft-failure is extension of current algorithm.
clokep Jun 24, 2021
42a34de
Clarify that signature checks only apply to joining users.
clokep Jun 24, 2021
808bb1b
Pull note about ban & ACLs out of each join rule description.
clokep Jun 28, 2021
87f9938
Use a different room version to specify changes in join rules.
clokep Jun 28, 2021
182c806
Clarify what happens if a homeserver cannot verify membership.
clokep Jun 28, 2021
1be4019
Clarify implications of signing events.
clokep Jun 28, 2021
76333ee
Add notes about the via key and authorised servers being out of sync.
clokep Jul 1, 2021
5f2240a
Fix typo.
clokep Jul 12, 2021
3037232
Fix typo.
clokep Jul 13, 2021
2c65a03
Fix typo.
clokep Jul 13, 2021
b9204cc
Remove extraneous paragraph.
clokep Jul 13, 2021
d95200f
Add domains to the example room aliases.
clokep Jul 13, 2021
dc945a4
Reword intro.
clokep Jul 13, 2021
2012466
Clarify users must be joined to an allowed room.
clokep Jul 13, 2021
db40a1c
Reflow.
clokep Jul 13, 2021
81a588e
Add note about including the authorising server in the content.
clokep Jul 13, 2021
b41a1a3
Update the information on signature checking.
clokep Jul 13, 2021
290f903
Updates from review.
clokep Jul 16, 2021
ffb9095
Add a note about resident servers.
clokep Jul 16, 2021
7caff82
Add information about errors over federation.
clokep Jul 19, 2021
55b99d2
Clarify if a resident server cannot issue a join vs. if they're unsur…
clokep Jul 19, 2021
48c1d9d
Apply suggestions from code review
clokep Jul 20, 2021
88a9404
Review feedback.
clokep Jul 20, 2021
c0b7f07
Move back section about errors for make/send_join & some review comme…
clokep Jul 20, 2021
77422e2
Move changes to make/send_join out of auth rules section.
clokep Jul 20, 2021
3885a94
Include an additional error situation.
clokep Jul 20, 2021
d9cae9b
More review comments.
clokep Jul 20, 2021
d128869
Fix typos.
clokep Jul 21, 2021
2e7db4a
Clarify error conditions.
clokep Jul 21, 2021
72ffbfe
Rename MSC.
clokep Jul 21, 2021
806d6fc
Add proposal for room version 8.
clokep Jul 21, 2021
2a92acc
Update 3289-rooms-v8.md
ara4n Jul 21, 2021
31a9b2a
Clarifications.
clokep Jul 22, 2021
db089aa
De-indent section.
clokep Jul 22, 2021
9699aa8
Note unstable prefix.
clokep Jul 23, 2021
43c2324
Merge pull request #3083 from matrix-org/clokep/restricted-rooms
turt2live Jul 25, 2021
203c107
Update redaction rules.
clokep Jul 27, 2021
7d0e931
OpenAPI: require all bodies in client-server
lukaslihotzki Jun 11, 2021
20e07ca
Add note about redacting the allow key.
clokep Jul 27, 2021
6c6aa0b
Merge pull request #3299 from matrix-org/clokep/restricted-rooms-reda…
turt2live Jul 27, 2021
0a01646
Revert "Update redaction rules."
clokep Jul 27, 2021
729812f
`/_matrix/federation/v1/user/devices/{userId}`: Rename `self_signing_…
neilalexander Aug 5, 2021
c651d39
Merge pull request #3238 from lukaslihotzki/required-bodies
turt2live Aug 5, 2021
55249db
Merge pull request #3289 from matrix-org/clokep/room-v8
turt2live Aug 8, 2021
29465f3
OpenAPI: use uri format
lukaslihotzki Aug 9, 2021
a03ea34
Merge pull request #3236 from lukaslihotzki/format-uri
KitsuneRal Aug 9, 2021
e7e0455
Explain the reasons why `<hostname>` TLS certificate is needed rather…
nielsbasjes Aug 10, 2021
0382eac
Use `changelogs/release.yaml` for the version number source everywher…
anoadragon453 Aug 10, 2021
fa6e611
OpenAPI: fix key_backup operation IDs
lukaslihotzki Aug 10, 2021
5132f1e
Merge pull request #3327 from lukaslihotzki/unique-ids
KitsuneRal Aug 11, 2021
0c4b7ad
OpenAPI: add auth property in uploadCrossSigningKeys
lukaslihotzki Aug 12, 2021
7311267
OpenAPI: require all bodies in cross_signing
lukaslihotzki Aug 12, 2021
3497a8d
OpenAPI: add missing tags
lukaslihotzki Aug 10, 2021
a1f4ab2
OpenAPI: split User data tag
lukaslihotzki Aug 12, 2021
00d2f66
Merge pull request #3331 from lukaslihotzki/add-uia
uhoreg Aug 12, 2021
3d3fba3
Merge pull request #3332 from lukaslihotzki/required-bodies
uhoreg Aug 12, 2021
2f5ad16
Mention that a canonical alias event should be created if alias speci…
uhoreg Aug 12, 2021
5a3d5a5
add changelog
uhoreg Aug 12, 2021
d0a6c5b
drop initial state check
uhoreg Aug 13, 2021
6b4d885
Merge pull request #3329 from lukaslihotzki/missing-tags
KitsuneRal Aug 14, 2021
ca86eea
OpenAPI: add titles
lukaslihotzki Aug 11, 2021
8a42807
Merge pull request #3330 from lukaslihotzki/add-titles
KitsuneRal Aug 14, 2021
c3e39e1
Merge pull request #3337 from uhoreg/room_create_canonical_alias
uhoreg Aug 16, 2021
0421569
Fix typo in /_matrix/client/r0/account/3pid/delete.
dkasak Aug 16, 2021
10f1a12
Merge pull request #3339 from matrix-org/dkasak/fix-typo-indentity
dkasak Aug 16, 2021
2a7fb01
OpenAPI: include peekEvents
lukaslihotzki Aug 12, 2021
5425585
Add newsfragment for #3339. (#3342)
dkasak Aug 17, 2021
c8b9fe5
Merge pull request #3336 from lukaslihotzki/include-peek-events
KitsuneRal Aug 17, 2021
f102ff3
Update documentation_style.rst (#3351)
richvdh Aug 19, 2021
dd6a55a
Notes on how to use `hugo` from docker (#3349)
richvdh Aug 19, 2021
8b2c126
Update documentation_style.rst (#3352)
richvdh Aug 19, 2021
dd0cc92
Start a 'conventions' section in the Appendices (#3350)
richvdh Aug 23, 2021
48e0783
Clarifications to pagination parameters for various APIs (#3353)
richvdh Aug 25, 2021
4e51fd6
Insert missing space
CicadaCinema Aug 26, 2021
933bb8d
Merge pull request #3364 from ColonisationCaptain/patch-1
turt2live Aug 26, 2021
7fcfa57
Add clarification on binary data and base64 encoding to Appendices (#…
neilalexander Aug 26, 2021
3ae4843
Fix two links on the CS API page
aaronraimist Aug 26, 2021
da51f7f
Merge pull request #3365 from aaronraimist/fix-404
turt2live Aug 26, 2021
5e3ea11
Replace "Pagination" section in C-S API with text in appendices (#3366)
richvdh Aug 27, 2021
dca99ee
Remove redundant `schemas/server-signatures.yaml` file
richvdh Aug 27, 2021
9098719
Tweak PDU diagram demonstrating `prev_events`. (#3340)
dkasak Aug 31, 2021
fa3f71f
MSC3231: Token authenticated registration (#3231)
govynnus Sep 27, 2021
ace340a
MSC2918: Refresh tokens (#2918)
sandhose Sep 28, 2021
ee39dbb
MSC3288: Add room type to `/_matrix/identity/v2/store-invite` API (#3…
BillCarsonFr Oct 23, 2021
7885c6a
MSC3069: Allow guests to use /account/whoami (#3069)
turt2live Oct 24, 2021
f9d654f
MSC2946: Spaces Summary (#2946)
kegsay Oct 31, 2021
c06b324
MSC3283: Expose capabilities for profile actions (#3283)
JonasKress Nov 17, 2021
c8e8b75
MSC2674: Event Relationships (#2674)
uhoreg Nov 23, 2021
acf44d7
Add m.login.appservice to the spec (#3324)
Half-Shot Dec 28, 2021
a07780d
dump-swagger.py: include untagged operations (#3326)
lukaslihotzki Jan 4, 2022
a786fa9
Rename assets-hugo directory to assets (#3259)
anoadragon453 Jan 6, 2022
aa0350a
MSC2675: Serverside aggregations of message relationships (#2675)
uhoreg Jan 15, 2022
e979b3b
MSC3316: Add timestamp massaging to the spec (#3316)
tulir Mar 6, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
35 changes: 29 additions & 6 deletions .buildkite/pipeline.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,39 @@
steps:
- label: ":books: Build spec"
- label: ":snake: Build swagger definitions for matrix.org"
command:
- python3 -m venv env
- env/bin/pip install -r scripts/requirements.txt
- ". env/bin/activate; scripts/generate-matrix-org-assets"
# Install the python dependencies necessary to build the spec
- python3 -m venv env && . env/bin/activate
- pip install -r scripts/requirements.txt
# Build the spec
- scripts/generate-matrix-org-assets
artifact_paths:
- assets.tar.gz
plugins:
- docker#v3.0.1:
image: "python:3.6"
- docker#v3.7.0:
image: python:3.9

- label: "rebuild matrix.org"
trigger: "matrix-dot-org"
async: true
branches: "master"

- label: ":books: Build the spec"
command:
# Install package dependencies
- apk add nodejs npm git hugo
# Install the node dependencies necessary to build the spec
- npm i
# Pull all git submodules, required for the hugo theme
- git submodule update --init --recursive
# Pull current proposal information
- npm run get-proposals
# Build the spec, will build to './spec'
# Set the baseURL as we're deploying to https://spec.matrix.org/unstable
- hugo --baseURL "/unstable" -d "spec"
# Compress the result and make it available as an artifact
- tar -czf spec.tar.gz spec
artifact_paths:
- spec.tar.gz
plugins:
- docker#v3.7.0:
image: alpine
46 changes: 19 additions & 27 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
gendoc: &gendoc
name: Generate the docs
# Note: Node dependencies are required for the hugo build.
# Note: We use a custom config file for circleci due to some specifics with hosting the
# site using CircleCI's artifacts platform. See config-circleci.toml for details.
command: |
source /env/bin/activate
scripts/gendoc.py
apk add nodejs npm git hugo
npm i
cat config-circleci.toml config.toml > hugo-config.toml
hugo --config hugo-config.toml --baseURL "/${CIRCLE_NODE_INDEX}/public"

genswagger: &genswagger
name: Generate the swagger
name: Validate sources and generate swagger json
command: |
source /env/bin/activate
scripts/check-swagger-sources.py
scripts/dump-swagger.py

buildswaggerui: &buildswaggerui
Expand All @@ -27,36 +33,21 @@ checkexamples: &checkexamples
name: Check Event Examples
command: |
source /env/bin/activate
cd event-schemas
./check_examples.py
cd ../api
./check_examples.py

genmatrixassets: &genmatrixassets
name: Generate/Verify matrix.org assets
command: |
source /env/bin/activate
./scripts/generate-matrix-org-assets
scripts/check-event-schema-examples.py

validateapi: &validateapi
name: Validate OpenAPI specifications
command: |
cd api
cd scripts
npm install
node validator.js -s "client-server"
node validator.js -s "../data/api/client-server"

buildspeculator: &buildspeculator
name: Build Speculator
command: |
cd scripts/speculator
go build -v

buildcontinuserv: &buildcontinuserv
name: Build Continuserv
command: |
cd scripts/continuserv
go build -v

version: 2
jobs:
validate-docs:
Expand All @@ -71,18 +62,21 @@ jobs:
steps:
- checkout
- run: *checkexamples
- run: *genmatrixassets # We don't actually use the assets, but we do want to make sure they build
build-docs:
docker:
- image: uhoreg/matrix-doc-build
- image: alpine
steps:
# Note: We install git in the image so we can pull git submodules. The hugo theme in use
# is a git submodule, which has its own submodules, and all need to be loaded.
- run: apk add git
- checkout
- run: git submodule update --init --recursive
- run: *gendoc
- store_artifacts:
path: scripts/gen
path: public
- run:
name: "Doc build is available at:"
command: DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/${CIRCLE_WORKING_DIRECTORY/#\~/$HOME}/scripts/gen/index.html"; echo $DOCS_URL
command: DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/public/index.html"; echo $DOCS_URL
build-swagger:
docker:
- image: uhoreg/matrix-doc-build
Expand All @@ -104,8 +98,6 @@ jobs:
name: Install Dependencies
command: |
go get -v github.com/hashicorp/golang-lru
go get -v gopkg.in/fsnotify/fsnotify.v1
- run: *buildcontinuserv
- run: *buildspeculator

workflows:
Expand Down
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/clarification.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: Clarity problem
about: Report an area of the spec that is unclear.
title: ''
labels: 'clarification'
assignees: ''

---

**Link to problem area**:

**Issue**
What is wrong? How can we improve?
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Matrix Spec Discussion
url: "https://matrix.to/#/#matrix-spec:matrix.org"
about: Questions about the spec and proposal process can be asked here.
- name: Matrix Security Policy
url: https://www.matrix.org/security-disclosure-policy/
about: Learn more about our security disclosure policy.
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/cosmetic-bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
name: Cosmetic issue
about: Report an issue with how the spec looks.
title: ''
labels: 'aesthetic'
assignees: ''

---

**Link to problem area**:

**Issue**
What is wrong? What can we do to improve?
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/idea.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: Spec idea
about: Suggest a future MSC idea.
title: ''
labels: 'improvement'
assignees: ''

---

**Suggestion**
What would you like to see in Matrix? If your idea is vaguely complete enough, we
recommend submitting [an MSC](https://matrix.org/docs/spec/proposals) instead.
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/spec-bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: Documentation error
about: Report an issue with the spec itself (incorrect text).
title: ''
labels: 'spec-bug'
assignees: ''

---

**Link to problem area**:

**Issue**
What is wrong?

**Expected behaviour**
How can the issue be fixed? Links to implementations/documents which prove the spec is wrong are appreciated.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/api/node_modules
/assets
/assets.tar.gz
/data/msc
/env*
/node_modules
/resources
Expand All @@ -10,8 +10,11 @@
/scripts/swagger
/scripts/tmp
/templating/out
/hugo-config.toml
/public
*.pyc
*.swp
_rendered.rst
/.vscode/
/.idea/
/spec/
3 changes: 2 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[submodule "themes/docsy"]
path = themes/docsy
url = https://github.com/google/docsy.git
url = https://github.com/matrix-org/docsy.git
branch = master
16 changes: 9 additions & 7 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ some time to complete.
Changes to the protocol (new endpoints, ideas, etc) need to go through the
`proposals process <https://matrix.org/docs/spec/proposals>`_. Other changes,
such as fixing bugs, typos, or clarifying existing behaviour do not need a proposal.
If you're not sure, visit us at `#matrix-spec:matrix.org`_
and ask.

If you're not sure, visit us at `#matrix-spec:matrix.org`_ and ask.

Other changes
~~~~~~~~~~~~~
Expand Down Expand Up @@ -64,12 +62,17 @@ following:
to fix. On the other hand, introducing new behaviour is best represented by a
proposal.

* Design or aesthetic changes, such as improving accessibility, colour schemes,
etc. Please check in with us at `#matrix-docs:matrix.org`_ with your proposed
design change before opening a PR so we can work with you on it.

For such changes, please do just open a `pull request`_. If you're not sure if
your change is covered by the above, please visit `#matrix-spec:matrix.org` and
ask.

.. _`pull request`: https://help.github.com/articles/about-pull-requests
.. _`#matrix-spec:matrix.org`: https://matrix.to/#/#matrix-spec:matrix.org
.. _`#matrix-docs:matrix.org`: https://matrix.to/#/#matrix-docs:matrix.org


Adding to the changelog
Expand All @@ -86,8 +89,8 @@ To create a changelog entry, create a file named in the format ``prNumber.type``
the ``newsfragments`` directory. The ``type`` can be one of the following:

* ``new`` - Used when adding new endpoints. Please have the file contents be the
method and route being added, surrounded in RST code tags. For example: ``POST
/accounts/whoami``
method and route being added, surrounded in markdown code tags. For example: \`POST
/accounts/whoami\`.

* ``feature`` - Used when adding backwards-compatible changes to the API.

Expand All @@ -100,8 +103,7 @@ the ``newsfragments`` directory. The ``type`` can be one of the following:

All news fragments must have a brief summary explaining the change in the
contents of the file. The summary must end in a full stop to be in line with
the style guide and and formatting must be done using `Restructured Text
<http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_.
the style guide and formatting must be done using Markdown.

Changes that do not change the spec, such as changes to the build script, formatting,
CSS, etc should not get a news fragment.
Expand Down
102 changes: 102 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Matrix Specification

This repository contains the Matrix Specification, rendered at [spec.matrix.org](http://spec.matrix.org/).

Developers looking to use Matrix should join [#matrix-dev:matrix.org](https://matrix.to/#/#matrix-dev:matrix.org)
on Matrix for help.

Spec authors and proposal writers are welcome to join [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org).
We welcome contributions! See [CONTRIBUTING.rst](./CONTRIBUTING.rst) for details.

## Structure

The Matrix spec is compiled with [Hugo](https://gohugo.io/) (a static site generator) with the following structure:

* `/assets`: assets that need postprocessing using [Hugo Pipes](https://gohugo.io/hugo-pipes/introduction/).
For example, Sass files would go here.

* `/content`: files that will become pages in the site go here. Typically these are Markdown files with some YAML front
matter indicating, [among other things](https://gohugo.io/content-management/front-matter/), what layout should be
applied to this page. The organization of files under `/content` determines the organization of pages in the built
site.

* `/data`: this can contain TOML, YAML, or JSON files. Files kept here are directly available to template code as
[data objects](https://gohugo.io/templates/data-templates/), so templates don't need to load them from a file and
parse them. This is also where our Swagger/OpenAPI definitions and schemas are.

* `/layouts`: this contains [Hugo templates](https://gohugo.io/templates/). Some templates define the overall layout of
a page: for example, whether it has header, footer, sidebar, and so on.
* `/layouts/partials`: these templates can be called from other templates, so they can be used to factor out
template code that's used in more than one template. An obvious example here is something like a sidebar, where
several different page layouts might all include the sidebar. But also, partial templates can return values: this
means they can be used like functions, that can be called by multiple templates to do some common processing.
* `/layouts/shortcodes`: these templates can be called directly from files in `/content`.

* `/static`: static files which don't need preprocessing. JS or CSS files could live here.

* `/themes`: you can use just Hugo or use it with a theme. Themes primarily provide additional templates, which are
supplied in a `/themes/$theme_name/layouts` directory. You can use a theme but customise it by providing your own
versions of any of the theme layouts in the base `/layouts` directory. That is, if a theme provides
`/themes/$theme_name/layouts/sidebar.html` and you provide `/layouts/sidebar.html`, then your version of the
template will be used.

It also has the following top-level file:

* `config.toml`: site-wide configuration settings. Some of these are built-in and you can add your own. Config settings
defined here are available in templates. All these directories above are configurable via `config.toml` settings.

Additionally, the following directories may be of interest:

* `/attic`: Here contains historical sections of specification and legacy drafts for the specification.
* `/changelogs`: Various bits of changelog for the specification areas.
* `/data-definitions`: Bits of structured data consumable by Matrix implementations.
* `/meta`: Documentation relating to the spec's processes that are otherwise untracked (release instructions, etc).
* `/scripts`: Various scripts for generating the spec and validating its contents.
* `/proposals`: Matrix Spec Change (MSC) proposals. See <https://spec.matrix.org/unstable/proposals/>.

## Authoring changes to the spec

Please read [CONTRIBUTING.rst](./CONTRIBUTING.rst) before authoring a change to the spec. Note that spec authoring takes
place after an MSC has been accepted, not as part of a proposal itself.

1. Install the extended version (often the OS default) of Hugo:
<https://gohugo.io/getting-started/installing>. Note that at least Hugo
v0.74 is required.

Alternatively, use the Docker image at https://hub.docker.com/r/klakegg/hugo/.
2. Run `git submodule update --init --recursive` for good measure.
3. Run `npm i` to install the dependencies. Note that this will require NodeJS to be installed.
4. Run `npm run get-proposals` to seed proposal data. This is merely for populating the content of the "Spec Change Proposals"
page and is not required.
5. Run `hugo serve` (or `docker run --rm -it -v $(pwd):/src -p 1313:1313
klakegg/hugo serve`) to run a local webserver which builds whenever a file
change is detected. If watching doesn't appear to be working for you, try
adding `--disableFastRender` to the commandline.
6. Edit the specification 🙂

We use a highly customized [Docsy](https://www.docsy.dev/) theme for our generated site, which uses Bootstrap and Font
Awesome. If you're looking at making design-related changes to the spec site, please coordinate with us in
[#matrix-docs:matrix.org](https://matrix.to/#/#matrix-docs:matrix.org) before opening a PR.

## Building the specification

If for some reason you're not a CI/CD system and want to render a static version of the spec for yourself, follow the above
steps for authoring changes to the specification and instead of `hugo serve` run `hugo -d "spec"` - this will generate the
spec to `/spec`. If you'd like to serve the spec off a path instead of a domain root (eg: `/unstable`), add `--baseURL "/unstable"`
to the `hugo -d "spec"` command.

For building the swagger definitions, create a python3 virtualenv and activate it. Then run `pip install -r ./scripts/requirements.txt`
and finally `python ./scripts/dump-swagger.py` to generate it to `./scripts/swagger/api-docs.json`. To make use of the generated file,
there are a number of options:

* It can be uploaded from your filesystem to an online editor/viewer such as [on the swagger website](http://editor.swagger.io/).
* You can run a local HTTP server by running `./scripts/swagger-http-server.py`, and then view the documentation via an
online viewer; for example, at <http://petstore.swagger.io/?url=http://localhost:8000/api-docs.json>.
* You can host the swagger UI yourself. See <https://github.com/swagger-api/swagger-ui#how-to-run> for advice on how to
do so.

## Issue tracking

Specification issues are tracked on github at <https://github.com/matrix-org/matrix-doc/issues>.

See [meta/github-labels.rst](./meta/github-labels.rst) for information on what the labels mean.
Loading