Skip to content

Commit

Permalink
Merge branch 'develop' into shay/account_suspension_pt_2
Browse files Browse the repository at this point in the history
  • Loading branch information
H-Shay authored Jun 21, 2024
2 parents 4b4180b + adeedb7 commit b16bac9
Show file tree
Hide file tree
Showing 159 changed files with 5,764 additions and 1,196 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
- name: Build and push all platforms
id: build-and-push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
push: true
labels: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs-pr-netlify.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
# There's a 'download artifact' action, but it hasn't been updated for the workflow_run action
# (https://github.com/actions/download-artifact/issues/60) so instead we get this mess:
- name: 📥 Download artifact
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # v6
with:
workflow: docs-pr.yaml
run_id: ${{ github.event.workflow_run.id }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, macos-11]
os: [ubuntu-20.04, macos-12]
arch: [x86_64, aarch64]
# is_pr is a flag used to exclude certain jobs from the matrix on PRs.
# It is not read by the rest of the workflow.
Expand All @@ -112,9 +112,9 @@ jobs:
exclude:
# Don't build macos wheels on PR CI.
- is_pr: true
os: "macos-11"
os: "macos-12"
# Don't build aarch64 wheels on mac.
- os: "macos-11"
- os: "macos-12"
arch: aarch64
# Don't build aarch64 wheels on PR CI.
- is_pr: true
Expand All @@ -130,7 +130,7 @@ jobs:
python-version: "3.x"

- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.16.2
run: python -m pip install cibuildwheel==2.19.1

- name: Set up QEMU to emulate aarch64
if: matrix.arch == 'aarch64'
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,9 @@ jobs:
volumes:
- ${{ github.workspace }}:/src
env:
# If this is a pull request to a release branch, use that branch as default branch for sytest, else use develop
# This works because the release script always create a branch on the sytest repo with the same name as the release branch
SYTEST_DEFAULT_BRANCH: ${{ startsWith(github.base_ref, 'release-') && github.base_ref || 'develop' }}
SYTEST_BRANCH: ${{ github.head_ref }}
POSTGRES: ${{ matrix.job.postgres && 1}}
MULTI_POSTGRES: ${{ (matrix.job.postgres == 'multi-postgres') || '' }}
Expand Down
86 changes: 86 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,89 @@
# Synapse 1.109.0 (2024-06-18)

### Internal Changes

