1
0
Fork 0
mirror of https://github.com/element-hq/synapse.git synced 2025-03-31 03:45:13 +00:00
Commit graph

60 commits

Author SHA1 Message Date
Quentin Gliech
7d52ce7d4b
Format files with Ruff ()
I thought ruff check would also format, but it doesn't.

This runs ruff format in CI and dev scripts. The first commit is just a
run of `ruff format .` in the root directory.
2024-09-02 12:39:04 +01:00
Erik Johnston
23740eaa3d
Correctly mention previous copyright ()
During the migration the automated script to update the copyright
headers accidentally got rid of some of the existing copyright lines.
Reinstate them.
2024-01-23 11:26:48 +00:00
Erik Johnston
8a50312099
Move the rust stubs inline for better IDE integration ()
At least for vscode this allows click through / type checking / syntax
highlighting.
2023-12-21 13:31:36 +00:00
Patrick Cloke
f84da3c32e
Add a cache around server ACL checking ()
* Pre-compiles the server ACLs onto an object per room and
  invalidates them when new events come in.
* Converts the server ACL checking into Rust.
2023-09-26 11:57:50 -04:00
Patrick Cloke
17800a0e97
Implement MSC4028: push all encrypted events. ()
This unstable push rule is implemented behind an experimental
configuration flag.
2023-09-26 11:52:19 -04:00
Patrick Cloke
33fa82a34c
Stabilize support for MSC3958 (suppress notifications from edits). () 2023-08-23 13:22:34 -04:00
Patrick Cloke
f880e64b11
Stabilize support for MSC3952: Intentional mentions. () 2023-06-06 09:11:07 +01:00
Jason Little
c835befd10
Add Unix socket support for Redis connections ()
Adds a new configuration setting to connect to Redis via a Unix
socket instead of over TCP. Disabled by default.
2023-05-26 15:28:39 -04:00
David Robertson
3b0083c92a
Use immutabledict instead of frozendict ()
Additionally:

* Consistently use `freeze()` in test

---------

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2023-03-22 17:15:34 +00:00
Patrick Cloke
820f02b70b
Stabilize support for MSC3966: event_property_contains push condition. ()
This removes the configuration flag & updates the identifiers to
use the stable version.
2023-03-07 10:06:02 -05:00
Patrick Cloke
fd9cadcf53
Stabilize support for MSC3758: event_property_is push condition ()
This removes the configuration flag & updates the identifiers to
use the stable version.
2023-03-06 08:38:01 -05:00
Patrick Cloke
8ef324ea6f
Update intentional mentions (MSC3952) to depend on exact_event_property_contains (MSC3966). ()
This replaces the specific `is_user_mention` push rule condition
used in MSC3952 with the generic `exact_event_property_contains`
push rule condition from MSC3966.
2023-03-02 08:30:51 -05:00
dependabot[bot]
9bb2eac719
Bump black from 22.12.0 to 23.1.0 () 2023-02-22 15:29:09 -05:00
Patrick Cloke
979f237b28
Update intentional mentions (MSC3952) to depend on exact_event_match (MSC3758). ()
This replaces the specific `is_room_mention` push rule condition
used in MSC3952 with the generic `exact_event_match` push rule
condition from MSC3758.

No functionality changes due to this.
2023-02-16 09:51:22 -05:00
Patrick Cloke
119e0795a5
Implement MSC3966: Add a push rule condition to search for a value in an array. ()
The `exact_event_property_contains` condition can be used to
search for a value inside of an array.
2023-02-14 14:02:19 -05:00
Patrick Cloke
14be78d492
Support for MSC3758: exact_event_match push condition ()
This specifies to search for an exact value match, instead of
string globbing. It only works across non-compound JSON values
(null, boolean, integer, and strings).
2023-02-10 12:37:07 -05:00
Patrick Cloke
b2d97bac09
Implement MSC3958: suppress notifications from edits ()
Co-authored-by: Brad Murray <brad@beeper.com>
Co-authored-by: Nick Barrett <nick@beeper.com>

Copy the suppress_edits push rule from Beeper to implement MSC3958.

9415a1284b/rust/src/push/base_rules.rs (L98-L114)
2023-02-03 14:31:14 -05:00
Patrick Cloke
52700a0bcf
Support the backwards compatibility features in MSC3952. ()
If the feature is enabled and the event has a `m.mentions` property,
skip processing of the legacy mentions rules.
2023-02-03 16:28:20 +00:00
Patrick Cloke
8e9fc28c6a
Reload the pyo3-log config when the Python logging config changes. ()
Since pyo3-log is initialized very early in the Python start-up
it caches the state of the loggers before they're fully initialized
(and thus are essentially disabled). Whenever we reload the
logging configuration we now also tell pyo3-log to discard
any cached logging configuration it has; it will refetch the
current logging configuration from Python at the next point
it logs.

This fixes Rust log lines not appearing in the homeserver logs.
2023-02-03 08:27:31 -05:00
Patrick Cloke
2a51f3ec36
Implement MSC3952: Intentional mentions ()
MSC3952 defines push rules which searches for mentions in a list of
Matrix IDs in the event body, instead of searching the entire event
body for display name / local part.

This is implemented behind an experimental configuration flag and
does not yet implement the backwards compatibility pieces of the MSC.
2023-01-27 10:16:21 -05:00
Andrew Morgan
a7b54ca8d8
Implement MSC3930: polls push rules () 2023-01-19 12:47:10 +00:00
Erik Johnston
b50c008453
Re-enable some linting ()
* Re-enable some linting

* Newsfile

