Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
186 commits
Select commit Hold shift + click to select a range
5465c68
Remove unstable prefixes for MSC2732: Olm fallback keys (#18996)
anoadragon453 Oct 7, 2025
42bbff8
Validate the body of requests to `/keys/upload` (#17097)
S7evinK Oct 7, 2025
d67280f
Remove unstable prefixes for MSC2732
anoadragon453 Sep 30, 2025
4a37c4d
Remove unstable prefixes for MSC2732: Olm fallback keys (#18996)
anoadragon453 Oct 7, 2025
26aaaf9
Validate the body of requests to `/keys/upload` (#17097)
S7evinK Oct 7, 2025
533d5e0
Remove unstable prefixes for MSC2732
anoadragon453 Sep 30, 2025
dde1e01
Remove unstable prefixes for MSC2732: Olm fallback keys (#18996)
anoadragon453 Oct 7, 2025
7069636
Validate the body of requests to `/keys/upload` (#17097)
S7evinK Oct 7, 2025
76b012c
1.139.1
anoadragon453 Oct 7, 2025
527e831
1.138.3
anoadragon453 Oct 7, 2025
459ebe0
Merge branch 'release-v1.139'
anoadragon453 Oct 7, 2025
957456e
Merge branch 'master' into develop
anoadragon453 Oct 7, 2025
340bdd8
Merge branch 'release-v1.138'
anoadragon453 Oct 7, 2025
4f7ffc1
Merge branch 'master' into develop
anoadragon453 Oct 7, 2025
2443760
Update `KeyUploadServlet` to handle case where client sends `device_k…
anoadragon453 Oct 7, 2025
0ae1f10
Update `KeyUploadServlet` to handle case where client sends `device_k…
anoadragon453 Oct 7, 2025
5e3839e
Update `KeyUploadServlet` to handle case where client sends `device_k…
anoadragon453 Oct 7, 2025
abe974c
1.138.4
anoadragon453 Oct 7, 2025
036fb87
1.139.2
anoadragon453 Oct 7, 2025
ca27938
Align Synapse version string to use `SYNAPSE_VERSION` (#19011)
MadLittleMods Oct 7, 2025
28bc486
Bump prometheus-client from 0.22.1 to 0.23.1 (#19016)
dependabot[bot] Oct 7, 2025
8696551
Bump pydantic from 2.11.9 to 2.11.10 (#19017)
dependabot[bot] Oct 7, 2025
dde4e0e
Bump types-pyyaml from 6.0.12.20250809 to 6.0.12.20250915 (#19018)
dependabot[bot] Oct 7, 2025
fb12d51
Bump authlib from 1.6.4 to 1.6.5 (#19019)
dependabot[bot] Oct 7, 2025
7b88313
No need to have `version_string` as an argument since it's always the…
MadLittleMods Oct 7, 2025
631eed9
Fix bad merge with `start_background_tasks` (#19013)
MadLittleMods Oct 7, 2025
87cfe56
Merge branch 'release-v1.138'
anoadragon453 Oct 8, 2025
38afd10
Merge branch 'master' into develop
anoadragon453 Oct 8, 2025
638fa0f
Merge branch 'release-v1.139'
anoadragon453 Oct 8, 2025
21d125e
Merge branch 'master' into develop
anoadragon453 Oct 8, 2025
8f01eb8
Add an Admin API to fetch an event by ID (#18963)
H-Shay Oct 8, 2025
bcbbccc
Swap `macos-13` with `macos-15-intel` GHA runner in CI (#19025)
anoadragon453 Oct 8, 2025
e3344dc
Expose `defer_to_threadpool` in the module API (#19032)
anoadragon453 Oct 9, 2025
18f07fd
Add MatrixRTC backend/services discovery endpoint (#18967)
fkwp Oct 9, 2025
d440cfc
Allow any release script command to accept `--gh-token` (#19035)
anoadragon453 Oct 9, 2025
715cc5e
Split homeserver creation and setup (#19015)
MadLittleMods Oct 9, 2025
47fb4b4
Introduce `RootConfig.validate_config()` which can be subclassed in `…
MadLittleMods Oct 9, 2025
627be7e
Add 'Fetch Event' Admin API page to the docs SUMMARY.md
anoadragon453 Oct 10, 2025
8390138
Add 'Fetch Event' Admin API page to the docs SUMMARY.md
anoadragon453 Oct 10, 2025
c0d6998
1.140.0rc1
anoadragon453 Oct 10, 2025
07cfb69
Changelog updates
anoadragon453 Oct 10, 2025
be75de2
changelog updates
anoadragon453 Oct 10, 2025
ef80338
Add s3 warning to changelog and upgrade notes
anoadragon453 Oct 10, 2025
9d9275d
Merge branch 'release-v1.140' into develop
anoadragon453 Oct 10, 2025
d399d76
Move `start_doing_background_updates()` to `SynapseHomeServer.start_b…
MadLittleMods Oct 10, 2025
690b3a4
Allow using MSC4190 features without opt-in (#19031)
tulir Oct 13, 2025
a7303c5
Fix deprecated token field in release script (#19039)
anoadragon453 Oct 13, 2025
2d07bd7
Update TODO list of conflicting areas where we encounter metrics bein…
MadLittleMods Oct 13, 2025
d2c582e
Move unique snowflake homeserver background tasks to `start_backgroun…
MadLittleMods Oct 13, 2025
ec7554b
Stabilize support for MSC4326: Device masquerading for appservices (#…
tulir Oct 13, 2025
a4f9274
Fix indentation of sighup handler calling code (#19060)
anoadragon453 Oct 14, 2025
ecc9059
1.140.0
anoadragon453 Oct 14, 2025
b8f6ad2
Move storage provider compatibility notice to the top of the changelog
anoadragon453 Oct 14, 2025
da6c0ca
Merge branch 'master' into develop
anoadragon453 Oct 14, 2025
67f22a2
Update Docker images to use Debian trixie (13) and thus Python 3.13 (…
benbz Oct 20, 2025
eac8626
Revert "Move `start_doing_background_updates()` to `SynapseHomeServer…
MadLittleMods Oct 20, 2025
418c9f3
Prevent `bcrypt` from raising a `ValueError` and log (#19078)
anoadragon453 Oct 21, 2025
1271e89
1.141.0rc1
anoadragon453 Oct 21, 2025
2f65b9e
Update `oidc_session_no_samesite` cookie to be `Secure` (#19079)
kieranlane Oct 21, 2025
4427908
newsfile
anoadragon453 Oct 21, 2025
6c16734
Revert "newsfile"
anoadragon453 Oct 21, 2025
ff242fa
Don't exit the release script if there are uncommitted changes
anoadragon453 Oct 21, 2025
3b59ac3
Merge branch 'release-v1.141' into develop
anoadragon453 Oct 21, 2025
cba3a81
Fix lints on `develop` (#19092)
MadLittleMods Oct 22, 2025
fc244bb
Use type hinting generics in standard collections (#19046)
AndrewFerr Oct 22, 2025
b835eb2
Make optional networking and security settings for Redis more apparen…
servisbryce Oct 23, 2025
5556b49
Spruce up generated announcement text in the release script (#19089)
anoadragon453 Oct 24, 2025
72d0de9
Don't exit the release script if there are uncommitted changes (#19088)
anoadragon453 Oct 24, 2025
45a042a
Remove cibuildwheel `pp38*` skip selector (#19085)
anoadragon453 Oct 24, 2025
a092d20
Fix deprecation warning in release script (#19080)
anoadragon453 Oct 24, 2025
123eff1
Update poetry dev dependencies name (#19081)
anoadragon453 Oct 24, 2025
a2fa61d
Bump msgpack from 1.1.1 to 1.1.2 (#19050)
dependabot[bot] Oct 24, 2025
1419b35
Bump ijson from 3.4.0 to 3.4.0.post0 (#19051)
dependabot[bot] Oct 24, 2025
40893be
Bump idna from 3.10 to 3.11 (#19053)
dependabot[bot] Oct 24, 2025
9d81bb7
Always treat `RETURNING` as supported by SQL engines (#19047)
AndrewFerr Oct 24, 2025
f1695ac
Add an admin API to get the space hierarchy (#19021)
H-Shay Oct 24, 2025
f6ef9c1
Bump stefanzweifel/git-auto-commit-action from 6.0.1 to 7.0.0 (#19052)
dependabot[bot] Oct 27, 2025
634f7cf
Bump types-psycopg2 from 2.9.21.20250915 to 2.9.21.20251012 (#19054)
dependabot[bot] Oct 27, 2025
db9a61c
Fix `bcrypt` errors preventing users from being able to log in (#19101)
anoadragon453 Oct 28, 2025
d8e6fcc
1.141.0rc2
anoadragon453 Oct 28, 2025
7106f67
Move MacOS wheel deprecation message to top of changelog
anoadragon453 Oct 28, 2025
77c6905
Bump regex from 1.11.3 to 1.12.2 (#19074)
dependabot[bot] Oct 28, 2025
5cfe873
Bump tokio from 1.47.1 to 1.48.0 (#19076)
dependabot[bot] Oct 28, 2025
0d20f76
Bump reqwest from 0.12.23 to 0.12.24 (#19077)
dependabot[bot] Oct 28, 2025
cb0ed5e
Bump actions/download-artifact from 5.0.0 to 6.0.0 (#19102)
dependabot[bot] Oct 28, 2025
66a42d4
Bump hiredis from 3.2.1 to 3.3.0 (#19103)
dependabot[bot] Oct 28, 2025
1a78fc8
Bump pyyaml from 6.0.2 to 6.0.3 (#19105)
dependabot[bot] Oct 28, 2025
e23e7ae
Bump actions/upload-artifact from 4 to 5 (#19106)
dependabot[bot] Oct 28, 2025
086b887
Merge branch 'release-v1.141' into develop
anoadragon453 Oct 28, 2025
a07dd43
Use Pillow's non-experimental getexif (#19098)
AndrewFerr Oct 28, 2025
dc33ef9
Update docs on downstream Debian package (#19100)
AndrewFerr Oct 28, 2025
5f9f3d7
1.141.0
anoadragon453 Oct 29, 2025
1090c3e
Move MacOS wheels deprecation notice to the top
anoadragon453 Oct 29, 2025
facb81d
Add Debian trixie notice to the top of the release notes
anoadragon453 Oct 29, 2025
7897c8f
Add a docs page with common steps to review the release notes (#19109)
anoadragon453 Oct 29, 2025
1823287
Merge branch 'master' into develop
anoadragon453 Oct 29, 2025
0417296
Remove logcontext problems caused by awaiting raw `deferLater(...)` (…
MadLittleMods Oct 29, 2025
6facf98
Be mindful of other `SIGHUP` handlers in 3rd-party code (#19095)
MadLittleMods Oct 29, 2025
32998d0
Bump sigstore/cosign-installer from 3.10.0 to 4.0.0 (#19075)
dependabot[bot] Oct 29, 2025
e0838c2
Drop Python 3.9, bump tests/builds to Python 3.10 (#19099)
AndrewFerr Oct 29, 2025
7285129
Exclude `.lock` file from `/usr/local` when building docker images (#…
anoadragon453 Oct 30, 2025
f54ddbc
Prevent duplicate GH releases being created during Synapse release pr…
anoadragon453 Oct 30, 2025
2c4057b
Prevent duplicate logging setup when running multiple Synapse instanc…
MadLittleMods Oct 30, 2025
3495991
Move reading of multipart response into `try` body (#19062)
anoadragon453 Oct 30, 2025
f0aae62
Cheaper logcontext debug logs (`random_string_insecure_fast(...)`) (#…
MadLittleMods Oct 30, 2025
c0b9437
Fix lost logcontext when using `timeout_deferred(...)` (#19090)
MadLittleMods Oct 30, 2025
300c555
Update `check_dependencies` to support markers (#19110)
anoadragon453 Oct 30, 2025
3595ff9
Pydantic v2 (#19071)
V02460 Oct 31, 2025
07e7980
Fix Rust’s confusing lifetime lint (#19118)
V02460 Oct 31, 2025
3ccc518
Fix schema lint script to understand `CREATE TABLE IF NOT EXISTS` (#1…
erikjohnston Oct 31, 2025
41a2762
Be mindful of other logging context filters in 3rd-party code (#19068)
MadLittleMods Oct 31, 2025
69bab78
Python 3.14 support (#19055)
anoadragon453 Nov 3, 2025
bc926bd
Bump ruff from 0.12.10 to 0.14.3 (#19124)
dependabot[bot] Nov 3, 2025
e00a411
Move exception handling up the stack (avoid `exit(1)` in our composab…
MadLittleMods Nov 3, 2025
f02ac5a
Bump markdown-it-py from 3.0.0 to 4.0.0 (#19123)
dependabot[bot] Nov 3, 2025
a710745
Refactor app entrypoints (avoid `exit(1)` in our composable functions…
MadLittleMods Nov 3, 2025
2c5deb8
Bump icu_segmenter from 2.0.0 to 2.0.1 (#19126)
dependabot[bot] Nov 3, 2025
4f9dc3b
Bump psycopg2 from 2.9.10 to 2.9.11 (#19125)
dependabot[bot] Nov 3, 2025
e02a6f5
Fix lost logcontext on `HomeServer.shutdown()` (#19108)
MadLittleMods Nov 3, 2025
891acfd
Move `oidc.load_metadata()` startup into `_base.start()` (#19056)
MadLittleMods Nov 3, 2025
db00925
Redirect `stdout`/`stderr` to logs after initialization (#19131)
MadLittleMods Nov 3, 2025
08f570f
Fix "There is no current event loop in thread" error in tests (#19134)
anoadragon453 Nov 4, 2025
5408101
Speed up pruning of ratelimiter (#19129)
erikjohnston Nov 4, 2025
2760d15
1.142.0rc1
anoadragon453 Nov 4, 2025
b2237ff
Add sqlite deprecation to changelog and upgrade notes
anoadragon453 Nov 4, 2025
d888126
Drop period from title
anoadragon453 Nov 4, 2025
4bbde14
Skip building Python 3.9 wheels with cibuildwheel (#19119)
anoadragon453 Nov 4, 2025
5d71034
1.142.0rc2
anoadragon453 Nov 4, 2025
0cbb2a1
Don't build free-threaded wheels (#19140)
anoadragon453 Nov 4, 2025
2fd8d88
1.142.0rc3
anoadragon453 Nov 4, 2025
4906771
Faster redis replication handling (#19138)
erikjohnston Nov 5, 2025
d3ffd04
Fix spelling (#19145)
erikjohnston Nov 5, 2025
6790312
Fixup logcontexts after replication PR. (#19146)
erikjohnston Nov 5, 2025
fcac7e0
Write union types as `X | Y` where possible (#19111)
AndrewFerr Nov 6, 2025
18f1d28
1.142.0rc1 regression fix: Allow coercing a `str` to a `FilePath` in …
anoadragon453 Nov 7, 2025
5d4a731
1.142.0rc4
anoadragon453 Nov 7, 2025
72073d8
Move important messages to the top of the changelog
anoadragon453 Nov 7, 2025
077a6f7
Merge branch 'release-v1.142' into develop
anoadragon453 Nov 7, 2025
8580ab6
Add `delayed_events` table to boolean column port (#19155)
AndrewFerr Nov 10, 2025
39f8e28
Update `cibuildwheel` config to stop building Python 3.9 and free-thr…
anoadragon453 Nov 10, 2025
378c5c8
Document Nginx Proxy Manager configuration steps (#19136)
Sharakea Nov 10, 2025
a50923b
Improve documentation around streams, particularly ID generators and …
reivilibre Nov 10, 2025
dc7f01f
register_new_matrix_user: Support multiple config files (#18784)
V02460 Nov 10, 2025
674b932
Bump sentry-sdk from 2.34.1 to 2.43.0 (#19157)
dependabot[bot] Nov 10, 2025
a10e238
Bump docker/metadata-action from 5.8.0 to 5.9.0 (#19161)
dependabot[bot] Nov 10, 2025
8fa7d4a
Ignore Python language refactors (`.git-blame-ignore-revs`) (#19150)
MadLittleMods Nov 10, 2025
91c2845
Bump pydantic from 2.12.3 to 2.12.4 (#19158)
dependabot[bot] Nov 10, 2025
70e6cc0
Bump pyo3-log from 0.13.1 to 0.13.2 (#19156)
dependabot[bot] Nov 10, 2025
2e66cf1
Bump types-netaddr from 1.3.0.20240530 to 1.3.0.20251108 (#19160)
dependabot[bot] Nov 10, 2025
03e873e
Bump cryptography from 43.0.3 to 45.0.7 (#19159)
dependabot[bot] Nov 11, 2025
8feb862
1.142.0
anoadragon453 Nov 11, 2025
9c67666
Merge branch 'master' of github.com:element-hq/synapse into develop
anoadragon453 Nov 11, 2025
2c91896
Run trial tests on Python 3.14 in PRs (#19135)
anoadragon453 Nov 12, 2025
9722e05
Update `pyproject.toml` to be compatible with other standard Python p…
anoadragon453 Nov 12, 2025
3ba3c7f
Reduce cardinality of metrics on event persister (#19133)
erikjohnston Nov 12, 2025
97cc05d
Bump lower bounds of unit test exclusive dependencies for Python 3.10…
AndrewFerr Nov 12, 2025
df80288
Further reduce cardinality of metrics on event persister (#19168)
erikjohnston Nov 12, 2025
e67ba69
Provide same `servers` list in s2s alias results as c2s. (#18970)
jevolk Nov 13, 2025
938c974
Add a shortcut return when there are no events to purge. (#19093)
reivilibre Nov 13, 2025
b9dda0f
Restore printing `sentinel` for `log_record.request` (#19172)
MadLittleMods Nov 13, 2025
47d24bd
Add debug logs to track `Clock` callbacks (#19173)
MadLittleMods Nov 13, 2025
4494cc0
Point out which event caused the exception when checking MSC4293 reda…
MadLittleMods Nov 13, 2025
9e23cde
MSC4140: Remove auth from delayed event management endpoints (#19152)
AndrewFerr Nov 13, 2025
5d545d1
Remove support for PostgreSQL 13 (#19170)
devonh Nov 13, 2025
408a05e
Fix potential lost logcontext when `PerDestinationQueue.shutdown(...)…
MadLittleMods Nov 13, 2025
8da8d4b
Remove explicit python 3.8/9 skips (#19177)
anoadragon453 Nov 14, 2025
edc0de9
Fix bad deferred logcontext handling (#19180)
MadLittleMods Nov 14, 2025
19251fc
Bump bytes from 1.10.1 to 1.11.0 (#19193)
dependabot[bot] Nov 17, 2025
fca80e2
Bump tomli from 2.2.1 to 2.3.0 (#19194)
dependabot[bot] Nov 17, 2025
26ddedb
Bump ruff from 0.14.3 to 0.14.5 (#19196)
dependabot[bot] Nov 17, 2025
ce65b5c
Bump sentry-sdk from 2.43.0 to 2.44.0 (#19197)
dependabot[bot] Nov 17, 2025
34d93c9
Bump click from 8.1.8 to 8.3.1 (#19195)
dependabot[bot] Nov 17, 2025
322481c
Run background updates on all databases (#19181)
devonh Nov 17, 2025
bc42899
Allow subpaths in MAS endpoints (#19186)
devonh Nov 18, 2025
d01a8ab
Allow subpaths in MAS endpoints (#19186)
devonh Nov 18, 2025
46efbae
1.142.1
devonh Nov 18, 2025
1b24a14
Merge branch 'master' into develop
devonh Nov 18, 2025
f5bf02e
1.143.0rc1
devonh Nov 18, 2025
2cffd75
Fix duplicate poetry version from merging patch release
devonh Nov 19, 2025
b631bf7
1.143.0rc2
devonh Nov 19, 2025
7a96603
Capitalize Synapse in CHANGES.md
devonh Nov 19, 2025
e39fba6
Refactor `scripts-dev/complement.sh` logic to avoid `exit` (#19209)
MadLittleMods Nov 21, 2025
54c93a1
Export `SYNAPSE_SUPPORTED_COMPLEMENT_TEST_PACKAGES` from `scripts-dev…
MadLittleMods Nov 22, 2025
e59ea08
Merge branch 'develop' into psycopg3-adjust-settings
realtyem Nov 23, 2025
d9226e0
Update poetry.lock file
realtyem Nov 23, 2025
0693794
linting fixups
realtyem Nov 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 1 addition & 2 deletions .ci/scripts/auditwheel_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import argparse
import os
import subprocess
from typing import Optional
from zipfile import ZipFile

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


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

# Parse the wheel file name into its parts. Note that `parse_wheel_filename`
Expand Down
72 changes: 36 additions & 36 deletions .ci/scripts/calculate_jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,64 +35,64 @@ def set_output(key: str, value: str):

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

trial_sqlite_tests = [
{
"python-version": "3.9",
"python-version": "3.10",
"database": "sqlite",
"extras": "all",
}
},
{
"python-version": "3.14",
"database": "sqlite",
"extras": "all",
},
]

if not IS_PR:
# Otherwise, check all supported Python versions.
#
# Avoiding running all of these versions on every PR saves on CI time.
trial_sqlite_tests.extend(
{
"python-version": version,
"database": "sqlite",
"extras": "all",
}
for version in ("3.10", "3.11", "3.12", "3.13")
for version in ("3.11", "3.12", "3.13")
)

# Run with both psycopg2 and psycopg.
# Only test postgres against the earliest and latest Python versions that we
# support in order to save on CI time.
trial_postgres_tests = [
{
"python-version": "3.9",
"python-version": "3.10",
"database": "postgres",
"postgres-version": "13",
"postgres-version": "14",
"extras": "all",
},
{
"python-version": "3.9",
"python-version": "3.10",
"database": "psycopg",
"postgres-version": "13",
"postgres-version": "14",
"extras": "all",
},
{
"python-version": "3.14",
"database": "postgres",
"postgres-version": "17",
"extras": "all",
},
]

if not IS_PR:
trial_postgres_tests.extend(
[
{
"python-version": "3.13",
"database": "postgres",
"postgres-version": "17",
"extras": "all",
},
{
"python-version": "3.13",
"database": "psycopg",
"postgres-version": "17",
"extras": "all",
},
]
)

# Ensure that Synapse passes unit tests even with no extra dependencies installed.
trial_no_extra_tests = [
{
"python-version": "3.9",
"python-version": "3.10",
"database": "sqlite",
"extras": "",
}
Expand All @@ -114,24 +114,24 @@ def set_output(key: str, value: str):

# First calculate the various sytest jobs.
#
# For each type of test we only run on bullseye on PRs
# For each type of test we only run on bookworm on PRs


sytest_tests = [
{
"sytest-tag": "bullseye",
"sytest-tag": "bookworm",
},
{
"sytest-tag": "bullseye",
"sytest-tag": "bookworm",
"postgres": "postgres",
},
{
"sytest-tag": "bullseye",
"sytest-tag": "bookworm",
"postgres": "multi-postgres",
"workers": "workers",
},
{
"sytest-tag": "bullseye",
"sytest-tag": "bookworm",
"postgres": "multi-postgres",
"workers": "workers",
"reactor": "asyncio",
Expand All @@ -142,11 +142,11 @@ def set_output(key: str, value: str):
sytest_tests.extend(
[
{
"sytest-tag": "bullseye",
"sytest-tag": "bookworm",
"reactor": "asyncio",
},
{
"sytest-tag": "bullseye",
"sytest-tag": "bookworm",
"postgres": "postgres",
"reactor": "asyncio",
},
Expand Down
23 changes: 13 additions & 10 deletions .ci/scripts/prepare_old_deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,23 @@ export VIRTUALENV_NO_DOWNLOAD=1
# to select the lowest possible versions, rather than resorting to this sed script.

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

sed -i \
-e "s/[~>]=/==/g" \
-e '/^python = "^/!s/\^/==/g' \
-e "/psycopg2/d" \
-e 's/pyOpenSSL = "==16.0.0"/pyOpenSSL = "==17.0.0"/' \
-e '/systemd/d' \
pyproject.toml
sed -i -E '
/^\s*requires-python\s*=/b
s/[~>]=/==/g
s/\^/==/g
/psycopg2/d
s/pyOpenSSL\s*==\s*16\.0\.0"/pyOpenSSL==17.0.0"/
/systemd/d
' pyproject.toml

echo "::group::Patched pyproject.toml"
cat pyproject.toml
Expand Down
5 changes: 5 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,8 @@ c4268e3da64f1abb5b31deaeb5769adb6510c0a7
# Update black to 23.1.0 (https://github.com/matrix-org/synapse/pull/15103)
9bb2eac71962970d02842bca441f4bcdbbf93a11

# Use type hinting generics in standard collections (https://github.com/element-hq/synapse/pull/19046)
fc244bb592aa481faf28214a2e2ce3bb4e95d990

# Write union types as X | Y where possible (https://github.com/element-hq/synapse/pull/19111)
fcac7e0282b074d4bd3414d1c9c181e9701875d9
8 changes: 4 additions & 4 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
touch "${{ runner.temp }}/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: digests-${{ matrix.suffix }}
path: ${{ runner.temp }}/digests/*
Expand All @@ -95,7 +95,7 @@ jobs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
Expand All @@ -120,10 +120,10 @@ jobs:
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1

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

- name: Calculate docker image tag
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
with:
images: ${{ matrix.repository }}
flavor: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
cp book/welcome_and_overview.html book/index.html

- name: Upload Artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: book
path: book
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/fix_lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,6 @@ jobs:
- run: cargo fmt
continue-on-error: true

- uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0 # v6.0.1
- uses: stefanzweifel/git-auto-commit-action@28e16e81777b558cc906c8750092100bbb34c5e3 # v7.0.0
with:
commit_message: "Attempt to fix linting"
6 changes: 3 additions & 3 deletions .github/workflows/latest_deps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,9 +139,9 @@ jobs:
fail-fast: false
matrix:
include:
- sytest-tag: bullseye
- sytest-tag: bookworm

- sytest-tag: bullseye
- sytest-tag: bookworm
postgres: postgres
workers: workers
redis: redis
Expand Down Expand Up @@ -173,7 +173,7 @@ jobs:
if: ${{ always() }}
run: /sytest/scripts/tap_to_gha.pl /logs/results.tap
- name: Upload SyTest logs
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
if: ${{ always() }}
with:
name: Sytest Logs - ${{ job.status }} - (${{ join(matrix.*, ', ') }})
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push_complement_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Work out labels for complement image
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0
with:
images: ghcr.io/${{ github.repository }}/complement-synapse
tags: |
Expand Down
44 changes: 22 additions & 22 deletions .github/workflows/release-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ jobs:
echo "ARTIFACT_NAME=${DISTRO#*:}" >> "$GITHUB_OUTPUT"

- name: Upload debs as artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: debs-${{ steps.artifact-name.outputs.ARTIFACT_NAME }}
path: debs/*
Expand All @@ -114,8 +114,8 @@ jobs:
os:
- ubuntu-24.04
- ubuntu-24.04-arm
- macos-13 # This uses x86-64
- macos-14 # This uses arm64
- macos-15-intel # This uses x86-64
# 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.
is_pr:
Expand All @@ -124,7 +124,7 @@ jobs:
exclude:
# Don't build macos wheels on PR CI.
- is_pr: true
os: "macos-13"
os: "macos-15-intel"
- is_pr: true
os: "macos-14"
# Don't build aarch64 wheels on PR CI.
Expand All @@ -141,20 +141,25 @@ jobs:
python-version: "3.x"

- name: Install cibuildwheel
run: python -m pip install cibuildwheel==3.0.0
run: python -m pip install cibuildwheel==3.2.1

- name: Only build a single wheel on PR
if: startsWith(github.ref, 'refs/pull/')
run: echo "CIBW_BUILD="cp39-manylinux_*"" >> $GITHUB_ENV
run: echo "CIBW_BUILD="cp310-manylinux_*"" >> $GITHUB_ENV

- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
# Skip testing for platforms which various libraries don't have wheels
# for, and so need extra build deps.
CIBW_TEST_SKIP: pp3*-* *i686* *musl*
# The platforms that we build for are determined by the
# `tool.cibuildwheel.skip` option in `pyproject.toml`.

- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
# We skip testing wheels for the following platforms in CI:
#
# pp3*-* (PyPy wheels) broke in CI (TODO: investigate).
# musl: (TODO: investigate).
CIBW_TEST_SKIP: pp3*-* *musl*

- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: Wheel-${{ matrix.os }}
path: ./wheelhouse/*.whl
Expand All @@ -175,7 +180,7 @@ jobs:
- name: Build sdist
run: python -m build --sdist

- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: Sdist
path: dist/*.tar.gz
Expand All @@ -191,7 +196,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download all workflow run artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
- name: Build a tarball for the debs
# We need to merge all the debs uploads into one folder, then compress
# that.
Expand All @@ -200,16 +205,11 @@ jobs:
mv debs*/* debs/
tar -cvJf debs.tar.xz debs
- name: Attach to release
# Pinned to work around https://github.com/softprops/action-gh-release/issues/445
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v0.1.15
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
Sdist/*
Wheel*/*
debs.tar.xz
# if it's not already published, keep the release as a draft.
draft: true
# mark it as a prerelease if the tag contains 'rc'.
prerelease: ${{ contains(github.ref, 'rc') }}
run: |
gh release upload "${{ github.ref_name }}" \
Sdist/* \
Wheel*/* \
debs.tar.xz \
--repo ${{ github.repository }}
Loading
Loading