@@ -35,64 +35,64 @@ 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
4143trial_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
4956if 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
59- # Run with both psycopg2 and psycopg.
69+ # Only test postgres against the earliest and latest Python versions that we
70+ # support in order to save on CI time.
6071trial_postgres_tests = [
6172 {
62- "python-version" : "3.9 " ,
73+ "python-version" : "3.10 " ,
6374 "database" : "postgres" ,
64- "postgres-version" : "13 " ,
75+ "postgres-version" : "14 " ,
6576 "extras" : "all" ,
6677 },
6778 {
68- "python-version" : "3.9 " ,
79+ "python-version" : "3.10 " ,
6980 "database" : "psycopg" ,
70- "postgres-version" : "13" ,
81+ "postgres-version" : "14" ,
82+ "extras" : "all" ,
83+ },
84+ {
85+ "python-version" : "3.14" ,
86+ "database" : "postgres" ,
87+ "postgres-version" : "17" ,
7188 "extras" : "all" ,
7289 },
7390]
7491
75- if not IS_PR :
76- trial_postgres_tests .extend (
77- [
78- {
79- "python-version" : "3.13" ,
80- "database" : "postgres" ,
81- "postgres-version" : "17" ,
82- "extras" : "all" ,
83- },
84- {
85- "python-version" : "3.13" ,
86- "database" : "psycopg" ,
87- "postgres-version" : "17" ,
88- "extras" : "all" ,
89- },
90- ]
91- )
92-
92+ # Ensure that Synapse passes unit tests even with no extra dependencies installed.
9393trial_no_extra_tests = [
9494 {
95- "python-version" : "3.9 " ,
95+ "python-version" : "3.10 " ,
9696 "database" : "sqlite" ,
9797 "extras" : "" ,
9898 }
@@ -114,24 +114,24 @@ def set_output(key: str, value: str):
114114
115115# First calculate the various sytest jobs.
116116#
117- # For each type of test we only run on bullseye on PRs
117+ # For each type of test we only run on bookworm on PRs
118118
119119
120120sytest_tests = [
121121 {
122- "sytest-tag" : "bullseye " ,
122+ "sytest-tag" : "bookworm " ,
123123 },
124124 {
125- "sytest-tag" : "bullseye " ,
125+ "sytest-tag" : "bookworm " ,
126126 "postgres" : "postgres" ,
127127 },
128128 {
129- "sytest-tag" : "bullseye " ,
129+ "sytest-tag" : "bookworm " ,
130130 "postgres" : "multi-postgres" ,
131131 "workers" : "workers" ,
132132 },
133133 {
134- "sytest-tag" : "bullseye " ,
134+ "sytest-tag" : "bookworm " ,
135135 "postgres" : "multi-postgres" ,
136136 "workers" : "workers" ,
137137 "reactor" : "asyncio" ,
@@ -142,11 +142,11 @@ def set_output(key: str, value: str):
142142 sytest_tests .extend (
143143 [
144144 {
145- "sytest-tag" : "bullseye " ,
145+ "sytest-tag" : "bookworm " ,
146146 "reactor" : "asyncio" ,
147147 },
148148 {
149- "sytest-tag" : "bullseye " ,
149+ "sytest-tag" : "bookworm " ,
150150 "postgres" : "postgres" ,
151151 "reactor" : "asyncio" ,
152152 },
0 commit comments