Skip to content

Commit 9016d68

Browse files
committed
Merge tag 'v1.144.0' into kegan/sticky-events
The team has decided to deprecate and stop publishing python wheels for MacOS. Synapse docker images will continue to work on MacOS, as will building Synapse from source (though note this requires a Rust compiler). Admins using the unstable [MSC2666](matrix-org/matrix-spec-proposals#2666) endpoint (`/_matrix/client/unstable/uk.half-shot.msc2666/user/mutual_rooms`), please check [the relevant section in the upgrade notes](https://github.com/element-hq/synapse/blob/develop/docs/upgrade.md#upgrading-to-v11440) as this release contains changes that disable that endpoint by default. No significant changes since 1.144.0rc1. Admins using the unstable [MSC2666](matrix-org/matrix-spec-proposals#2666) endpoint (`/_matrix/client/unstable/uk.half-shot.msc2666/user/mutual_rooms`), please check [the relevant section in the upgrade notes](https://github.com/element-hq/synapse/blob/develop/docs/upgrade.md#upgrading-to-v11440) as this release contains changes that disable that endpoint by default. - Add experimentatal implememntation of [MSC4380](matrix-org/matrix-spec-proposals#4380) (invite blocking). ([\#19203](#19203)) - Allow restarting delayed event timeouts on workers. ([\#19207](#19207)) - Fix a bug in the database function for fetching state deltas that could result in unnecessarily long query times. ([\#18960](#18960)) - Fix v12 rooms when running with `use_frozen_dicts: True`. ([\#19235](#19235)) - Fix bug where invalid `canonical_alias` content would return 500 instead of 400. ([\#19240](#19240)) - Fix bug where `Duration` was logged incorrectly. ([\#19267](#19267)) - Document in the `--config-path` help how multiple files are merged - by merging them shallowly. ([\#19243](#19243)) - Stop building release wheels for MacOS. ([\#19225](#19225)) - Improve event filtering for Simplified Sliding Sync. ([\#17782](#17782)) - Export `SYNAPSE_SUPPORTED_COMPLEMENT_TEST_PACKAGES` environment variable from `scripts-dev/complement.sh`. ([\#19208](#19208)) - Refactor `scripts-dev/complement.sh` logic to avoid `exit` to facilitate being able to source it from other scripts (composable). ([\#19209](#19209)) - Expire sliding sync connections that are too old or have too much pending data. ([\#19211](#19211)) - Require an experimental feature flag to be enabled in order for the unstable [MSC2666](matrix-org/matrix-spec-proposals#2666) endpoint (`/_matrix/client/unstable/uk.half-shot.msc2666/user/mutual_rooms`) to be available. ([\#19219](#19219)) - Prevent changelog check CI running on @dependabot's PRs even when a human has modified the branch. ([\#19220](#19220)) - Auto-fix trailing spaces in multi-line strings and comments when running the lint script. ([\#19221](#19221)) - Move towards using a dedicated `Duration` type. ([\#19223](#19223), [\#19229](#19229)) - Improve robustness of the SQL schema linting in CI. ([\#19224](#19224)) - Add log to determine whether clients are using `/messages` as expected. ([\#19226](#19226)) - Simplify README and add ESS Getting started section. ([\#19228](#19228), [\#19259](#19259)) - Add a unit test for ensuring associated refresh tokens are erased when a device is deleted. ([\#19230](#19230)) - Prompt user to consider adding future deprecations to the changelog in release script. ([\#19239](#19239)) - Fix check of the Rust compiled code being outdated when using source checkout and `.egg-info`. ([\#19251](#19251)) - Stop building macos wheels in CI pipeline. ([\#19263](#19263)) * Bump Swatinem/rust-cache from 2.8.1 to 2.8.2. ([\#19244](#19244)) * Bump actions/checkout from 5.0.0 to 6.0.0. ([\#19213](#19213)) * Bump actions/setup-go from 6.0.0 to 6.1.0. ([\#19214](#19214)) * Bump actions/setup-python from 6.0.0 to 6.1.0. ([\#19245](#19245)) * Bump attrs from 25.3.0 to 25.4.0. ([\#19215](#19215)) * Bump docker/metadata-action from 5.9.0 to 5.10.0. ([\#19246](#19246)) * Bump http from 1.3.1 to 1.4.0. ([\#19249](#19249)) * Bump pydantic from 2.12.4 to 2.12.5. ([\#19250](#19250)) * Bump pyopenssl from 25.1.0 to 25.3.0. ([\#19248](#19248)) * Bump rpds-py from 0.28.0 to 0.29.0. ([\#19216](#19216)) * Bump rpds-py from 0.29.0 to 0.30.0. ([\#19247](#19247)) * Bump sentry-sdk from 2.44.0 to 2.46.0. ([\#19218](#19218)) * Bump types-bleach from 6.2.0.20250809 to 6.3.0.20251115. ([\#19217](#19217)) * Bump types-jsonschema from 4.25.1.20250822 to 4.25.1.20251009. ([\#19252](#19252))
2 parents a4cac85 + 1bfcc9a commit 9016d68

759 files changed

Lines changed: 15778 additions & 13129 deletions

File tree

Some content is hidden

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

.ci/scripts/auditwheel_wrapper.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import argparse
2626
import os
2727
import subprocess
28-
from typing import Optional
2928
from zipfile import ZipFile
3029

3130
from packaging.tags import Tag
@@ -80,7 +79,7 @@ def cpython(wheel_file: str, name: str, version: Version, tag: Tag) -> str:
8079
return new_wheel_file
8180

8281

83-
def main(wheel_file: str, dest_dir: str, archs: Optional[str]) -> None:
82+
def main(wheel_file: str, dest_dir: str, archs: str | None) -> None:
8483
"""Entry point"""
8584

8685
# Parse the wheel file name into its parts. Note that `parse_wheel_filename`

.ci/scripts/calculate_jobs.py

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -35,49 +35,58 @@ def set_output(key: str, value: str):
3535

3636
# First calculate the various trial jobs.
3737
#
38-
# For PRs, we only run each type of test with the oldest Python version supported (which
39-
# is Python 3.9 right now)
38+
# For PRs, we only run each type of test with the oldest and newest Python
39+
# version that's supported. The oldest version ensures we don't accidentally
40+
# introduce syntax or code that's too new, and the newest ensures we don't use
41+
# code that's been dropped in the latest supported Python version.
4042

4143
trial_sqlite_tests = [
4244
{
43-
"python-version": "3.9",
45+
"python-version": "3.10",
4446
"database": "sqlite",
4547
"extras": "all",
46-
}
48+
},
49+
{
50+
"python-version": "3.14",
51+
"database": "sqlite",
52+
"extras": "all",
53+
},
4754
]
4855

