summary refs log tree commit diff
path: root/changelog.d/4642.bugfix (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-03-08Fix silly markdown typo v1.54.0Olivier Wilkinson (reivilibre)1-1/+1
2022-03-08Tweak changelog formattingOlivier Wilkinson (reivilibre)1-3/+2
2022-03-08Shift up warning about MjolnirOlivier Wilkinson (reivilibre)1-3/+4
2022-03-081.54.0Olivier Wilkinson (reivilibre)8-6/+25
2022-03-08Fix a bug introduced in 1.54.0rc1 which meant that Synapse would refuse to ↵reivilibre3-1/+22
start if pre-release versions of dependencies were installed. (#12177) * Add failing test to characterise the regression #12176 * Permit pre-release versions of specified packages * Newsfile (bugfix) Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
2022-03-04Relax version guard for packaging (#12166)David Robertson2-2/+3
It’s just occurred to me that #12088 pulled in the “packaging” package (~=21.3). I pulled in the newest version I had at the time. I only use it for packaging.requirements.Requirements. Which was added in packaging 16.1: https://github.com/pypa/packaging/releases/tag/16.1 https://pkgs.org/download/python3-packaging suggests that the oldest version we care about is 17.1 in Ubuntu Bionic. So I think with this bound we're hunky dory.
2022-03-03Don't impose version checks on dev extras at runtime (#12129)David Robertson3-9/+74
* Fix incorrect argument in test case * Add copyright header * Docstring and __all__ * Exclude dev depenencies * Use changelog from #12088 * Include version in error messages This will hopefully distinguish between the version of the source code and the version of the distribution package that is installed. * Linter script is your friend
2022-03-03Correctly register deactivation and profile update module callbacks (#12141)Brendan Abolivier3-3/+16
2022-03-02Make release script write correct no-op changelog (#12127)Erik Johnston2-2/+29
As we want to include the previous version in the "No new changes..." string.
2022-03-02Reword changelog line about URL previews v1.54.0rc1Olivier Wilkinson (reivilibre)1-1/+1
2022-03-02Tweak changelogOlivier Wilkinson (reivilibre)1-1/+1
2022-03-02Apply suggestions to changelogOlivier Wilkinson (reivilibre)1-10/+9
2022-03-02Reword changelogOlivier Wilkinson (reivilibre)1-12/+16
2022-03-021.54.0rc1Olivier Wilkinson (reivilibre)74-72/+103
2022-03-02Remove misleading newsfile from #12126 which backs out an unreleased change.Olivier Wilkinson (reivilibre)1-1/+0
2022-03-02Back out in-flight state caching changes. (#12126)reivilibre7-676/+26
2022-03-02Make get_room_version use cached get_room_version_id. (#11808)lukasdenk3-15/+18
2022-03-01Detox, part 1 of N (#12119)David Robertson4-14/+12
* Don't use `tox` for `check-sampleconfig` * Don't use `tox` for check-newsfragment
2022-03-01Use importlib.metadata to read requirements (#12088)David Robertson13-115/+237
* Pull runtime dep checks into their own module * Reimplement `check_requirements` using `importlib` I've tried to make this clearer. We start by working out which of Synapse's requirements we need to be installed here and now. I was surprised that there wasn't an easier way to see which packages were installed by a given extra. I've pulled out the error messages into functions that deal with "is this for an extra or not". And I've rearranged the loop over two different sets of requirements into one loop with a "must be instaled" flag. I hope you agree that this is clearer. * Test cases
2022-03-01Fix rare error in `ReadWriteLock` when writers complete immediately (#12105)Sean Quah3-1/+35
Signed-off-by: Sean Quah <seanq@element.io>
2022-03-01Add module callbacks called for reacting to deactivation status change and ↵Brendan Abolivier7-7/+360
profile update (#12062)
2022-03-01Use Python 3.9 in Synapse dockerfiles by default (#12112)Andrew Morgan2-2/+3
2022-03-01Add `stop_cancellation` utility function (#12106)Sean Quah3-0/+65
2022-03-01Order in-flight state group queries in biggest-first order (#11610)reivilibre3-4/+131
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-03-01Faster joins: persist to database (#12012)Richard van der Hoff12-32/+297
When we get a partial_state response from send_join, store information in the database about it: * store a record about the room as a whole having partial state, and stash the list of member servers too. * flag the join event itself as having partial state * also, for any new events whose prev-events are partial-stated, note that they will *also* be partial-stated. We don't yet make any attempt to interpret this data, so API calls (and a bunch of other things) are just going to get incorrect data.
2022-03-01Advertise Python 3.10 support in setup.py (#12111)Andrew Morgan2-0/+2
2022-03-01Fix 'Unhandled error in Deferred' (#12089)Richard van der Hoff3-37/+38
* Fix 'Unhandled error in Deferred' Fixes a CRITICAL "Unhandled error in Deferred" log message which happened when a function wrapped with `@cachedList` failed * Minor optimisation to cachedListDescriptor we can avoid re-using `missing`, which saves looking up entries in `deferreds_map`, and means we don't need to copy it. * Improve type annotation on CachedListDescriptor
2022-03-01Improve exception handling for concurrent execution (#12109)Richard van der Hoff5-27/+151
* fix incorrect unwrapFirstError import this was being imported from the wrong place * Refactor `concurrently_execute` to use `yieldable_gather_results` * Improve exception handling in `yieldable_gather_results` Try to avoid swallowing so many stack traces. * mark unwrapFirstError deprecated * changelog
2022-02-28Add type hints to `tests/rest/client` (#12094)Dirk Klimpel5-64/+72
* Add type hints to `tests/rest/client` * update `mypy.ini` * newsfile * add `test_register.py`
2022-02-28Remove the unstable `/spaces` endpoint. (#12073)Patrick Cloke8-802/+46
...and various code supporting it. The /spaces endpoint was from an old version of MSC2946 and included both a Client-Server and Server-Server API. Note that the unstable /hierarchy endpoint (from the final version of MSC2946) is not yet removed.
2022-02-28Move experimental support for MSC3440 to /versions. (#12099)Patrick Cloke3-3/+3
Instead of being part of /capabilities, this matches a change to MSC3440 to properly use these endpoints.
2022-02-28Add type hints to `tests/rest/client` (#12084)Dirk Klimpel12-138/+198
2022-02-28Fix `PushRuleEvaluator` and `Filter` to work on frozendicts (#12100)Richard van der Hoff5-6/+27
* Fix `PushRuleEvaluator` to work on frozendicts frozendicts do not (necessarily) inherit from dict, so this needs to handle them correctly. * Fix event filtering for frozen events Looks like this one was introduced by #11194.
2022-02-28Actually fix bad debug logging rejecting device list & signing key ↵David Robertson3-2/+21
transactions (#12098)
2022-02-28Properly failover for unknown endpoints from Conduit/Dendrite. (#12077)Patrick Cloke2-9/+14
Before this fix, a legitimate 404 from a federation endpoint (e.g. due to an unknown room) would be treated as an unknown endpoint. This could cause unnecessary federation traffic.
2022-02-28Replace assertEquals and friends with non-deprecated versions. (#12092)Patrick Cloke62-889/+888
2022-02-28synctl: print warning if synctl_cache_factor is set in config (#11865)lukasdenk2-0/+9
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2022-02-25Ensure that `get_datastores().main` is typed (#12070)Sean Quah2-1/+3
Signed-off-by: Sean Quah <seanq@element.io>
2022-02-25Minor typing fixes for `synapse/storage/persist_events.py` (#12069)Sean Quah3-23/+26
Signed-off-by: Sean Quah <seanq@element.io>
2022-02-24Add type hints to `tests/rest/client` (#12072)Dirk Klimpel11-102/+160
2022-02-24Add support for MSC3202: sending one-time key counts and fallback key usage ↵reivilibre11-38/+528
states to Application Services. (#11617) Co-authored-by: Erik Johnston <erik@matrix.org>
2022-02-24Fix non-strings in the `event_search` table (#12037)Sean Quah5-11/+173
Don't attempt to add non-string `value`s to `event_search` and add a background update to clear out bad rows from `event_search` when using sqlite. Signed-off-by: Sean Quah <seanq@element.io>
2022-02-23Add documentation for missing worker types. (#11599)Patrick Cloke2-14/+77
And clean-up the endpoints which should be routed to workers.
2022-02-23Add logging to `/sync` for debugging #11916 (#12068)Erik Johnston2-0/+10
2022-02-23Add type hints to `tests/rest/client` (#12066)Dirk Klimpel5-119/+149
2022-02-23Remove more references to `get_datastore` (#12067)Richard van der Hoff4-6/+6
These have snuck in since #12031 was started. Also a couple of other cleanups while we're in the area.
2022-02-23Remove `HomeServer.get_datastore()` (#12031)Richard van der Hoff230-500/+526
The presence of this method was confusing, and mostly present for backwards compatibility. Let's get rid of it. Part of #11733
2022-02-23Rename default branch of complement.sh to main (#12063)Nicolas Werner2-2/+3
The complement.sh script relies on the name of the ref matching the name of the unpacked folder. The branch redirect from renaming the default branch breaks that assumption. Signed-off-by: Nicolas Werner <n.werner@famedly.com>
2022-02-22Remove excess condition on `knock->leave` check (#11900)Travis Ralston2-3/+4
2022-02-22Better error message when failing to request from another process (#12060)Erik Johnston2-1/+4
2022-02-22Implement account status endpoints (MSC3720) (#12001)Brendan Abolivier11-6/+511
See matrix-org/matrix-doc#3720 Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
2022-02-22Prune setup.cfg some more (#12059)David Robertson5-13/+14
* Remove `trial` section from setup.cfg This was added in the initial commit from 2014. I can't see that it does anything. Maybe it's there so that you can run `trial` without any extra args, but if I do that then I just get the `--help` message. * Move flake8's config to its own file
2022-02-22Cap the number of in-flight requests for state from a single group (#11608)reivilibre3-0/+86
2022-02-22Use room version 9 as the default room version (per MSC3589). (#12058)Patrick Cloke3-2/+3
2022-02-22Run `_handle_queued_pdus` as a background process (#12041)Richard van der Hoff2-2/+5
... to ensure it gets a proper log context, mostly.
2022-02-22Fix slow performance of `/logout` in some cases where refresh tokens are in ↵reivilibre4-4/+136
use. The slowness existed since the initial implementation of refresh tokens. (#12056)
2022-02-22Faster joins: Support for calling `/federation/v1/state` (#12013)Richard van der Hoff7-17/+377
This is an endpoint that we have server-side support for, but no client-side support. It's going to be useful for resyncing partial-stated rooms, so let's introduce it.
2022-02-22Fetch images when previewing Twitter URLs. (#11985)AndrewRyanChama3-4/+11
By including "bot" in the User-Agent, which some sites use to decide whether to include additional Open Graph information.
2022-02-22Update changelogErik Johnston1-1/+1
2022-02-22Update changelogErik Johnston1-2/+2
2022-02-22Add more tests for in-flight state query duplication. (#12033)reivilibre2-21/+172
2022-02-22Tidy the building of sdists and wheels (#12051)David Robertson3-28/+4
* Don't build distribution pkgs in tests.yml * Run `release-artifacts` on release branches * Use backend-meta workflow for packaging
2022-02-221.53.0 v1.53.0Erik Johnston3-1/+13
2022-02-22Move isort config to `pyproject.toml` (#12052)David Robertson4-12/+14
2022-02-22Use v3 endpoints for fallback auth (Matrix 1.1) (#12019)Travis Ralston2-4/+5
2022-02-21remote join processing: get create event from state, not auth_chain (#12039)Richard van der Hoff4-5/+8
A follow-up to #12005, in which I apparently missed that there are a bunch of other places that assume the create event is in the auth chain.
2022-02-21Minor typing fixes (#12034)Richard van der Hoff4-16/+19
These started failing in https://github.com/matrix-org/synapse/pull/12031... I'm a bit mystified by how they ever worked.
2022-02-21Add type hints to `synapse/storage/databases/main` (#11984)Dirk Klimpel7-53/+79
2022-02-21Advertise Matrix 1.2 in `/_matrix/client/versions` (#12022)Travis Ralston2-0/+2
Co-authored-by: Patrick Cloke <patrickc@matrix.org>
2022-02-18Document why auth providers aren't validated in the admin API. (#12004)Patrick Cloke4-2/+29
Since it is reasonable to give a future or past auth provider, which might not be in the current configuration.
2022-02-18Track and deduplicate in-flight requests to `_get_state_for_groups`. (#10870)reivilibre3-25/+312
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-18Upgrade mypy to version 0.931 (#12030)Sean Quah9-19/+33
Upgrade mypy to 0.931, mypy-zope to 0.3.5 and fix new complaints.
2022-02-18Fix bug in `StateFilter.return_expanded()` and add some tests. (#12016)reivilibre3-1/+117
2022-02-18Advertise Matrix 1.1 in `/_matrix/client/versions` (#12020)Travis Ralston2-0/+2
2022-02-18Use stable MSC3069 `is_guest` flag on `/whoami`. (#12021)Travis Ralston3-3/+9
Keeping backwards compatibility with the unstable flag for now.
2022-02-18Fix 500 error with Postgres when looking backwards with the MSC3030 ↵Eric Eastwood2-1/+2
`/timestamp_to_event` endpoint (#12024)
2022-02-18Update the olddeps CI check to use an old version of markupsafe (#12025)Brendan Abolivier2-0/+4
2022-02-17Remove unstable MSC3283 flags (#12018)Erik Johnston3-17/+1
Fixes #11962
2022-02-17Allow modules to set a display name on registration (#12009)Brendan Abolivier6-34/+195
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-17Faster joins: parse msc3706 fields in send_join response (#12011)Richard van der Hoff6-33/+140
Part of my work on #11249: add code to handle the new fields added in MSC3706.
2022-02-17Configure `tox` to use `venv` (#12015)Richard van der Hoff3-1/+9
As the comment says, virtualenv is a pile of fail.
2022-02-17Remove support for the legacy structured logging configuration. (#12008)Patrick Cloke5-175/+24
2022-02-17`send_join` response: get create event from `state`, not `auth_chain` (#12005)Richard van der Hoff2-1/+2
msc3706 proposes changing the `/send_join` response: > Any events returned within `state` can be omitted from `auth_chain`. Currently, we rely on `m.room.create` being returned in `auth_chain`, but since the `m.room.create` event must necessarily be part of the state, the above change will break this. In short, let's look for `m.room.create` in `state` rather than `auth_chain`.
2022-02-17Prevent duplicate push notifications for room reads (#11835)lukasdenk3-66/+71
2022-02-16Explain the meaning of spam checker callbacks' return values (#12003)David Robertson2-13/+28
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-16Fix a typo in a comment.Patrick Cloke1-1/+1
2022-02-16Limit concurrent AS joins (#11996)Brendan Abolivier2-19/+28
Initially introduced in matrix-org-hotfixes by e5537cf (and tweaked by later commits). Fixes #11995 See also #4826
2022-02-15Optimise calculating device_list changes in `/sync`. (#11974)Erik Johnston4-15/+126
For users with large accounts it is inefficient to calculate the set of users they share a room with (and takes a lot of space in the cache). Instead we can look at users whose devices have changed since the last sync and check if they share a room with the syncing user.
2022-02-15`_auth_and_persist_outliers`: drop events we have already seen (#11994)Richard van der Hoff2-24/+21
We already have two copies of this code, in 2/3 of the callers of `_auth_and_persist_outliers`. Before I add a third, let's push it down.
2022-02-15Track cache invalidations (#12000)Erik Johnston4-1/+10
Currently we only track evictions due to size or time constraints.
2022-02-15Fix incorrect `get_rooms_for_user` for remote user (#11999)Erik Johnston3-11/+124
When the server leaves a room the `get_rooms_for_user` cache is not correctly invalidated for the remote users in the room. This means that subsequent calls to `get_rooms_for_user` for the remote users would incorrectly include the room (it shouldn't be included because the server no longer knows anything about the room).
2022-02-15Docker: remove `VOLUME` directive (#11997)Richard van der Hoff2-2/+1
The driver for this is to stop Complement complaining about it, but as far as I can tell it was pointless and needed to go away anyway. I'm a bit unclear about what exactly VOLUME does, but I think what it means is that, if you don't override it with an explicit -v argument, then docker run will create a temporary volume, and copy things into it. The temporary volume is then deleted when the container finishes. That only sounds useful if your image has something to copy into it (otherwise you may as well just use the default root filesystem), and our image notably doesn't copy anything into /data. So... this wasn't doing anything, except annoying Complement?
2022-02-15Refactor search code to reduce function size. (#11991)Patrick Cloke3-226/+435
Splits the search code into a few logical functions instead of a single unreadable function. There are also a few additional changes for readability. After refactoring it was clear to see there were some unused and unnecessary variables, which were simplified.
2022-02-15Fix incorrect thread summaries when the latest event is edited. (#11992)Patrick Cloke5-31/+107
If the latest event in a thread was edited than the original event content was included in bundled aggregation for threads instead of the edited event content.
2022-02-15Add some tests for propagation of device list changes between local users ↵Andrew Morgan4-3/+163
(#11972)
2022-02-15Update CHANGES.md v1.53.0rc1Sean Quah1-7/+7
2022-02-151.53.0rc1Sean Quah60-58/+86
2022-02-14Revert "Pin to frozendict<2.1.2 (#11625)" and allow frozendict>2.1.2 (#11969)Pascal Bach2-1/+2
This reverts commit 2bf31f7807c7a0c229170803c97090d612dc16f9. Signed-off-by: Pascal Bach <pascal.bach@nextrem.ch>
2022-02-14Fix M_WRONG_ROOM_KEYS_VERSION error not including `current_version` field ↵Michael Telatynski2-0/+4
(#11988) Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2022-02-14Note when unstable MSC3283 prefixes will be removed (#11989)Andrew Morgan2-1/+2
2022-02-14remove empty file, reword/rename newsfragment, and add line to upgrade docH. Shay4-1/+2
2022-02-14 Require that modules register their callbacks using keyword arguments. (#11975)Patrick Cloke2-0/+7
To allow for easier backwards/forwards compatibility by making it easier to add/remove callbacks.
2022-02-14Use version string helper from matrix-common (#11979)David Robertson13-112/+42
* Require latest matrix-common * Use the common function
2022-02-12Notify users, rather than rooms, of device list updates (#11905)Andrew Morgan2-5/+4
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-12Implement MSC3706: partial state in `/send_join` response (#11967)Richard van der Hoff7-21/+262
* Make `get_auth_chain_ids` return a Set It has a set internally, and a set is often useful where it gets used, so let's avoid converting to an intermediate list. * Minor refactors in `on_send_join_request` A little bit of non-functional groundwork * Implement MSC3706: partial state in /send_join response
2022-02-11Enable cache time-based expiry by default (#11849)Shay5-11/+50