* Remove comment
2023-01-12 10:52:07 +00:00
Patrick Cloke
071f8b0f9b
Factor out common code in tests and fix comments. () 2023-01-11 13:36:41 -05:00
Patrick Cloke
7f2cabf271
Fix-up type hints for tests.push module. () 2023-01-11 07:35:40 -05:00
Patrick Cloke
7010a3d015
Switch to ruff instead of flake8. ()
ruff is a flake8-compatible Python linter written in Rust.
It supports the flake8 plugins that we use and is significantly
faster in testing.
2022-12-21 13:05:21 -05:00
reivilibre
62ed877433
Improve validation of field size limits in events. () 2022-12-13 13:19:19 +00:00
Brendan Abolivier
2a3cd59dd0
Add optional ICU support for user search ()
Fixes 

This change uses ICU (International Components for Unicode) to improve boundary detection in user search.

This change also adds a new dependency on libicu-dev and pkg-config for the Debian packages, which are available in all supported distros.
2022-12-12 13:21:17 +01:00
Travis Ralston
9ccc09fe9e
Support MSC1767's content.body behaviour; Add base rules from MSC3933 ()
* Support MSC1767's `content.body` behaviour in push rules

* Add the base rules from MSC3933

* Changelog entry

* Flip condition around for finding `m.markup`

* Remove forgotten import
2022-11-28 18:02:41 -07:00
Travis Ralston
3da6450327
Initial support for MSC3931: Room version push rule feature flags ()
* Add support for MSC3931: Room Version Supports push rule condition

* Create experimental flag for future work, and use it to gate MSC3931

* Changelog entry
2022-11-28 16:29:53 -07:00
Andrew Morgan
f844b470f6
Fix stub return type of PushRuleEvaluator.run () 2022-11-16 12:03:05 +00:00
DeepBlueV7.X
2d0ba3f89a
Implementation for MSC3664: Pushrules for relations () 2022-10-25 14:38:01 +01:00
Patrick Cloke
09be8ab5f9
Remove the experimental implementation of MSC3772. ()
MSC3772 has been abandoned.
2022-10-12 06:26:39 -04:00
Patrick Cloke
e70c6b720e
Disable pushing for server ACL events (MSC3786). ()
Switches to the stable identifier for MSC3786 and enables it
by default.

This disables pushes of m.room.server_acl events.
2022-10-04 07:08:27 -04:00
Erik Johnston
ebd9e2dac6
Implement push rule evaluation in Rust. () 2022-09-29 16:12:09 +01:00
Erik Johnston
42d261c32f
Port the push rule classes to Rust. () 2022-09-20 12:10:31 +01:00
Erik Johnston
ebfeac7c5d
Check if Rust lib needs rebuilding. ()
This protects against the common mistake of failing to remember to rebuild Rust code after making changes.
2022-09-12 10:03:42 +00:00
Erik Johnston
c9b7e97355
Add a stub Rust crate () 2022-09-06 19:01:37 +01:00
David Robertson
2607b3e181
Update mypy to 0.950 and fix complaints () 2022-05-06 12:35:20 +00:00
David Robertson
6463244375
Remove unused # type: ignores ()
Over time we've begun to use newer versions of mypy, typeshed, stub
packages---and of course we've improved our own annotations. This makes
some type ignore comments no longer necessary. I have removed them.

There was one exception: a module that imports `select.epoll`. The
ignore is redundant on Linux, but I've kept it ignored for those of us
who work on the source tree using not-Linux. ()

I'm more interested in the config line which enforces this. I want
unused ignores to be reported, because I think it's useful feedback when
annotating to know when you've fixed a problem you had to previously
ignore.

* Installing extras before typechecking

Lacking an easy way to install all extras generically, let's bite the bullet and
make install the hand-maintained `all` extra before typechecking.

Now that https://github.com/matrix-org/backend-meta/pull/6 is merged to
the release/v1 branch.
2022-04-27 14:03:44 +01:00
David Robertson
8bac3e0435
disallow-untyped-defs in docker and stubs directories () 2022-04-25 12:32:35 +00:00
Patrick Cloke
d8bab6793c
Fix incorrect type hints for txredis. ()
Some properties were marked as RedisProtocol instead of ConnectionHandler,
which wraps RedisProtocol instance(s).
2022-03-08 07:26:05 -05:00
Sean Quah
e6acd3cf4f
Upgrade mypy to version 0.931 ()
Upgrade mypy to 0.931, mypy-zope to 0.3.5 and fix new complaints.
2022-02-18 15:57:26 +00:00
Sean Quah
0147b3de20
Add missing type hints to synapse.logging.context () 2021-12-14 17:35:28 +00:00
reivilibre
524b8ead77
Add types to synapse.util. () 2021-09-10 17:03:18 +01:00
Erik Johnston
92b6ac31b2
Speed up MultiWriterIdGenerator when lots of IDs are in flight. () 2021-09-03 18:23:46 +01:00
Jonathan de Jong
4b965c862d
Remove redundant "coding: utf-8" lines ()
Part of 

Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now.

`Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
2021-04-14 15:34:27 +01:00
Patrick Cloke
d29b71aa50
Fix remaining mypy issues due to Twisted upgrade. () 2021-03-15 11:14:39 -04:00
Richard van der Hoff
464e5da7b2
Add logging for redis connection setup () 2021-03-11 18:35:09 +00:00
Eric Eastwood
0a00b7ff14
Update black, and run auto formatting over the codebase ()
- Update black version to the latest
 - Run black auto formatting over the codebase
    - Run autoformatting according to [`docs/code_style.md
`](80d6dc9783/docs/code_style.md)
 - Update `code_style.md` docs around installing black to use the correct version
2021-02-16 22:32:34 +00:00
Erik Johnston
dd8da8c5f6
Precompute joined hosts and store in Redis () 2021-01-26 13:57:31 +00:00