Synapse 1.31.0rc1 (2021-03-30)
Note: As announced in v1.25.0, and in line with the deprecation policy for platform dependencies, this is the last release to support Python 3.5 and PostgreSQL 9.5. Future versions of Synapse will require Python 3.6+ and PostgreSQL 9.6+.
This is also the last release that the Synapse team will be publishing packages for Debian Stretch and Ubuntu Xenial.
Features
- Add support to OpenID Connect login for requiring attributes on the
userinfo
response. Contributed by Hubbte King. (#9609) - Add initial experimental support for a "space summary" API. (#9643, #9652, #9653)
- Add support for the busy presence state as described in MSC3026. (#9644)
- Add support for credentials for proxy authentication in the
HTTPS_PROXY
environment variable. (#9657)
Bugfixes
- Fix a longstanding bug that could cause issues when editing a reply to a message. (#9585)
- Fix the
/capabilities
endpoint to returnm.change_password
as disabled if the local password database is not used for authentication. Contributed by @dklimpel. (#9588) - Check if local passwords are enabled before setting them for the user. (#9636)
- Fix a bug where federation sending can stall due to
concurrent access
database exceptions when it falls behind. (#9639) - Fix a bug introduced in Synapse 1.30.1 which meant the suggested
pip
incantation to install an updatedcryptography
was incorrect. (#9699)
Updates to the Docker image
- Speed up Docker builds and make it nicer to test against Complement while developing (install all dependencies before copying the project). (#9610)
- Include opencontainers labels in the Docker image. (#9612)
Improved Documentation
- Clarify that
register_new_matrix_user
is present also when installed via non-pip package. (#9074) - Update source install documentation to mention platform prerequisites before the source install steps. (#9667)
- Improve worker documentation for fallback/web auth endpoints. (#9679)
- Update the sample configuration for OIDC authentication. (#9695)
Internal Changes
- Preparatory steps for removing redundant
outlier
data fromevent_json.internal_metadata
column. (#9411) - Add type hints to the caching module. (#9442)
- Introduce flake8-bugbear to the test suite and fix some of its lint violations. (#9499, #9659)
- Add additional type hints to the Homeserver object. (#9631, #9638, #9675, #9681)
- Only save remote cross-signing and device keys if they're different from the current ones. (#9634)
- Rename storage function to fix spelling and not conflict with another function's name. (#9637)
- Improve performance of federation catch up by sending the latest events in the room to the remote, rather than just the last event sent by the local server. (#9640, #9664)
- In the
federation_client
commandline client, stop automatically adding the URL prefix, so that servlets on other prefixes can be tested. (#9645) - In the
federation_client
commandline client, handle inlinesigning_key
s inhomeserver.yaml
. (#9647) - Fixed some antipattern issues to improve code quality. (#9649)
- Add a storage method for pulling all current user presence state from the database. (#9650)
- Import
HomeServer
from the proper module. (#9665) - Increase default join ratelimiting burst rate. (#9674)
- Add type hints to third party event rules and visibility modules. (#9676)
- Bump mypy-zope to 0.2.13 to fix "Cannot determine consistent method resolution order (MRO)" errors when running mypy a second time. (#9678)
- Use interpreter from
$PATH
via/usr/bin/env
instead of absolute paths in various scripts. (#9689) - Make it possible to use
dmypy
. (#9692) - Suppress "CryptographyDeprecationWarning: int_from_bytes is deprecated". (#9698)
- Use
dmypy run
in lint script for improved performance in type-checking while developing. (#9701) - Fix undetected mypy error when using Python 3.6. (#9703)
- Fix type-checking CI on develop. (#9709)