Commit Graph
581 Commits
Author SHA1 Message Date
Eric Eastwood ca28da9663 Merge branch 'master' into develop 2026-10-28 13:31:23 -05:00
Eric Eastwood 6295960ba7 Merge branch 'release-v1.164' 2026-10-28 13:31:17 -05:00
Eric Eastwood 167b7ea3bc 1.164.1 2026-10-28 13:06:18 -05:00
Eric Eastwood bde63a807e Merge branch 'master' into develop
Conflicts:
	CHANGES.md
	debian/changelog
	pyproject.toml
2026-10-27 11:28:02 -05:00
Eric Eastwood 73c6acadca Merge branch 'release-v1.164'
Conflicts:
	CHANGES.md
	debian/changelog
	pyproject.toml
2026-10-27 11:27:20 -05:00
Eric Eastwood 1b76ddc6cb 1.164.0 2026-10-27 11:03:25 -05:00
Eric Eastwood 4cece59c30 Drop support for Python 3.10 (#20359)
Fix https://github.com/element-hq/synapse/issues/20041

Keywords:

 - `3.10`
 - `py310`
 - `cp310`
2026-10-26 16:26:19 -05:00
Eric Eastwood 8d60450b33 Merge branch 'release-v1.164' into develop
Conflicts:
	CHANGES.md
	debian/changelog
2026-10-23 15:19:03 -05:00
Eric Eastwood 0a32d04b11 1.164.0rc3 2026-10-23 14:54:35 -05:00
Eric Eastwood 62a411da7e 1.163.2 2026-10-23 14:50:01 -05:00
Eric Eastwood 7ea942a5fe Merge branch 'release-v1.164' into develop
Conflicts:
	CHANGES.md
	debian/changelog
2026-10-22 14:51:16 -05:00
Eric Eastwood 06a1c55e56 1.164.0rc2 2026-10-22 14:32:23 -05:00
Eric Eastwood 603fb5bb39 Merge branch 'master' into develop
Conflicts:
	CHANGES.md
	debian/changelog
	pyproject.toml
2026-10-22 14:28:08 -05:00
Eric Eastwood 56913c3d71 1.163.1 2026-10-22 14:01:36 -05:00
Eric Eastwood 72c6a2cfb9 1.164.0rc1 2026-10-20 09:47:13 -05:00
Andrew Morgan 98735bc6db Remove remaining references to lxml python dependency, which is no longer required (#20356) 2026-10-15 12:54:54 +00:00
Eric Eastwood 193cf9466f 1.163.0 2026-10-14 09:22:00 -05:00
Eric Eastwood 2c52f9820e Constrain txredisapi version to avoid incompatible breaking changes in txredisapi@1.6.0 (#20354)
Fix https://github.com/element-hq/synapse/issues/20347

See
https://github.com/element-hq/synapse/issues/20347#issuecomment-6154861014
for more details.

Caused by the latest release of `txredisapi@1.6.0` (2026-10-09) which included https://github.com/IlyaSkriblovsky/txredisapi/pull/162

> May break compatibility with some specific user code because of inheritance changes.

And in the changelog:

> ### Incompatible changes
> 
> - Connections are maintained by
>   `twisted.application.internet.ClientService` now, and `RedisFactory` is no
>   longer a `ReconnectingClientFactory`. Code connecting a factory on its own
>   with `reactor.connectTCP()` or `twisted.application.internet.TCPClient` has
>   to use `factory.startConnecting(endpoint)` instead - see `examples/subscriber.py`
> 
> - `factory.continueTrying = False` is replaced by `factory.stopTrying()`;
>   `retry()`, `resetDelay()` and `delay` are gone. `maxDelay`, `initialDelay`,
>   `factor` and `jitter` still configure the backoff and are used by the new
>   `RedisFactory.retryDelay()`
> 
> - `SentinelConnectionFactory.try_to_connect()` is gone: the address of the
>   master or of a slave is discovered by the endpoint before every attempt.
>   Subclasses overriding `try_to_connect()`, `clientConnectionFailed()` or
>   `clientConnectionLost()` have no effect anymore
>
> [...]
>
> *-- [`IlyaSkriblovsky/txredisapi` -> *Release 1.6.0 (2026-10-09)*](https://github.com/IlyaSkriblovsky/txredisapi/blob/f844759b8aabc689eb87bf300ed3c675b84c3608/CHANGELOG.md#L31-L35)*




### Testing strategy

1. Check out the PR: `git checkout
madlittlemods/20347-txredisapi-constraint`
 1. Install into a fresh scratch venv:
     ```shell
    rm -rf /tmp/venv && python3 -m venv /tmp/venv
    /tmp/venv/bin/pip install '.[all]'
/tmp/venv/bin/pip show txredisapi | grep Version # expect 1.5.0 with
this PR
    ```
 1. One-time setup: make a homeserver config with Redis enabled:
    ```shell
    mkdir -p /tmp/hs && cd /tmp/hs
/tmp/venv/bin/python -m synapse.app.homeserver --server-name repro.test
\
        -c homeserver.yaml --generate-config --report-stats=no
printf '\nredis:\n enabled: true\n host: localhost\n' >> homeserver.yaml
    cd -
    ```
- On my machine, I also have to remove the IPv6 bind for `::1`, so `sed
-i '/^ - ::1$/d' /tmp/hs/homeserver.yaml`
1. Run Synapse: `/tmp/venv/bin/python -P -m synapse.app.homeserver -c
/tmp/hs/homeserver.yaml`
- It should run successfully with this PR. You can also check
`/tmp/hs/homeserver.log` for logs.

Repeat these steps on `develop` to see the original failure described in
https://github.com/element-hq/synapse/issues/20347 (`AttributeError:
'super' object has no attribute 'startedConnecting'. Did you mean:
'startConnecting'?`)
2026-10-14 08:47:40 -05:00
Eric Eastwood 61c1f96011 1.163.0rc1 2026-10-06 10:12:33 -05:00
4f5524043c Use beautifulsoup4 instead of lxml for URL previews (#19301)
Use `beautifulsoup4` instead of `lxml` for URL previews. This offers
some nicer APIs when parsing HTML and avoids using `libxml`, [which is
unmaintained](https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba).

I haven’t done a full regression against commonly previewed sites, but I
expect this will give similar (or better) results.

beautiulsoup also handles decoding the charset for us, which is less
custom code.

---------

Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2026-10-02 15:46:34 +01:00
Eric Eastwood 63dc0cbfe5 1.162.0 2026-09-29 11:15:31 -05:00
Eric Eastwood 66bfc41864 1.162.0rc1 2026-09-22 13:52:38 -05:00
Devon HudsonandClaude Sonnet 5 f7c16d0148 Support configuring a username for Redis connections (#20187)
Adds a `redis.username` config option.

Details:
A `username` without a `password` (or `password_path`) is refused at
startup. Redis has no wire form for a username without a password, and
txredisapi only sends `AUTH` when a password is set, so the username
would otherwise be silently ignored. An explicitly empty password is
accepted, since that is how a `nopass` ACL user is configured.

This relies on txredisapi 1.4.12, the first release to accept a
`username` kwarg. That upstream support was contributed by @karolyi
specifically to unblock this.

Fixes #19238.


### Pull Request Checklist

<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->

* [X] Pull request is based on the develop branch
* [X] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
  - Use markdown where necessary, mostly for `code blocks`.
  - End with either a period (.) or an exclamation mark (!).
  - Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [X] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 17:16:47 +00:00
Eric Eastwood c343c78182 Merge branch 'master' into develop 2026-09-15 12:10:37 -05:00
Eric Eastwood a33b01f330 1.161.0 2026-09-15 11:42:44 -05:00
Andrew Morgan 177f8b5b76 Fix htmltest CI; put docs dependencies in pyproject.toml (#20216) 2026-09-15 10:58:08 +00:00
Eric Eastwood 2b4108d3e3 1.161.0rc1 2026-09-08 15:34:53 -05:00
Eric Eastwood 92fb8a06dc 1.160.0 2026-09-02 16:23:38 -05:00
Eric Eastwood 955d0cf70d 1.160.0rc2 2026-08-31 17:25:54 -05:00
Eric Eastwood 37b59059ed 1.160.0rc1 2026-08-25 11:18:21 -05:00
Eric Eastwood ae30e4fb3c 1.159.0 2026-08-18 11:07:08 -05:00
Eric Eastwood c3b044b45a 1.159.0rc1 2026-08-11 11:25:53 -05:00
Eric Eastwood 7a3e98b6f7 1.158.0 2026-08-04 12:53:51 -05:00
Eric Eastwood ade9176934 1.158.0rc1 2026-07-30 09:54:20 -05:00
Olivier 'reivilibre 0c709bbb78 1.157.2 2026-07-28 14:02:12 +01:00
Eric Eastwood 2b5a0623ba 1.157.1 2026-07-22 09:31:47 -05:00
Eric Eastwood e0f251ce2c 1.157.0 2026-07-21 10:21:37 -05:00
Eric Eastwood 72be9b5e17 1.157.0rc1 2026-07-14 16:20:56 -05:00
Olivier 'reivilibre be8d900438 1.156.0 2026-07-07 14:20:45 +01:00
Olivier 'reivilibre a247001400 1.156.0rc1 2026-06-30 14:41:26 +01:00
Will Hunt 2bb3aac839 Add metric to count number of non-deactivated users. (#19848)
This reports the total count of users (split by appservice) which is
meant to be the monthless counterpart to the MAU metric.

Context:

> So this is largely for billing purposes and wanting to know the change
in the number of users. If a user is deactivated then we no longer want
to count them. Consumers *might* want to count appservice users, and
maybe count them based on the service (perhaps you change more for users
under bridge X or bridge Y).
>
> *-- https://github.com/element-hq/synapse/pull/19848#discussion_r3402216234*
2026-06-25 11:57:36 -05:00
Olivier 'reivilibre 3fad636880 1.155.0 2026-06-16 14:48:25 +01:00
Olivier 'reivilibre f53f104449 1.155.0rc1 2026-06-09 14:59:48 +01:00
Olivier 'reivilibre 102fb6e8ae 1.154.0 2026-06-04 14:16:30 +01:00
Olivier 'reivilibre 82d66fa0f1 1.154.0rc1 2026-05-27 12:27:43 +01:00
Oleg Girko be03be7b50 Partially revert "Bump attrs from 25.4.0 to 26.1.0 (#19684)" (#19789)
Accidental bump broke build for Fedora and RHEL.

This reverts commit 2e9d6f7f35.

As discussed in the [Synapse Package
Maintainers](https://matrix.to/#/!rh9Uxk45AsPongyP3ypgpsCmuIufiggD6mDXFWh4_FM/$0mdulZEyJFdI6bwS8GFwYnFt-zmpyCyx2DwcA8JyuY8?via=jki.re&via=matrix.org&via=element.io)
room (private)
2026-05-20 11:47:43 +01:00
Olivier 'reivilibre 7b1c4da5df 1.153.0 2026-05-19 14:13:03 +01:00
Olivier 'reivilibre 0ff50720d8 1.153.0rc3 2026-05-15 11:43:12 +01:00
Olivier 'reivilibre f109c25960 1.153.0rc2 2026-05-13 12:01:11 +01:00
Olivier 'reivilibre 0e508ba80f 1.153.0rc1 2026-05-08 13:22:15 +01:00