@@ -35,46 +35,55 @@ 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.10 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 {
4345 "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.11" , "3.12" , "3.13" , "3.14" )
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.
5971trial_postgres_tests = [
6072 {
6173 "python-version" : "3.10" ,
6274 "database" : "postgres" ,
6375 "postgres-version" : "13" ,
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.14" ,
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.
7887trial_no_extra_tests = [
7988 {
8089 "python-version" : "3.10" ,
0 commit comments