4956
if not IS_PR:
57+
# Otherwise, check all supported Python versions.
58+
#
59+
# Avoiding running all of these versions on every PR saves on CI time.
5060
trial_sqlite_tests.extend(
5161
{
5262
"python-version": version,
5363
"database": "sqlite",
5464
"extras": "all",
5565
}
56-
for version in ("3.10", "3.11", "3.12", "3.13")
66+
for version in ("3.11", "3.12", "3.13")
5767
)
5868

69+
# Only test postgres against the earliest and latest Python versions that we
70+
# support in order to save on CI time.
5971
trial_postgres_tests = [
6072
{
61-
"python-version": "3.9",
73+
"python-version": "3.10",
6274
"database": "postgres",
63-
"postgres-version": "13",
75+
"postgres-version": "14",
6476
"extras": "all",
65-
}
77+
},
78+
{
79+
"python-version": "3.14",
80+
"database": "postgres",
81+
"postgres-version": "17",
82+
"extras": "all",
83+
},
6684
]
6785

68-
if not IS_PR:
69-
trial_postgres_tests.append(
70-
{
71-
"python-version": "3.13",
72-
"database": "postgres",
73-
"postgres-version": "17",
74-
"extras": "all",
75-
}
76-
)
77-
86+
# Ensure that Synapse passes unit tests even with no extra dependencies installed.
7887
trial_no_extra_tests = [
7988
{
80-
"python-version": "3.9",
89+
"python-version": "3.10",
8190
"database": "sqlite",
8291
"extras": "",
8392
}
@@ -99,24 +108,24 @@ def set_output(key: str, value: str):
99108

100109
# First calculate the various sytest jobs.
101110
#
102-
# For each type of test we only run on bullseye on PRs
111+
# For each type of test we only run on bookworm on PRs
103112

104113

105114
sytest_tests = [
106115
{
107-
"sytest-tag": "bullseye",
116+
"sytest-tag": "bookworm",
108117
},
109118
{
110-
"sytest-tag": "bullseye",
119+
"sytest-tag": "bookworm",
111120
"postgres": "postgres",
112121
},
113122
{
114-
"sytest-tag": "bullseye",
123+
"sytest-tag": "bookworm",
115124
"postgres": "multi-postgres",
116125
"workers": "workers",
117126
},
118127
{
119-
"sytest-tag": "bullseye",
128+
"sytest-tag": "bookworm",
120129
"postgres": "multi-postgres",
121130
"workers": "workers",
122131
"reactor": "asyncio",
@@ -127,11 +136,11 @@ def set_output(key: str, value: str):
127136
sytest_tests.extend(
128137
[
129138
{
130-
"sytest-tag": "bullseye",
139+
"sytest-tag": "bookworm",
131140
"reactor": "asyncio",
132141
},
133142
{
134-
"sytest-tag": "bullseye",
143+
"sytest-tag": "bookworm",
135144
"postgres": "postgres",
136145
"reactor": "asyncio",
137146
},

.ci/scripts/prepare_old_deps.sh

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,23 @@ export VIRTUALENV_NO_DOWNLOAD=1
1616
# to select the lowest possible versions, rather than resorting to this sed script.
1717

1818
# Patch the project definitions in-place:
19-
# - Replace all lower and tilde bounds with exact bounds
20-
# - Replace all caret bounds---but not the one that defines the supported Python version!
21-
# - Delete all lines referring to psycopg2 --- so no testing of postgres support.
19+
# - `-E` use extended regex syntax.
20+
# - Don't modify the line that defines required Python versions.
21+
# - Replace all lower and tilde bounds with exact bounds.
22+
# - Replace all caret bounds with exact bounds.
23+
# - Delete all lines referring to psycopg2 - so no testing of postgres support.
2224
# - Use pyopenssl 17.0, which is the oldest version that works with
2325
# a `cryptography` compiled against OpenSSL 1.1.
2426
# - Omit systemd: we're not logging to journal here.
2527

26-
sed -i \
27-
-e "s/[~>]=/==/g" \
28-
-e '/^python = "^/!s/\^/==/g' \
29-
-e "/psycopg2/d" \
30-
-e 's/pyOpenSSL = "==16.0.0"/pyOpenSSL = "==17.0.0"/' \
31-
-e '/systemd/d' \
32-
pyproject.toml
28+
sed -i -E '
29+
/^\s*requires-python\s*=/b
30+
s/[~>]=/==/g
31+
s/\^/==/g
32+
/psycopg2/d
33+
s/pyOpenSSL\s*==\s*16\.0\.0"/pyOpenSSL==17.0.0"/
34+
/systemd/d
35+
' pyproject.toml
3336

3437
echo "::group::Patched pyproject.toml"
3538
cat pyproject.toml

.git-blame-ignore-revs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,8 @@ c4268e3da64f1abb5b31deaeb5769adb6510c0a7
2626
# Update black to 23.1.0 (https://github.com/matrix-org/synapse/pull/15103)
2727
9bb2eac71962970d02842bca441f4bcdbbf93a11
2828

29+
# Use type hinting generics in standard collections (https://github.com/element-hq/synapse/pull/19046)
30+
fc244bb592aa481faf28214a2e2ce3bb4e95d990
31+
32+
# Write union types as X | Y where possible (https://github.com/element-hq/synapse/pull/19111)
33+
fcac7e0282b074d4bd3414d1c9c181e9701875d9

.github/workflows/docker.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
3232

3333
- name: Checkout repository
34-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
34+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
3535

3636
- name: Extract version from pyproject.toml
3737
# Note: explicitly requesting bash will mean bash is invoked with `-eo pipefail`, see
@@ -75,7 +75,7 @@ jobs:
7575
touch "${{ runner.temp }}/digests/${digest#sha256:}"
7676
7777
- name: Upload digest
78-
uses: actions/upload-artifact@v4
78+
uses: actions/upload-artifact@v5
7979
with:
8080
name: digests-${{ matrix.suffix }}
8181
path: ${{ runner.temp }}/digests/*
@@ -95,7 +95,7 @@ jobs:
9595
- build
9696
steps:
9797
- name: Download digests
98-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
98+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
9999
with:
100100
path: ${{ runner.temp }}/digests
101101
pattern: digests-*
@@ -120,10 +120,10 @@ jobs:
120120
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
121121

122122
- name: Install Cosign
123-
uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 # v3.10.0
123+
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
124124

125125
- name: Calculate docker image tag
126-
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
126+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
127127
with:
128128
images: ${{ matrix.repository }}
129129
flavor: |

.github/workflows/docs-pr.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
name: GitHub Pages
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
16+
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
1717
with:
1818
# Fetch all history so that the schema_versions script works.
1919
fetch-depth: 0
@@ -24,7 +24,7 @@ jobs:
2424
mdbook-version: '0.4.17'
2525

2626
- name: Setup python
27-
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
27+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
2828
with:
2929
python-version: "3.x"
3030

@@ -39,7 +39,7 @@ jobs:
3939
cp book/welcome_and_overview.html book/index.html
4040
4141
- name: Upload Artifact
42-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
42+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
4343
with:
4444
name: book
4545
path: book
@@ -50,7 +50,7 @@ jobs:
5050
name: Check links in documentation
5151
runs-on: ubuntu-latest
5252
steps:
53-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
53+
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
5454

5555
- name: Setup mdbook
5656
uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08 # v2.0.0

.github/workflows/docs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
needs:
5151
- pre
5252
steps:
53-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
53+
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
5454
with:
5555
# Fetch all history so that the schema_versions script works.
5656
fetch-depth: 0
@@ -64,7 +64,7 @@ jobs:
6464
run: echo 'window.SYNAPSE_VERSION = "${{ needs.pre.outputs.branch-version }}";' > ./docs/website_files/version.js
6565

6666
- name: Setup python
67-
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
67+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
6868
with:
6969
python-version: "3.x"
7070

.github/workflows/fix_lint.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ jobs:
1818

1919
steps:
2020
- name: Checkout repository
21-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
21+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
2222

2323
- name: Install Rust
2424
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
2525
with:
2626
toolchain: ${{ env.RUST_VERSION }}
2727
components: clippy, rustfmt
28-
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
28+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
2929

3030
- name: Setup Poetry
3131
uses: matrix-org/setup-python-poetry@5bbf6603c5c930615ec8a29f1b5d7d258d905aa4 # v2.0.0
@@ -47,6 +47,6 @@ jobs:
4747
- run: cargo fmt
4848
continue-on-error: true
4949

50-
- uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0 # v6.0.1
50+
- uses: stefanzweifel/git-auto-commit-action@28e16e81777b558cc906c8750092100bbb34c5e3 # v7.0.0
5151
with:
5252
commit_message: "Attempt to fix linting"

0 commit comments

Comments
 (0)