Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Merge mainline release v1.14.0 into dinsic #45

Merged
merged 415 commits into from
Jun 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
415 commits
Select commit Hold shift + click to select a range
eed7c5b
Convert auth handler to async/await (#7261)
clokep Apr 15, 2020
d7d4238
Fix 'generator object is not subscriptable' error (#7290)
richvdh Apr 16, 2020
01294e6
Do not treat display names as globs for push rules. (#7271)
clokep Apr 16, 2020
c07fca9
Clarify the comments for media_storage_providers options (#7272)
tristanlins Apr 17, 2020
0d775fc
Improve example TURN configuration in documentation (#7284)
nataraj-hates-MS-for-stealing-github Apr 17, 2020
67ff7b8
Improve type checking in `replication.tcp.Stream` (#7291)
richvdh Apr 17, 2020
72fe2af
Query missing cross-signing keys on local sig upload
anoadragon453 Apr 16, 2020
701788a
Added explicit Python build tools to snap requirements (#7213)
Apr 17, 2020
054c231
Use a template for the SSO success page to allow for customization. (…
clokep Apr 17, 2020
0f8f02b
On catchup, process each row with its own stream id (#7286)
richvdh Apr 20, 2020
f5ea8b4
Reject unknown UI auth sessions (instead of silently generating a new…
clokep Apr 20, 2020
1391723
Fix indention in generated config file (#7300)
frcl Apr 20, 2020
40f79f5
Always send the user updates to their own device list (#7160)
dbkr Mar 30, 2020
a46ff43
Merge branch 'release-v1.12.4' into develop
richvdh Apr 20, 2020
d41c8f6
Revert "Query missing cross-signing keys on local sig upload"
richvdh Apr 20, 2020
461f01a
Merge branch 'release-v1.12.4' into develop
richvdh Apr 20, 2020
974c0d7
Support GET account_data requests on a worker (#7311)
richvdh Apr 21, 2020
556566f
Fix changelog file
richvdh Apr 21, 2020
336989a
Reduce federation logging on success (#7321)
michaelkaye Apr 22, 2020
ff5604e
import urllib.parse when using urllib.parse.quote (#7319)
anoadragon453 Apr 22, 2020
f89ad3b
Query missing cross-signing keys on local sig upload (#7289)
anoadragon453 Apr 22, 2020
5308239
Reduce logging verbosity of URL cache cleanup. (#7295)
michaelkaye Apr 22, 2020
51f358e
Do not treat display names as globs for push rules. (#7271)
clokep Apr 16, 2020
51f7eaf
Add ability to run replication protocol over redis. (#7040)
erikjohnston Apr 22, 2020
2aa5bf1
Merge branch 'release-v1.12.4' into develop
richvdh Apr 22, 2020
6b6685d
Extend room admin api with additional attributes (#7225)
dklimpel Apr 22, 2020
13683a3
Extend StreamChangeCache to support multiple entities per stream ID (…
richvdh Apr 22, 2020
7c7618c
fix changelog name
richvdh Apr 22, 2020
83af107
1.12.4rc1
richvdh Apr 22, 2020
dc8003f
1.12.4rc1
richvdh Apr 22, 2020
82d8b1d
Another go at fixing one-word commands (#7326)
richvdh Apr 22, 2020
ba0aac5
formatting for the changelog
richvdh Apr 22, 2020
f16beaa
Merge tag 'v1.12.4rc1' into develop
richvdh Apr 22, 2020
841c581
Fix replication metrics when using redis (#7325)
erikjohnston Apr 22, 2020
69ad7cc
Config option to inhibit 3PID errors on /requestToken
babolivier Apr 21, 2020
71a1abb
Stop the master relaying USER_SYNC for other workers (#7318)
richvdh Apr 22, 2020
6f43193
Merge pull request #7315 from matrix-org/babolivier/request_token
babolivier Apr 23, 2020
1adf6a5
Revert "Merge pull request #7315 from matrix-org/babolivier/request_t…
babolivier Apr 23, 2020
fb82575
Merge branch 'master' into develop
babolivier Apr 23, 2020
2e3b9a0
Revert "Revert "Merge pull request #7315 from matrix-org/babolivier/r…
babolivier Apr 23, 2020
23b2826
Remove 'limit' param from `get_repl_stream_updates` API
richvdh Apr 23, 2020
9cbdfb3
Make it clear that the limit for an update_function is a target
richvdh Apr 23, 2020
ce9b62e
1.12.4
clokep Apr 23, 2020
204664d
Merge tag 'v1.12.4'
clokep Apr 23, 2020
68384d9
Merge branch 'master' into develop
clokep Apr 23, 2020
ce428a1
Fix EventsStream raising assertions when it falls behind
richvdh Apr 23, 2020
3655eaf
changelog
richvdh Apr 23, 2020
69a1ac0
Merge pull request #7337 from matrix-org/rav/fix_update_limit_assertion
richvdh Apr 24, 2020
33bceb7
Convert some of the federation handler methods to async/await. (#7338)
clokep Apr 24, 2020
7bfe090
Add documentation to the sample config about the templates for SSO. (…
clokep Apr 24, 2020
cc9eceb
Don't crash when one of the configuration files is empty (#7341)
babolivier Apr 27, 2020
aa24929
Add some explanation to application_services.md (#7091)
lub Apr 27, 2020
036fab5
Document monitoring workers (#7357)
babolivier Apr 27, 2020
07337fe
Fix incorrect metrics reporting for renew_attestations (#7344)
richvdh Apr 27, 2020
38919b5
Run replication streamers on workers (#7146)
erikjohnston Apr 28, 2020
fb8ff79
Fix collation for postgres for unit tests (#7359)
richvdh Apr 28, 2020
ce207aa
Fix typo 'datbases' in ConfigError
anoadragon453 Apr 28, 2020
fce6638
Add some replication tests (#7278)
erikjohnston Apr 28, 2020
04dd7d1
Return total number of users and profile attributes in admin users en…
awesome-manuel Apr 28, 2020
c58ae36
Clean up admin api docs (#7361)
anoadragon453 Apr 28, 2020
eeef963
Fix fallback value for account_threepid_delegates.email (#7316)
anoadragon453 Apr 29, 2020
c2e1a21
Fix limit logic for EventsStream (#7358)
richvdh Apr 29, 2020
3eab76a
Don't relay REMOTE_SERVER_UP cmds to same conn. (#7352)
erikjohnston Apr 29, 2020
37f6823
Add instance name to RDATA/POSITION commands (#7364)
erikjohnston Apr 29, 2020
9d8ecc9
Apply federation check for /publicRooms with filter list (#7367)
anoadragon453 Apr 30, 2020
627b0f5
Persist user interactive authentication sessions (#7302)
clokep Apr 30, 2020
b2dba06
Workaround for assertion errors from db_query_to_update_function (#7378)
richvdh May 1, 2020
a6b32ba
Make it clearer that #synapse:matrix.org is our support channel (#7379)
babolivier May 1, 2020
2e8955f
Further improvements to requesting the public rooms list on a homeser…
anoadragon453 May 1, 2020
6b22921
async/await is_server_admin (#7363)
anoadragon453 May 1, 2020
3085cde
Use `stream.current_token()` and remove `stream_positions()` (#7172)
erikjohnston May 1, 2020
cb6fd28
Add a section about support to the top of the README (#7392)
babolivier May 1, 2020
0e719f2
Thread through instance name to replication client. (#7369)
erikjohnston May 1, 2020
97ef147
Wait for current_state_events_membership before populate_stats_proces…
richvdh May 1, 2020
b0cbc57
Convert the synapse.notifier module to async/await. (#7395)
clokep May 1, 2020
032e5a2
Convert synapse.server_notices to async/await. (#7394)
clokep May 1, 2020
a251e0f
Update runtime docker image to Alpine v3.11
Starbix May 3, 2020
eab59d7
Convert the room handler to async/await. (#7396)
clokep May 4, 2020
350421e
Fix redis password support. (#7401)
erikjohnston May 4, 2020
068da60
Fix MANIFEST.in
babolivier May 4, 2020
ad08871
Merge pull request #7404 from matrix-org/babolivier/fix_manifest
babolivier May 4, 2020
9858d5c
Fix ordering in MANIFEST.in
babolivier May 4, 2020
15aa09b
Merge branch 'release-v1.13.0' into develop
babolivier May 4, 2020
8123b2f
Add MultiWriterIdGenerator. (#7281)
erikjohnston May 4, 2020
207b173
Update reverse_proxy.md
richvdh May 5, 2020
d5aa7d9
Fix catchup-on-reconnect for the Federation Stream (#7374)
richvdh May 5, 2020
7941a70
Fix bug in EventContext.deserialize. (#7393)
erikjohnston May 5, 2020
fe69fb6
Add backwards compatibility codepath to LoggingContext. (#7408)
clokep May 5, 2020
16b1a34
Fix typing annotations in synapse/federation (#7382)
richvdh May 5, 2020
f907389
Speed up fetching device lists changes in sync.
erikjohnston May 5, 2020
79fe3e0
Newsfile
erikjohnston May 5, 2020
714560e
Update changelog.d/7423.misc
richvdh May 5, 2020
13dd458
Merge branch 'release-v1.13.0' into erikj/faster_device_lists_fetch
richvdh May 5, 2020
d78265a
Wait to subscribe before sending REPLICATE
richvdh May 5, 2020
5b8023d
Move logs about discarded RDATA to debug (#7421)
babolivier May 5, 2020
7f7eedb
Wait for a POSITION on the right connection before accepting RDATA
richvdh May 5, 2020
7bf788a
changelog
richvdh May 5, 2020
1242267
Merge branch 'release-v1.13.0' into rav/fix_dropped_messages
richvdh May 5, 2020
a8c17da
Merge branch 'release-v1.13.0' into rav/fix_dropped_messages
richvdh May 5, 2020
c255b0f
Merge pull request #7427 from matrix-org/rav/fix_dropped_messages
richvdh May 6, 2020
b26f3e5
Merge pull request #7423 from matrix-org/erikj/faster_device_lists_fetch
erikjohnston May 6, 2020
0f6ebf3
Better type annotations for simple_upsert_txn
richvdh May 6, 2020
e483615
use an upsert to update device_lists_outbound_last_success
richvdh May 6, 2020
30a19da
Merge branch 'develop' into rav/upsert_for_device_list
richvdh May 6, 2020
79007a4
Merge pull request #7429 from matrix-org/rav/upsert_for_device_list
richvdh May 6, 2020
2e0c46c
Merge branch 'release-v1.13.0' into develop
richvdh May 6, 2020
db5f903
Fix batching for fetching cross-signing keys
richvdh May 5, 2020
16b67c4
Make get_e2e_cross_signing_key delegate to get_e2e_cross_signing_keys…
richvdh May 5, 2020
fa0b2bd
Merge pull request #7428 from matrix-org/rav/cross_signing_keys_cache
richvdh May 6, 2020
aee9130
Stop Auth methods from polling the config on every req. (#7420)
anoadragon453 May 6, 2020
62ee862
Merge branch 'release-v1.13.0' into develop
richvdh May 6, 2020
e053c86
Make redis go faster with hiredis (#7439)
richvdh May 6, 2020
4162c39
Port group attestation renewal slow down from matrix-org-hotfixes (#7…
anoadragon453 May 6, 2020
d7c2df2
Improve per-block CPU and DB usage metrics (#7426)
clokep May 6, 2020
d9b8d27
Add a configuration setting for the dummy event threshold (#7422)
babolivier May 7, 2020
2929ce2
Merge pull request #7398 from Starbix/alpine-3.11
babolivier May 7, 2020
d7983b6
Support any process writing to cache invalidation stream. (#7436)
erikjohnston May 7, 2020
2224691
Add more type hints to SAML handler. (#7445)
clokep May 7, 2020
9e0384d
Fixes typo (bellow -> below) (#7449)
clokep May 7, 2020
5bb26b7
Merge branch 'release-v1.13.0' into develop
babolivier May 7, 2020
da9b2db
Drop support for redis.dbid (#7450)
richvdh May 7, 2020
aa5aa6f
Fix errors from malformed log line (#7454)
richvdh May 7, 2020
a4a5ec4
Add room details admin endpoint (#7317)
awesome-manuel May 7, 2020
616af44
Implement OpenID Connect-based login (#7256)
sandhose May 8, 2020
67feea8
Extend spam checker to allow for multiple modules (#7435)
anoadragon453 May 8, 2020
0ad6d28
Rework UI Auth session validation for registration (#7455)
clokep May 8, 2020
8515565
Documentation on setting up redis (#7446)
neilisfragile May 11, 2020
20ffaa7
1.13.0rc1
anoadragon453 May 11, 2020
200ad02
Changelog fixes
anoadragon453 May 11, 2020
71c9307
Move next version notes from changelog to upgrade notes
anoadragon453 May 11, 2020
1f73d28
Provide summary of upgrade issues in changelog. Fix )
anoadragon453 May 11, 2020
3916c65
Fix upgrade notes link
anoadragon453 May 11, 2020
b41d7b3
Absolute URL it is then
anoadragon453 May 11, 2020
c3416c8
Oh yeah, RST
anoadragon453 May 11, 2020
647a995
Fix changelog typo
anoadragon453 May 11, 2020
8cced49
Put rollback instructions in upgrade notes
anoadragon453 May 11, 2020
e0caeed
RST indenting
anoadragon453 May 11, 2020
fa4af2c
Don't UPGRADE database rows
anoadragon453 May 11, 2020
5cf758c
Merge branch 'release-v1.13.0' into develop
anoadragon453 May 11, 2020
a8580c5
Remove unused store method get_hosts_in_room (#7448)
anoadragon453 May 11, 2020
7cb8b4b
Allow configuration of Synapse's cache without using synctl or enviro…
hawkowl May 11, 2020
be309d9
Convert search code to async/await. (#7460)
clokep May 11, 2020
8c8858e
Convert federation handler to async/await. (#7459)
clokep May 11, 2020
1a1da60
Fix new flake8 errors (#7470)
erikjohnston May 12, 2020
51fb0fc
Update documentation about SSO mapping providers (#7458)
clokep May 12, 2020
8ca7961
Fix Redis reconnection logic (#7482)
erikjohnston May 13, 2020
7ee24c5
Have all instances correctly respond to REPLICATE command. (#7475)
erikjohnston May 13, 2020
edd3b07
Fix new flake8 errors (#7489)
clokep May 13, 2020
782e4e6
Shuffle persist event data store functions. (#7440)
erikjohnston May 13, 2020
00ba9c4
Spelling
erikjohnston May 13, 2020
18c1e52
Clean up replication unit tests. (#7490)
erikjohnston May 13, 2020
46cb255
Fix copypasted comment (#7477)
ptman May 13, 2020
1124111
Allow censoring of events to happen on workers. (#7492)
erikjohnston May 13, 2020
5d64fef
Do not validate that the client dict is stable during UI Auth. (#7483)
clokep May 13, 2020
a0e0633
Stop `get_joined_users` corruption from custom statuses (#7376)
richvdh May 14, 2020
623abbe
1.13.0rc2
richvdh May 14, 2020
75fbc1a
1.13.0rc2
richvdh May 14, 2020
dede23f
Merge tag 'v1.13.0rc2' into develop
richvdh May 14, 2020
1de3640
Add `instance_map` config and route replication calls (#7495)
erikjohnston May 14, 2020
4734a7b
Move EventStream handling into default ReplicationDataHandler (#7493)
erikjohnston May 14, 2020
225c165
Allow expired accounts to logout (#7443)
anoadragon453 May 14, 2020
eafd103
Fix b'GET' in prometheus metrics (#7503)
richvdh May 14, 2020
5611644
Workaround for failure to wrap reason in Failure (#7473)
anoadragon453 May 14, 2020
fef3ff5
Enforce MSC2209: auth rules for notifications in power level event (#…
clokep May 14, 2020
66d0363
Notes on using git (#7496)
richvdh May 14, 2020
a564ec4
remove spurious changelog files
richvdh May 14, 2020
ec0b72b
Merge branch 'master' into develop
richvdh May 14, 2020
56b66db
Strictly enforce canonicaljson requirements in a new room version (#7…
clokep May 14, 2020
02d97fc
Ignore incoming presence updates when presence is disabled (#7508)
anoadragon453 May 15, 2020
08bc80e
Implement room version 6 (MSC2240). (#7506)
clokep May 15, 2020
e9f3de0
Update the room member handler to use async/await. (#7507)
clokep May 15, 2020
572b444
Add Caddy 2 example (#7463)
jpeeler May 15, 2020
24d9151
Formatting for reverse-proxy docs (#7514)
richvdh May 15, 2020
86614e2
Fix a small typo in the arguments of simple_update in update_remote_p…
anoadragon453 May 15, 2020
5355421
Add type hints to event_auth code. (#7505)
clokep May 15, 2020
1f36ff6
Move event stream handling out of slave store. (#7491)
erikjohnston May 15, 2020
16090a0
Prevent 0-member/null room_version rooms from appearing in group room…
anoadragon453 May 15, 2020
03aff4c
Add a worker store for search insertion. (#7516)
erikjohnston May 15, 2020
a3cf36f
Support UI Authentication for OpenID Connect accounts (#7457)
clokep May 15, 2020
34a43f0
Fix a couple of small typos
anoadragon453 May 15, 2020
6c1f7c7
Fix limit logic for AccountDataStream (#7384)
richvdh May 15, 2020
08fa96f
Remove `exception_to_unicode`
richvdh May 15, 2020
65902e0
remove to_ascii
richvdh May 15, 2020
91f51c6
remove redundant `__func__`
richvdh May 15, 2020
e602756
remove `builtins.buffer` code from storage code
richvdh May 15, 2020
d467691
remove miscellaneous PY2 code
richvdh May 15, 2020
ab57353
changelog
richvdh May 15, 2020
c29915b
Add type hints to room member handlers (#7513)
clokep May 15, 2020
164f50f
fix mypy for tests/replication (#7518)
richvdh May 18, 2020
4d1afb1
Merge pull request #7519 from matrix-org/rav/kill_py2_code
richvdh May 18, 2020
51055c8
Allow ReplicationRestResource to be added to workers (#7515)
erikjohnston May 18, 2020
56db0b1
Hash passwords earlier in the registration process (#7523)
clokep May 18, 2020
3c8a57f
1.13.0rc3
clokep May 18, 2020
ee421e5
Merge tag 'v1.13.0rc3' into develop
clokep May 18, 2020
250f3eb
Omit displayname or avatar_url if they aren't set instead of returnin…
aaronraimist May 19, 2020
ab3e19d
Improve API doc readability (#7527)
ptman May 19, 2020
a57863d
synctl warns when no process is stopped and avoids start (#6598)
romainbou May 19, 2020
1fc8914
update dh-virtualenv (#7526)
richvdh May 19, 2020
ac3264b
1.13.0
clokep May 19, 2020
66fd162
Move warnings in the changelog and re-iterate changes to branches.
clokep May 19, 2020
45c8b1c
Update changelog based on feedback.
clokep May 19, 2020
13a8276
Merge tag 'v1.13.0'
clokep May 19, 2020
02919bf
Merge branch 'master' into develop
clokep May 19, 2020
4fa74c7
Minor clarifications to the TURN docs (#7533)
richvdh May 20, 2020
9dc6f30
Hash passwords earlier in the password reset process (#7538)
clokep May 20, 2020
b2b8699
Remove Ubuntu Cosmic and Disco which are both EOL. (#7539)
clokep May 20, 2020
5db2a59
Update CONTRIBUTING.md (#7541)
richvdh May 20, 2020
f6f9284
Fix bug in persist events when dealing with non member types. (#7548)
erikjohnston May 21, 2020
075375b
add a comment
richvdh May 21, 2020
d74cdc1
Ensure worker config exists in systemd service (#7528)
auscompgeek May 21, 2020
0bbbd10
Stub out GET presence requests in the frontend proxy (#7545)
richvdh May 21, 2020
d1ae101
Retry to sync out of sync device lists (#7453)
babolivier May 21, 2020
66a564c
Fix some DETECTED VIOLATIONS in the config file (#7550)
richvdh May 22, 2020
d84bdfe
mypy for synapse.http.site (#7553)
richvdh May 22, 2020
a0f99f8
Fix stacktrace mangling in `patch_inline_callbacks` (#7554)
richvdh May 22, 2020
8c75da9
Refresh apt cache when building dh_virtualenv docker image (#7555)
richvdh May 22, 2020
ac481a7
synapse.metrics: implement detailed memory usage reporting on PyPy (#…
intelfx May 22, 2020
547e4dd
Fix exception reporting due to HTTP request errors. (#7556)
erikjohnston May 22, 2020
710d958
On upgrade room only send canonical alias once. (#7547)
erikjohnston May 22, 2020
66f2ebc
Use a non-empty RelayState for user interactive auth with SAML. (#7552)
clokep May 22, 2020
06a02bc
Convert sending mail to async/await. (#7557)
erikjohnston May 22, 2020
1531b21
Add ability to wait for replication streams (#7542)
erikjohnston May 22, 2020
4429764
Return 200 OK for all OPTIONS requests (#7534)
clokep May 22, 2020
e5c67d0
Add option to move event persistence off master (#7517)
erikjohnston May 22, 2020
2901f54
Fix missing CORS headers on OPTION responses (#7560)
erikjohnston May 22, 2020
f426969
Optimise some references to hs.config (#7546)
richvdh May 22, 2020
d14c4d6
Simplify reap_monthly_active_users (#7558)
richvdh May 23, 2020
00db90f
Fix recording of federation stream token (#7564)
richvdh May 26, 2020
04729b8
Fix incorrect exception handling in KeyUploadServlet.on_POST (#7563)
richvdh May 26, 2020
edd9a72
Replace device_27_unique_idx bg update with a fg one (#7562)
richvdh May 26, 2020
3b19c17
1.14.0
babolivier May 26, 2020
f1689a7
Changelog fixes
babolivier May 26, 2020
9097e13
More changelog fix
babolivier May 26, 2020
651bb76
Merge event persistence move changelog entries
erikjohnston May 26, 2020
87e417c
Not full release yet, this is rc1
babolivier May 26, 2020
7193c10
Merge branch 'release-v1.14.0' of github.com:matrix-org/synapse into …
babolivier May 26, 2020
b3b2038
Remove the changes to the debian changelog
babolivier May 26, 2020
9bac5d6
Ensure ReplicationStreamer is always started when replication enabled…
erikjohnston May 27, 2020
eefc6b3
Don't apply cache factor to event cache. (#7578)
erikjohnston May 27, 2020
4ba5555
Fix specifying cache factors via env vars with * in name. (#7580)
erikjohnston May 27, 2020
d7d8a2e
Fix up comments
erikjohnston May 27, 2020
4be968d
Fix sample config docs error (#7581)
jaywink May 27, 2020
b410949
1.14.0rc2
babolivier May 27, 2020
4e3a617
Improve changelog wording
babolivier May 27, 2020
6146930
1.14.0
babolivier May 28, 2020
76261fc
Update debian changelog
babolivier May 28, 2020
38c1fdb
Fix typo in PR link
richvdh Jun 3, 2020
e8a7a85
Merge branch 'release-v1.13.0' of github.com:matrix-org/synapse into …
anoadragon453 Jun 10, 2020
cde3bda
Merge branch 'release-v1.14.0' of github.com:matrix-org/synapse into …
anoadragon453 Jun 10, 2020
2d7e6d4
Add changelog
anoadragon453 Jun 10, 2020
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
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .buildkite/worker-blacklist
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ Message history can be paginated

Can re-join room if re-invited

/upgrade creates a new room

The only membership state included in an initial sync is for all the senders in the timeline

Local device key changes get to remote servers
Expand Down
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**If you are looking for support** please ask in **#synapse:matrix.org**
(using a matrix.org account if necessary). We do not use GitHub issues for
support.

**If you want to report a security issue** please see https://matrix.org/security-disclosure-policy/
8 changes: 5 additions & 3 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ about: Create a report to help us improve

---

<!--
**THIS IS NOT A SUPPORT CHANNEL!**
**IF YOU HAVE SUPPORT QUESTIONS ABOUT RUNNING OR CONFIGURING YOUR OWN HOME SERVER**,
please ask in **#synapse:matrix.org** (using a matrix.org account if necessary)

**IF YOU HAVE SUPPORT QUESTIONS ABOUT RUNNING OR CONFIGURING YOUR OWN HOME SERVER**:
You will likely get better support more quickly if you ask in ** #synapse:matrix.org ** ;)
<!--

If you want to report a security issue, please see https://matrix.org/security-disclosure-policy/

This is a bug report template. By following the instructions below and
filling out the sections with your information, you will help the us to get all
Expand Down
328 changes: 320 additions & 8 deletions CHANGES.md

Large diffs are not rendered by default.

184 changes: 114 additions & 70 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,48 @@
# Contributing code to Matrix
# Contributing code to Synapse

Everyone is welcome to contribute code to Matrix
(https://github.com/matrix-org), provided that they are willing to license
their contributions under the same license as the project itself. We follow a
simple 'inbound=outbound' model for contributions: the act of submitting an
'inbound' contribution means that the contributor agrees to license the code
under the same terms as the project's overall 'outbound' license - in our
case, this is almost always Apache Software License v2 (see [LICENSE](LICENSE)).
Everyone is welcome to contribute code to [matrix.org
projects](https://github.com/matrix-org), provided that they are willing to
license their contributions under the same license as the project itself. We
follow a simple 'inbound=outbound' model for contributions: the act of
submitting an 'inbound' contribution means that the contributor agrees to
license the code under the same terms as the project's overall 'outbound'
license - in our case, this is almost always Apache Software License v2 (see
[LICENSE](LICENSE)).

## How to contribute

The preferred and easiest way to contribute changes to Matrix is to fork the
relevant project on github, and then [create a pull request](
https://help.github.com/articles/using-pull-requests/) to ask us to pull
your changes into our repo.
The preferred and easiest way to contribute changes is to fork the relevant
project on github, and then [create a pull request](
https://help.github.com/articles/using-pull-requests/) to ask us to pull your
changes into our repo.

**The single biggest thing you need to know is: please base your changes on
the develop branch - *not* master.**
Some other points to follow:

* Please base your changes on the `develop` branch.

* Please follow the [code style requirements](#code-style).

We use the master branch to track the most recent release, so that folks who
blindly clone the repo and automatically check out master get something that
works. Develop is the unstable branch where all the development actually
happens: the workflow is that contributors should fork the develop branch to
make a 'feature' branch for a particular contribution, and then make a pull
request to merge this back into the matrix.org 'official' develop branch. We
use github's pull request workflow to review the contribution, and either ask
you to make any refinements needed or merge it and make them ourselves. The
changes will then land on master when we next do a release.
* Please include a [changelog entry](#changelog) with each PR.

We use [Buildkite](https://buildkite.com/matrix-dot-org/synapse) for continuous
integration. If your change breaks the build, this will be shown in GitHub, so
please keep an eye on the pull request for feedback.
* Please [sign off](#sign-off) your contribution.

To run unit tests in a local development environment, you can use:
* Please keep an eye on the pull request for feedback from the [continuous
integration system](#continuous-integration-and-testing) and try to fix any
errors that come up.

- ``tox -e py35`` (requires tox to be installed by ``pip install tox``)
for SQLite-backed Synapse on Python 3.5.
- ``tox -e py36`` for SQLite-backed Synapse on Python 3.6.
- ``tox -e py36-postgres`` for PostgreSQL-backed Synapse on Python 3.6
(requires a running local PostgreSQL with access to create databases).
- ``./test_postgresql.sh`` for PostgreSQL-backed Synapse on Python 3.5
(requires Docker). Entirely self-contained, recommended if you don't want to
set up PostgreSQL yourself.

Docker images are available for running the integration tests (SyTest) locally,
see the [documentation in the SyTest repo](
https://github.com/matrix-org/sytest/blob/develop/docker/README.md) for more
information.
* If you need to [update your PR](#updating-your-pull-request), just add new
commits to your branch rather than rebasing.

## Code style

All Matrix projects have a well-defined code-style - and sometimes we've even
got as far as documenting it... For instance, synapse's code style doc lives
[here](docs/code_style.md).
Synapse's code style is documented [here](docs/code_style.md). Please follow
it, including the conventions for the [sample configuration
file](docs/code_style.md#configuration-file-format).

To facilitate meeting these criteria you can run `scripts-dev/lint.sh`
locally. Since this runs the tools listed in the above document, you'll need
python 3.6 and to install each tool:
Many of the conventions are enforced by scripts which are run as part of the
[continuous integration system](#continuous-integration-and-testing). To help
check if you have followed the code style, you can run `scripts-dev/lint.sh`
locally. You'll need python 3.6 or later, and to install a number of tools:

```
# Install the dependencies
Expand All @@ -67,9 +53,11 @@ pip install -U black flake8 flake8-comprehensions isort
```

**Note that the script does not just test/check, but also reformats code, so you
may wish to ensure any new code is committed first**. By default this script
checks all files and can take some time; if you alter only certain files, you
might wish to specify paths as arguments to reduce the run-time:
may wish to ensure any new code is committed first**.

By default, this script checks all files and can take some time; if you alter
only certain files, you might wish to specify paths as arguments to reduce the
run-time:

```
./scripts-dev/lint.sh path/to/file1.py path/to/file2.py path/to/folder
Expand All @@ -82,7 +70,6 @@ Please ensure your changes match the cosmetic style of the existing project,
and **never** mix cosmetic and functional changes in the same commit, as it
makes it horribly hard to review otherwise.


## Changelog

All changes, even minor ones, need a corresponding changelog / newsfragment
Expand All @@ -98,24 +85,55 @@ in the format of `PRnumber.type`. The type can be one of the following:
* `removal` (also used for deprecations)
* `misc` (for internal-only changes)

The content of the file is your changelog entry, which should be a short
description of your change in the same style as the rest of our [changelog](
https://github.com/matrix-org/synapse/blob/master/CHANGES.md). The file can
contain Markdown formatting, and should end with a full stop (.) or an
exclamation mark (!) for consistency.
This file will become part of our [changelog](
https://github.com/matrix-org/synapse/blob/master/CHANGES.md) at the next
release, so the content of the file should be a short description of your
change in the same style as the rest of the changelog. The file can contain Markdown
formatting, and should end with a full stop (.) or an exclamation mark (!) for
consistency.

Adding credits to the changelog is encouraged, we value your
contributions and would like to have you shouted out in the release notes!

For example, a fix in PR #1234 would have its changelog entry in
`changelog.d/1234.bugfix`, and contain content like "The security levels of
Florbs are now validated when received over federation. Contributed by Jane
Matrix.".
`changelog.d/1234.bugfix`, and contain content like:

> The security levels of Florbs are now validated when received
> via the `/federation/florb` endpoint. Contributed by Jane Matrix.

If there are multiple pull requests involved in a single bugfix/feature/etc,
then the content for each `changelog.d` file should be the same. Towncrier will
merge the matching files together into a single changelog entry when we come to
release.

### How do I know what to call the changelog file before I create the PR?

Obviously, you don't know if you should call your newsfile
`1234.bugfix` or `5678.bugfix` until you create the PR, which leads to a
chicken-and-egg problem.

There are two options for solving this:

1. Open the PR without a changelog file, see what number you got, and *then*
add the changelog file to your branch (see [Updating your pull
request](#updating-your-pull-request)), or:

## Debian changelog
1. Look at the [list of all
issues/PRs](https://github.com/matrix-org/synapse/issues?q=), add one to the
highest number you see, and quickly open the PR before somebody else claims
your number.

[This
script](https://github.com/richvdh/scripts/blob/master/next_github_number.sh)
might be helpful if you find yourself doing this a lot.

Sorry, we know it's a bit fiddly, but it's *really* helpful for us when we come
to put together a release!

### Debian changelog

Changes which affect the debian packaging files (in `debian`) are an
exception.
exception to the rule that all changes require a `changelog.d` file.

In this case, you will need to add an entry to the debian changelog for the
next release. For this, run the following command:
Expand Down Expand Up @@ -200,19 +218,45 @@ Git allows you to add this signoff automatically when using the `-s`
flag to `git commit`, which uses the name and email set in your
`user.name` and `user.email` git configs.

## Merge Strategy
## Continuous integration and testing

[Buildkite](https://buildkite.com/matrix-dot-org/synapse) will automatically
run a series of checks and tests against any PR which is opened against the
project; if your change breaks the build, this will be shown in GitHub, with
links to the build results. If your build fails, please try to fix the errors
and update your branch.

To run unit tests in a local development environment, you can use:

- ``tox -e py35`` (requires tox to be installed by ``pip install tox``)
for SQLite-backed Synapse on Python 3.5.
- ``tox -e py36`` for SQLite-backed Synapse on Python 3.6.
- ``tox -e py36-postgres`` for PostgreSQL-backed Synapse on Python 3.6
(requires a running local PostgreSQL with access to create databases).
- ``./test_postgresql.sh`` for PostgreSQL-backed Synapse on Python 3.5
(requires Docker). Entirely self-contained, recommended if you don't want to
set up PostgreSQL yourself.

Docker images are available for running the integration tests (SyTest) locally,
see the [documentation in the SyTest repo](
https://github.com/matrix-org/sytest/blob/develop/docker/README.md) for more
information.

## Updating your pull request

If you decide to make changes to your pull request - perhaps to address issues
raised in a review, or to fix problems highlighted by [continuous
integration](#continuous-integration-and-testing) - just add new commits to your
branch, and push to GitHub. The pull request will automatically be updated.

We use the commit history of develop/master extensively to identify
when regressions were introduced and what changes have been made.
Please **avoid** rebasing your branch, especially once the PR has been
reviewed: doing so makes it very difficult for a reviewer to see what has
changed since a previous review.

We aim to have a clean merge history, which means we normally squash-merge
changes into develop. For small changes this means there is no need to rebase
to clean up your PR before merging. Larger changes with an organised set of
commits may be merged as-is, if the history is judged to be useful.
## Notes for maintainers on merging PRs etc

This use of squash-merging will mean PRs built on each other will be hard to
merge. We suggest avoiding these where possible, and if required, ensuring
each PR has a tidy set of commits to ease merging.
There are some notes for those with commit access to the project on how we
manage git [here](docs/dev/git.md).

## Conclusion

Expand Down
Loading