- Fix the building of binary wheels for macOS by switching to macOS 12 CI runners. ([\#17319](https://github.com/element-hq/synapse/issues/17319))




# Synapse 1.109.0rc3 (2024-06-17)

### Bugfixes

- When rolling back to a previous Synapse version and then forwards again to this release, don't require server operators to manually run SQL. ([\#17305](https://github.com/element-hq/synapse/issues/17305), [\#17309](https://github.com/element-hq/synapse/issues/17309))

### Internal Changes

- Use the release branch for sytest in release-branch PRs. ([\#17306](https://github.com/element-hq/synapse/issues/17306))




# Synapse 1.109.0rc2 (2024-06-11)

### Bugfixes

- Fix bug where one-time-keys were not always included in `/sync` response when using workers. Introduced in v1.109.0rc1. ([\#17275](https://github.com/element-hq/synapse/issues/17275))
- Fix bug where `/sync` could get stuck due to edge case in device lists handling. Introduced in v1.109.0rc1. ([\#17292](https://github.com/element-hq/synapse/issues/17292))




# Synapse 1.109.0rc1 (2024-06-04)

### Features

- Add the ability to auto-accept invites on the behalf of users. See the [`auto_accept_invites`](https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#auto-accept-invites) config option for details. ([\#17147](https://github.com/element-hq/synapse/issues/17147))
- Add experimental [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/pull/3575) Sliding Sync `/sync/e2ee` endpoint for to-device messages and device encryption info. ([\#17167](https://github.com/element-hq/synapse/issues/17167))
- Support [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/issues/3916) by adding unstable media endpoints to `/_matrix/client`. ([\#17213](https://github.com/element-hq/synapse/issues/17213))
- Add logging to tasks managed by the task scheduler, showing CPU and database usage. ([\#17219](https://github.com/element-hq/synapse/issues/17219))

### Bugfixes

- Fix deduplicating of membership events to not create unused state groups. ([\#17164](https://github.com/element-hq/synapse/issues/17164))
- Fix bug where duplicate events could be sent down sync when using workers that are overloaded. ([\#17215](https://github.com/element-hq/synapse/issues/17215))
- Ignore attempts to send to-device messages to bad users, to avoid log spam when we try to connect to the bad server. ([\#17240](https://github.com/element-hq/synapse/issues/17240))
- Fix handling of duplicate concurrent uploading of device one-time-keys. ([\#17241](https://github.com/element-hq/synapse/issues/17241))
- Fix reporting of default tags to Sentry, such as worker name. Broke in v1.108.0. ([\#17251](https://github.com/element-hq/synapse/issues/17251))
- Fix bug where typing updates would not be sent when using workers after a restart. ([\#17252](https://github.com/element-hq/synapse/issues/17252))

### Improved Documentation

- Update the LemonLDAP documentation to say that claims should be explicitly included in the returned `id_token`, as Synapse won't request them. ([\#17204](https://github.com/element-hq/synapse/issues/17204))

### Internal Changes

- Improve DB usage when fetching related events. ([\#17083](https://github.com/element-hq/synapse/issues/17083))
- Log exceptions when failing to auto-join new user according to the `auto_join_rooms` option. ([\#17176](https://github.com/element-hq/synapse/issues/17176))
- Reduce work of calculating outbound device lists updates. ([\#17211](https://github.com/element-hq/synapse/issues/17211))
- Improve performance of calculating device lists changes in `/sync`. ([\#17216](https://github.com/element-hq/synapse/issues/17216))
- Move towards using `MultiWriterIdGenerator` everywhere. ([\#17226](https://github.com/element-hq/synapse/issues/17226))
- Replaces all usages of `StreamIdGenerator` with `MultiWriterIdGenerator`. ([\#17229](https://github.com/element-hq/synapse/issues/17229))
- Change the `allow_unsafe_locale` config option to also apply when setting up new databases. ([\#17238](https://github.com/element-hq/synapse/issues/17238))
- Fix errors in logs about closing incorrect logging contexts when media gets rejected by a module. ([\#17239](https://github.com/element-hq/synapse/issues/17239), [\#17246](https://github.com/element-hq/synapse/issues/17246))
- Clean out invalid destinations from `device_federation_outbox` table. ([\#17242](https://github.com/element-hq/synapse/issues/17242))
- Stop logging errors when receiving invalid User IDs in key querys requests. ([\#17250](https://github.com/element-hq/synapse/issues/17250))



### Updates to locked dependencies

* Bump anyhow from 1.0.83 to 1.0.86. ([\#17220](https://github.com/element-hq/synapse/issues/17220))
* Bump bcrypt from 4.1.2 to 4.1.3. ([\#17224](https://github.com/element-hq/synapse/issues/17224))
* Bump lxml from 5.2.1 to 5.2.2. ([\#17261](https://github.com/element-hq/synapse/issues/17261))
* Bump mypy-zope from 1.0.3 to 1.0.4. ([\#17262](https://github.com/element-hq/synapse/issues/17262))
* Bump phonenumbers from 8.13.35 to 8.13.37. ([\#17235](https://github.com/element-hq/synapse/issues/17235))
* Bump prometheus-client from 0.19.0 to 0.20.0. ([\#17233](https://github.com/element-hq/synapse/issues/17233))
* Bump pyasn1 from 0.5.1 to 0.6.0. ([\#17223](https://github.com/element-hq/synapse/issues/17223))
* Bump pyicu from 2.13 to 2.13.1. ([\#17236](https://github.com/element-hq/synapse/issues/17236))
* Bump pyopenssl from 24.0.0 to 24.1.0. ([\#17234](https://github.com/element-hq/synapse/issues/17234))
* Bump serde from 1.0.201 to 1.0.202. ([\#17221](https://github.com/element-hq/synapse/issues/17221))
* Bump serde from 1.0.202 to 1.0.203. ([\#17232](https://github.com/element-hq/synapse/issues/17232))
* Bump twine from 5.0.0 to 5.1.0. ([\#17225](https://github.com/element-hq/synapse/issues/17225))
* Bump types-psycopg2 from 2.9.21.20240311 to 2.9.21.20240417. ([\#17222](https://github.com/element-hq/synapse/issues/17222))
* Bump types-pyopenssl from 24.0.0.20240311 to 24.1.0.20240425. ([\#17260](https://github.com/element-hq/synapse/issues/17260))

# Synapse 1.108.0 (2024-05-28)

No significant changes since 1.108.0rc1.
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

75 changes: 50 additions & 25 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,21 +1,34 @@
=========================================================================
Synapse |support| |development| |documentation| |license| |pypi| |python|
=========================================================================

Synapse is an open-source `Matrix <https://matrix.org/>`_ homeserver written and
maintained by the Matrix.org Foundation. We began rapid development in 2014,
reaching v1.0.0 in 2019. Development on Synapse and the Matrix protocol itself continues
in earnest today.

Briefly, Matrix is an open standard for communications on the internet, supporting
federation, encryption and VoIP. Matrix.org has more to say about the `goals of the
Matrix project <https://matrix.org/docs/guides/introduction>`_, and the `formal specification
<https://spec.matrix.org/>`_ describes the technical details.
.. image:: https://github.com/element-hq/product/assets/87339233/7abf477a-5277-47f3-be44-ea44917d8ed7
:height: 60px

===========================================================================================================
Element Synapse - Matrix homeserver implementation |support| |development| |documentation| |license| |pypi| |python|
===========================================================================================================

Synapse is an open source `Matrix <https://matrix.org>`_ homeserver
implementation, written and maintained by `Element <https://element.io>`_.
`Matrix <https://github.com/matrix-org>`_ is the open standard for
secure and interoperable real time communications. You can directly run
and manage the source code in this repository, available under an AGPL
license. There is no support provided from Element unless you have a
subscription.

Subscription alternative
------------------------

Alternatively, for those that need an enterprise-ready solution, Element
Server Suite (ESS) is `available as a subscription <https://element.io/pricing>`_.
ESS builds on Synapse to offer a complete Matrix-based backend including the full
`Admin Console product <https://element.io/enterprise-functionality/admin-console>`_,
giving admins the power to easily manage an organization-wide
deployment. It includes advanced identity management, auditing,
moderation and data retention options as well as Long Term Support and
SLAs. ESS can be used to support any Matrix-based frontend client.

.. contents::

Installing and configuration
============================
🛠️ Installing and configuration
===============================

The Synapse documentation describes `how to install Synapse <https://element-hq.github.io/synapse/latest/setup/installation.html>`_. We recommend using
`Docker images <https://element-hq.github.io/synapse/latest/setup/installation.html#docker-images-and-ansible-playbooks>`_ or `Debian packages from Matrix.org
Expand Down Expand Up @@ -105,8 +118,8 @@ Following this advice ensures that even if an XSS is found in Synapse, the
impact to other applications will be minimal.


Testing a new installation
==========================
🧪 Testing a new installation
============================

The easiest way to try out your new Synapse installation is by connecting to it
from a web client.
Expand Down Expand Up @@ -159,8 +172,20 @@ the form of::
As when logging in, you will need to specify a "Custom server". Specify your
desired ``localpart`` in the 'User name' box.

Troubleshooting and support
===========================
🎯 Troubleshooting and support
=============================

🚀 Professional support
----------------------

Enterprise quality support for Synapse including SLAs is available as part of an
`Element Server Suite (ESS) <https://element.io/pricing>` subscription.

If you are an existing ESS subscriber then you can raise a `support request <https://ems.element.io/support>`
and access the `knowledge base <https://ems-docs.element.io>`.

🤝 Community support
-------------------

The `Admin FAQ <https://element-hq.github.io/synapse/latest/usage/administration/admin_faq.html>`_
includes tips on dealing with some common problems. For more details, see
Expand All @@ -176,8 +201,8 @@ issues for support requests, only for bug reports and feature requests.
.. |docs| replace:: ``docs``
.. _docs: docs

Identity Servers
================
🪪 Identity Servers
==================

Identity servers have the job of mapping email addresses and other 3rd Party
IDs (3PIDs) to Matrix user IDs, as well as verifying the ownership of 3PIDs
Expand Down Expand Up @@ -206,8 +231,8 @@ an email address with your account, or send an invite to another user via their
email address.


Development
===========
🛠️ Development
==============

We welcome contributions to Synapse from the community!
The best place to get started is our
Expand All @@ -225,8 +250,8 @@ Alongside all that, join our developer community on Matrix:
`#synapse-dev:matrix.org <https://matrix.to/#/#synapse-dev:matrix.org>`_, featuring real humans!


.. |support| image:: https://img.shields.io/matrix/synapse:matrix.org?label=support&logo=matrix
:alt: (get support on #synapse:matrix.org)
.. |support| image:: https://img.shields.io/badge/matrix-community%20support-success
:alt: (get community support in #synapse:matrix.org)
:target: https://matrix.to/#/#synapse:matrix.org

.. |development| image:: https://img.shields.io/matrix/synapse-dev:matrix.org?label=development&logo=matrix
Expand Down
1 change: 0 additions & 1 deletion changelog.d/17083.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17147.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17164.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17167.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17176.misc

This file was deleted.

1 change: 1 addition & 0 deletions changelog.d/17187.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add initial implementation of an experimental [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/pull/3575) Sliding Sync `/sync` endpoint.
1 change: 1 addition & 0 deletions changelog.d/17198.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove unused `expire_access_token` option in the Synapse Docker config file. Contributed by @AaronDewes.
1 change: 0 additions & 1 deletion changelog.d/17204.doc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17211.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17213.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17215.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17216.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17219.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17226.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17229.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17238.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17239.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17240.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17241.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17242.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17246.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17250.misc

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17251.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog.d/17252.bugfix

This file was deleted.

1 change: 1 addition & 0 deletions changelog.d/17254.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix searching for users with their exact localpart whose ID includes a hyphen.
1 change: 1 addition & 0 deletions changelog.d/17256.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Improve ratelimiting in Synapse (#17256).
1 change: 1 addition & 0 deletions changelog.d/17265.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use fully-qualified `PersistedEventPosition` when returning `RoomsForUser` to facilitate proper comparisons and `RoomStreamToken` generation.
1 change: 1 addition & 0 deletions changelog.d/17266.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add debug logging for when room keys are uploaded, including whether they are replacing other room keys.
1 change: 1 addition & 0 deletions changelog.d/17270.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add support for the unstable [MSC4151](https://github.com/matrix-org/matrix-spec-proposals/pull/4151) report room API.
1 change: 1 addition & 0 deletions changelog.d/17271.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Handle OTK uploads off master.
1 change: 1 addition & 0 deletions changelog.d/17272.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix wrong retention policy being used when filtering events.
1 change: 1 addition & 0 deletions changelog.d/17273.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Don't try and resync devices for remote users whose servers are marked as down.
1 change: 1 addition & 0 deletions changelog.d/17275.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix bug where OTKs were not always included in `/sync` response when using workers.
1 change: 1 addition & 0 deletions changelog.d/17276.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Filter for public and empty rooms added to Admin-API [List Room API](https://element-hq.github.io/synapse/latest/admin_api/rooms.html#list-room-api).
1 change: 1 addition & 0 deletions changelog.d/17277.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `is_dm` filtering to experimental [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/pull/3575) Sliding Sync `/sync` endpoint.
1 change: 1 addition & 0 deletions changelog.d/17279.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Re-organize Pydantic models and types used in handlers.
1 change: 1 addition & 0 deletions changelog.d/17281.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `is_encrypted` filtering to experimental [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/pull/3575) Sliding Sync `/sync` endpoint.
1 change: 1 addition & 0 deletions changelog.d/17282.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Include user membership in events served to clients, per MSC4115.
1 change: 1 addition & 0 deletions changelog.d/17283.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a long-standing bug where an invalid 'from' parameter to [`/notifications`](https://spec.matrix.org/v1.10/client-server-api/#get_matrixclientv3notifications) would result in an Internal Server Error.
1 change: 1 addition & 0 deletions changelog.d/17284.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Do not require user-interactive authentication for uploading cross-signing keys for the first time, per MSC3967.
1 change: 1 addition & 0 deletions changelog.d/17293.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add `stream_ordering` sort to experimental [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/pull/3575) Sliding Sync `/sync` endpoint.
2 changes: 2 additions & 0 deletions changelog.d/17294.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
`register_new_matrix_user` now supports a --password-file flag, which
is useful for scripting.
1 change: 1 addition & 0 deletions changelog.d/17295.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix edge case in `/sync` returning the wrong the state when using sharded event persisters.
1 change: 1 addition & 0 deletions changelog.d/17296.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add support for the unstable [MSC4151](https://github.com/matrix-org/matrix-spec-proposals/pull/4151) report room API.
1 change: 1 addition & 0 deletions changelog.d/17297.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Bump `mypy` from 1.8.0 to 1.9.0.
1 change: 1 addition & 0 deletions changelog.d/17300.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Expose the worker instance that persisted the event on `event.internal_metadata.instance_name`.
1 change: 1 addition & 0 deletions changelog.d/17301.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add initial implementation of an experimental [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/pull/3575) Sliding Sync `/sync` endpoint.
2 changes: 2 additions & 0 deletions changelog.d/17304.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
`register_new_matrix_user` now supports a --exists-ok flag to allow registration of users that already exist in the database.
This is useful for scripts that bootstrap user accounts with initial passwords.
Loading

0 comments on commit b16bac9

Please sign in to comment.