Skip to content

Commit e1fe53a

Browse files
committed
Merge tag 'v1.41.0' into 2021-05
Synapse 1.41.0 (2021-08-24) =========================== This release adds support for Debian 12 (Bookworm), but **removes support for Ubuntu 20.10 (Groovy Gorilla)**, which reached End of Life last month. Note that when using workers the `/_synapse/admin/v1/users/{userId}/media` must now be handled by media workers. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html) for more information. Features -------- - Enable room capabilities ([MSC3244](matrix-org/matrix-spec-proposals#3244)) by default and set room version 8 as the preferred room version when creating restricted rooms. ([\matrix-org#10571](matrix-org#10571)) Synapse 1.41.0rc1 (2021-08-18) ============================== Features -------- - Add `get_userinfo_by_id` method to ModuleApi. ([\matrix-org#9581](matrix-org#9581)) - Initial local support for [MSC3266](matrix-org#10394), Room Summary over the unstable `/rooms/{roomIdOrAlias}/summary` API. ([\matrix-org#10394](matrix-org#10394)) - Experimental support for [MSC3288](matrix-org/matrix-spec-proposals#3288), sending `room_type` to the identity server for 3pid invites over the `/store-invite` API. ([\matrix-org#10435](matrix-org#10435)) - Add support for sending federation requests through a proxy. Contributed by @Bubu and @dklimpel. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html) for more information. ([\matrix-org#10596](matrix-org#10596)). ([\matrix-org#10475](matrix-org#10475)) - Add support for "marker" events which makes historical events discoverable for servers that already have all of the scrollback history (part of [MSC2716](matrix-org/matrix-spec-proposals#2716)). ([\matrix-org#10498](matrix-org#10498)) - Add a configuration setting for the time a `/sync` response is cached for. ([\matrix-org#10513](matrix-org#10513)) - The default logging handler for new installations is now `PeriodicallyFlushingMemoryHandler`, a buffered logging handler which periodically flushes itself. ([\matrix-org#10518](matrix-org#10518)) - Add support for new redaction rules for historical events specified in [MSC2716](matrix-org/matrix-spec-proposals#2716). ([\matrix-org#10538](matrix-org#10538)) - Add a setting to disable TLS when sending email. ([\matrix-org#10546](matrix-org#10546)) - Add pagination to the spaces summary based on updates to [MSC2946](matrix-org/matrix-spec-proposals#2946). ([\matrix-org#10549](matrix-org#10549), [\matrix-org#10560](matrix-org#10560), [\matrix-org#10569](matrix-org#10569), [\matrix-org#10574](matrix-org#10574), [\matrix-org#10575](matrix-org#10575), [\matrix-org#10579](matrix-org#10579), [\matrix-org#10583](matrix-org#10583)) - Admin API to delete several media for a specific user. Contributed by @dklimpel. ([\matrix-org#10558](matrix-org#10558), [\matrix-org#10628](matrix-org#10628)) - Add support for routing `/createRoom` to workers. ([\matrix-org#10564](matrix-org#10564)) - Update the Synapse Grafana dashboard. ([\matrix-org#10570](matrix-org#10570)) - Add an admin API (`GET /_synapse/admin/username_available`) to check if a username is available (regardless of registration settings). ([\matrix-org#10578](matrix-org#10578)) - Allow editing a user's `external_ids` via the "Edit User" admin API. Contributed by @dklimpel. ([\matrix-org#10598](matrix-org#10598)) - The Synapse manhole no longer needs coroutines to be wrapped in `defer.ensureDeferred`. ([\matrix-org#10602](matrix-org#10602)) - Add option to allow modules to run periodic tasks on all instances, rather than just the one configured to run background tasks. ([\matrix-org#10638](matrix-org#10638)) Bugfixes -------- - Add some clarification to the sample config file. Contributed by @Kentokamoto. ([\matrix-org#10129](matrix-org#10129)) - Fix a long-standing bug where protocols which are not implemented by any appservices were incorrectly returned via `GET /_matrix/client/r0/thirdparty/protocols`. ([\matrix-org#10532](matrix-org#10532)) - Fix exceptions in logs when failing to get remote room list. ([\matrix-org#10541](matrix-org#10541)) - Fix longstanding bug which caused the user's presence "status message" to be reset when the user went offline. Contributed by @dklimpel. ([\matrix-org#10550](matrix-org#10550)) - Allow public rooms to be previewed in the spaces summary APIs from [MSC2946](matrix-org/matrix-spec-proposals#2946). ([\matrix-org#10580](matrix-org#10580)) - Fix a bug introduced in v1.37.1 where an error could occur in the asynchronous processing of PDUs when the queue was empty. ([\matrix-org#10592](matrix-org#10592)) - Fix errors on /sync when read receipt data is a string. Only affects homeservers with the experimental flag for [MSC2285](matrix-org/matrix-spec-proposals#2285) enabled. Contributed by @SimonBrandner. ([\matrix-org#10606](matrix-org#10606)) - Additional validation for the spaces summary API to avoid errors like `ValueError: Stop argument for islice() must be None or an integer`. The missing validation has existed since v1.31.0. ([\matrix-org#10611](matrix-org#10611)) - Revert behaviour introduced in v1.38.0 that strips `org.matrix.msc2732.device_unused_fallback_key_types` from `/sync` when its value is empty. This field should instead always be present according to [MSC2732](https://github.com/matrix-org/matrix-doc/blob/master/proposals/2732-olm-fallback-keys.md). ([\matrix-org#10623](matrix-org#10623)) Improved Documentation ---------------------- - Add documentation for configuring a forward proxy. ([\matrix-org#10443](matrix-org#10443)) - Updated the reverse proxy documentation to highlight the homserver configuration that is needed to make Synapse aware that is is intentionally reverse proxied. ([\matrix-org#10551](matrix-org#10551)) - Update CONTRIBUTING.md to fix index links and the instructions for SyTest in docker. ([\matrix-org#10599](matrix-org#10599)) Deprecations and Removals ------------------------- - No longer build `.deb` packages for Ubuntu 20.10 Groovy Gorilla, which has now EOLed. ([\matrix-org#10588](matrix-org#10588)) - The `template_dir` configuration settings in the `sso`, `account_validity` and `email` sections of the configuration file are now deprecated in favour of the global `templates.custom_template_directory` setting. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html) for more information. ([\matrix-org#10596](matrix-org#10596)) Internal Changes ---------------- - Improve event caching mechanism to avoid having multiple copies of an event in memory at a time. ([\matrix-org#10119](matrix-org#10119)) - Reduce errors in PostgreSQL logs due to concurrent serialization errors. ([\matrix-org#10504](matrix-org#10504)) - Include room ID in ignored EDU log messages. Contributed by @ilmari. ([\matrix-org#10507](matrix-org#10507)) - Add pagination to the spaces summary based on updates to [MSC2946](matrix-org/matrix-spec-proposals#2946). ([\matrix-org#10527](matrix-org#10527), [\matrix-org#10530](matrix-org#10530)) - Fix CI to not break when run against branches rather than pull requests. ([\matrix-org#10529](matrix-org#10529)) - Mark all events stemming from the [MSC2716](matrix-org/matrix-spec-proposals#2716) `/batch_send` endpoint as historical. ([\matrix-org#10537](matrix-org#10537)) - Clean up some of the federation event authentication code for clarity. ([\matrix-org#10539](matrix-org#10539), [\matrix-org#10591](matrix-org#10591)) - Convert `Transaction` and `Edu` objects to attrs. ([\matrix-org#10542](matrix-org#10542)) - Update `/batch_send` endpoint to only return `state_events` created by the `state_events_from_before` passed in. ([\matrix-org#10552](matrix-org#10552)) - Update contributing.md to warn against rebasing an open PR. ([\matrix-org#10563](matrix-org#10563)) - Remove the unused public rooms replication stream. ([\matrix-org#10565](matrix-org#10565)) - Clarify error message when failing to join a restricted room. ([\matrix-org#10572](matrix-org#10572)) - Remove references to BuildKite in favour of GitHub Actions. ([\matrix-org#10573](matrix-org#10573)) - Move `/batch_send` endpoint defined by [MSC2716](matrix-org/matrix-spec-proposals#2716) to the `/v2_alpha` directory. ([\matrix-org#10576](matrix-org#10576)) - Allow multiple custom directories in `read_templates`. ([\matrix-org#10587](matrix-org#10587)) - Re-organize the `synapse.federation.transport.server` module to create smaller files. ([\matrix-org#10590](matrix-org#10590)) - Flatten the `synapse.rest.client` package by moving the contents of `v1` and `v2_alpha` into the parent. ([\matrix-org#10600](matrix-org#10600)) - Build Debian packages for Debian 12 (Bookworm). ([\matrix-org#10612](matrix-org#10612)) - Fix up a couple of links to the database schema documentation. ([\matrix-org#10620](matrix-org#10620)) - Fix a broken link to the upgrade notes. ([\matrix-org#10631](matrix-org#10631))
2 parents 97c7d15 + f03cafb commit e1fe53a

File tree

237 files changed

+9592
-6013
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

237 files changed

+9592
-6013
lines changed

.buildkite/.env

Lines changed: 0 additions & 13 deletions
This file was deleted.

.buildkite/merge_base_branch.sh

Lines changed: 0 additions & 35 deletions
This file was deleted.

.buildkite/postgres-config.yaml renamed to .ci/postgres-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
# CI's Docker setup at the point where this file is considered.
44
server_name: "localhost:8800"
55

6-
signing_key_path: ".buildkite/test.signing.key"
6+
signing_key_path: ".ci/test.signing.key"
77

88
report_stats: false
99

1010
database:
1111
name: "psycopg2"
1212
args:
1313
user: postgres
14-
host: postgres
14+
host: localhost
1515
password: postgres
1616
database: synapse
1717

.buildkite/scripts/postgres_exec.py renamed to .ci/scripts/postgres_exec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
# We use "postgres" as a database because it's bound to exist and the "synapse" one
2424
# doesn't exist yet.
2525
db_conn = psycopg2.connect(
26-
user="postgres", host="postgres", password="postgres", dbname="postgres"
26+
user="postgres", host="localhost", password="postgres", dbname="postgres"
2727
)
2828
db_conn.autocommit = True
2929
cur = db_conn.cursor()

.buildkite/scripts/test_old_deps.sh renamed to .ci/scripts/test_old_deps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bash
22

3-
# this script is run by buildkite in a plain `bionic` container; it installs the
3+
# this script is run by GitHub Actions in a plain `bionic` container; it installs the
44
# minimal requirements for tox and hands over to the py3-old tox environment.
55

66
set -ex

.buildkite/scripts/test_synapse_port_db.sh renamed to .ci/scripts/test_synapse_port_db.sh

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,22 @@ pip install -e .
2020
echo "--- Generate the signing key"
2121

2222
# Generate the server's signing key.
23-
python -m synapse.app.homeserver --generate-keys -c .buildkite/sqlite-config.yaml
23+
python -m synapse.app.homeserver --generate-keys -c .ci/sqlite-config.yaml
2424

2525
echo "--- Prepare test database"
2626

2727
# Make sure the SQLite3 database is using the latest schema and has no pending background update.
28-
scripts-dev/update_database --database-config .buildkite/sqlite-config.yaml
28+
scripts-dev/update_database --database-config .ci/sqlite-config.yaml
2929

3030
# Create the PostgreSQL database.
31-
./.buildkite/scripts/postgres_exec.py "CREATE DATABASE synapse"
31+
.ci/scripts/postgres_exec.py "CREATE DATABASE synapse"
3232

3333
echo "+++ Run synapse_port_db against test database"
34-
coverage run scripts/synapse_port_db --sqlite-database .buildkite/test_db.db --postgres-config .buildkite/postgres-config.yaml
34+
coverage run scripts/synapse_port_db --sqlite-database .ci/test_db.db --postgres-config .ci/postgres-config.yaml
3535

3636
# We should be able to run twice against the same database.
3737
echo "+++ Run synapse_port_db a second time"
38-
coverage run scripts/synapse_port_db --sqlite-database .buildkite/test_db.db --postgres-config .buildkite/postgres-config.yaml
38+
coverage run scripts/synapse_port_db --sqlite-database .ci/test_db.db --postgres-config .ci/postgres-config.yaml
3939

4040
#####
4141

@@ -44,14 +44,14 @@ coverage run scripts/synapse_port_db --sqlite-database .buildkite/test_db.db --p
4444
echo "--- Prepare empty SQLite database"
4545

4646
# we do this by deleting the sqlite db, and then doing the same again.
47-
rm .buildkite/test_db.db
47+
rm .ci/test_db.db
4848

49-
scripts-dev/update_database --database-config .buildkite/sqlite-config.yaml
49+
scripts-dev/update_database --database-config .ci/sqlite-config.yaml
5050

5151
# re-create the PostgreSQL database.
52-
./.buildkite/scripts/postgres_exec.py \
52+
.ci/scripts/postgres_exec.py \
5353
"DROP DATABASE synapse" \
5454
"CREATE DATABASE synapse"
5555

5656
echo "+++ Run synapse_port_db against empty database"
57-
coverage run scripts/synapse_port_db --sqlite-database .buildkite/test_db.db --postgres-config .buildkite/postgres-config.yaml
57+
coverage run scripts/synapse_port_db --sqlite-database .ci/test_db.db --postgres-config .ci/postgres-config.yaml

.buildkite/sqlite-config.yaml renamed to .ci/sqlite-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
# schema and run background updates on it.
44
server_name: "localhost:8800"
55

6-
signing_key_path: ".buildkite/test.signing.key"
6+
signing_key_path: ".ci/test.signing.key"
77

88
report_stats: false
99

1010
database:
1111
name: "sqlite3"
1212
args:
13-
database: ".buildkite/test_db.db"
13+
database: ".ci/test_db.db"
1414

1515
# Suppress the key server warning.
1616
trusted_key_servers: []
File renamed without changes.
File renamed without changes.

.github/workflows/tests.yml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
concurrency:
99
group: ${{ github.workflow }}-${{ github.ref }}
1010
cancel-in-progress: true
11-
11+
1212
jobs:
1313
lint:
1414
runs-on: ubuntu-latest
@@ -38,20 +38,15 @@ jobs:
3838
if: ${{ github.base_ref == 'develop' || contains(github.base_ref, 'release-') }}
3939
runs-on: ubuntu-latest
4040
steps:
41-
# Note: This and the script can be simplified once we drop Buildkite. See:
42-
# https://github.com/actions/checkout/issues/266#issuecomment-638346893
43-
# https://github.com/actions/checkout/issues/416
4441
- uses: actions/checkout@v2
4542
with:
4643
ref: ${{ github.event.pull_request.head.sha }}
4744
fetch-depth: 0
4845
- uses: actions/setup-python@v2
4946
- run: pip install tox
50-
- name: Patch Buildkite-specific test script
51-
run: |
52-
sed -i -e 's/\$BUILDKITE_PULL_REQUEST/${{ github.event.number }}/' \
53-
scripts-dev/check-newsfragment
5447
- run: scripts-dev/check-newsfragment
48+
env:
49+
PULL_REQUEST_NUMBER: ${{ github.event.number }}
5550

5651
lint-sdist:
5752
runs-on: ubuntu-latest
@@ -144,7 +139,7 @@ jobs:
144139
uses: docker://ubuntu:bionic # For old python and sqlite
145140
with:
146141
workdir: /github/workspace
147-
entrypoint: .buildkite/scripts/test_old_deps.sh
142+
entrypoint: .ci/scripts/test_old_deps.sh
148143
env:
149144
TRIAL_FLAGS: "--jobs=2"
150145
- name: Dump logs
@@ -197,12 +192,12 @@ jobs:
197192
volumes:
198193
- ${{ github.workspace }}:/src
199194
env:
200-
BUILDKITE_BRANCH: ${{ github.head_ref }}
201195
POSTGRES: ${{ matrix.postgres && 1}}
202196
MULTI_POSTGRES: ${{ (matrix.postgres == 'multi-postgres') && 1}}
203197
WORKERS: ${{ matrix.workers && 1 }}
204198
REDIS: ${{ matrix.redis && 1 }}
205199
BLACKLIST: ${{ matrix.workers && 'synapse-blacklist-with-workers' }}
200+
TOP: ${{ github.workspace }}
206201

207202
strategy:
208203
fail-fast: false
@@ -232,7 +227,7 @@ jobs:
232227
steps:
233228
- uses: actions/checkout@v2
234229
- name: Prepare test blacklist
235-
run: cat sytest-blacklist .buildkite/worker-blacklist > synapse-blacklist-with-workers
230+
run: cat sytest-blacklist .ci/worker-blacklist > synapse-blacklist-with-workers
236231
- name: Run SyTest
237232
run: /bootstrap.sh synapse
238233
working-directory: /src
@@ -252,6 +247,8 @@ jobs:
252247
if: ${{ !failure() && !cancelled() }} # Allow previous steps to be skipped, but not fail
253248
needs: linting-done
254249
runs-on: ubuntu-latest
250+
env:
251+
TOP: ${{ github.workspace }}
255252
strategy:
256253
matrix:
257254
include:
@@ -281,13 +278,7 @@ jobs:
281278
- uses: actions/setup-python@v2
282279
with:
283280
python-version: ${{ matrix.python-version }}
284-
- name: Patch Buildkite-specific test scripts
285-
run: |
286-
sed -i -e 's/host="postgres"/host="localhost"/' .buildkite/scripts/postgres_exec.py
287-
sed -i -e 's/host: postgres/host: localhost/' .buildkite/postgres-config.yaml
288-
sed -i -e 's|/src/||' .buildkite/{sqlite,postgres}-config.yaml
289-
sed -i -e 's/\$TOP/\$GITHUB_WORKSPACE/' .coveragerc
290-
- run: .buildkite/scripts/test_synapse_port_db.sh
281+
- run: .ci/scripts/test_synapse_port_db.sh
291282

292283
complement:
293284
if: ${{ !failure() && !cancelled() }}
@@ -374,6 +365,11 @@ jobs:
374365
rc=0
375366
results=$(jq -r 'to_entries[] | [.key,.value.result] | join(" ")' <<< $NEEDS_CONTEXT)
376367
while read job result ; do
368+
# The newsfile lint may be skipped on non PR builds
369+
if [ $result == "skipped" ] && [ $job == "lint-newsfile" ]; then
370+
continue
371+
fi
372+
377373
if [ "$result" != "success" ]; then
378374
echo "::set-failed ::Job $job returned $result"
379375
rc=1

0 commit comments

Comments
 (0)