Skip to content

Commit 9e3d203

Browse files
authored
Migrate EVG task coverage to latest Debian, Ubuntu, and RHEL distros (#2044)
* CDRIVER-5873 Drop Debian 9 * CDRIVER-5874 Drop Debian 10 * Tidy up distros.py * Extend Ubuntu/Debian task coverage to latest releases * Migrate primary server coverage tasks to latest RHEL distros * Simplify matrices and update CSFLE vs. QE comments
1 parent 3adeef5 commit 9e3d203

File tree

15 files changed

+1509
-1247
lines changed

15 files changed

+1509
-1247
lines changed

.evergreen/config_generator/components/c_std_compile.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@
2828
('rhel94', 'clang', None, [99, 11, 17, 23]), # Clang 17.0 (max: C2x)
2929
('rhel95', 'clang', None, [99, 11, 17, 23]), # Clang 18.0 (max: C23)
3030

31-
('rhel7.9', 'gcc', None, [99, 11, ]), # GCC 4.8 (max: C11)
32-
('rhel80', 'gcc', None, [99, 11, 17, ]), # GCC 8.2 (max: C17)
33-
('debian10', 'gcc-8', None, [99, 11, 17, ]), # GCC 8.3 (max: C17)
34-
('rhel84', 'gcc', None, [99, 11, 17, ]), # GCC 8.4 (max: C17)
35-
('ubuntu2004', 'gcc-9', None, [99, 11, 17, 23]), # GCC 9.4 (max: C2x)
36-
('debian11', 'gcc-10', None, [99, 11, 17, 23]), # GCC 10.2 (max: C2x)
37-
('rhel90', 'gcc', None, [99, 11, 17, 23]), # GCC 11.2 (max: C2x)
38-
('rhel92', 'gcc', None, [99, 11, 17, 23]), # GCC 11.3 (max: C2x)
39-
('rhel94', 'gcc', None, [99, 11, 17, 23]), # GCC 11.4 (max: C2x)
40-
('rhel95', 'gcc', None, [99, 11, 17, 23]), # GCC 11.5 (max: C2x)
31+
('rhel7-latest', 'gcc', None, [99, 11, ]), # GCC 4.8 (max: C11)
32+
('rhel80', 'gcc', None, [99, 11, 17, ]), # GCC 8.2 (max: C17)
33+
('rhel84', 'gcc', None, [99, 11, 17, ]), # GCC 8.4 (max: C17)
34+
('ubuntu2004', 'gcc-9', None, [99, 11, 17, 23]), # GCC 9.4 (max: C2x)
35+
('debian11', 'gcc-10', None, [99, 11, 17, 23]), # GCC 10.2 (max: C2x)
36+
('rhel90', 'gcc', None, [99, 11, 17, 23]), # GCC 11.2 (max: C2x)
37+
('rhel92', 'gcc', None, [99, 11, 17, 23]), # GCC 11.3 (max: C2x)
38+
('rhel94', 'gcc', None, [99, 11, 17, 23]), # GCC 11.4 (max: C2x)
39+
('rhel95', 'gcc', None, [99, 11, 17, 23]), # GCC 11.5 (max: C2x)
40+
('ubuntu2404', 'gcc-13', None, [99, 11, 17, 23]), # GCC 13.3 (max: C2x)
4141

4242
('windows-vsCurrent', 'vs2015x64', None, [99, 11, ]), # Max: C11
4343
('windows-vsCurrent', 'vs2017x64', None, [99, 11, ]), # Max: C11

.evergreen/config_generator/components/cse/openssl.py

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,35 +15,40 @@
1515
# pylint: disable=line-too-long
1616
# fmt: off
1717
COMPILE_MATRIX = [
18-
('debian92', 'clang', None, ['cyrus']),
19-
('debian92', 'gcc', None, ['cyrus']),
20-
('debian10', 'clang', None, ['cyrus']),
21-
('debian10', 'gcc', None, ['cyrus']),
22-
('debian11', 'clang', None, ['cyrus']),
23-
('debian11', 'gcc', None, ['cyrus']),
24-
('rhel80', 'gcc', None, ['cyrus']),
18+
# For test matrix.
19+
('rhel8-latest', 'gcc', None, ['cyrus']),
2520
('rhel8-zseries', 'gcc', None, ['cyrus']),
26-
('ubuntu2004', 'clang', None, ['cyrus']),
27-
('ubuntu2004', 'gcc', None, ['cyrus']),
2821
('ubuntu2004-arm64', 'gcc', None, ['cyrus']),
2922
('windows-vsCurrent', 'vs2017x64', None, ['cyrus']),
23+
24+
# For compile only.
25+
('debian11', 'clang', None, ['cyrus']),
26+
('debian11', 'gcc', None, ['cyrus']),
27+
('debian12', 'clang', None, ['cyrus']),
28+
('debian12', 'gcc', None, ['cyrus']),
29+
('rhel80', 'gcc', None, ['cyrus']),
30+
('ubuntu2004', 'gcc', None, ['cyrus']),
31+
('ubuntu2004', 'clang', None, ['cyrus']),
32+
('ubuntu2204', 'gcc', None, ['cyrus']),
33+
('ubuntu2204', 'clang-12', None, ['cyrus']),
34+
('ubuntu2404', 'gcc', None, ['cyrus']),
35+
('ubuntu2404', 'clang-14', None, ['cyrus']),
3036
]
3137

3238
# TODO (CDRIVER-3789): test cse with the 'sharded' topology.
39+
# CSFLE requires 4.2+. QE requires 7.0+ and are skipped on "server" tasks.
3340
TEST_MATRIX = [
34-
# 4.2 and 4.4 not available on rhel8-zseries.
35-
('rhel8-zseries', 'gcc', None, 'cyrus', ['auth'], ['server'], ['5.0']),
41+
# rhel8-latest provides 4.2+.
42+
('rhel8-latest', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
3643

37-
('windows-vsCurrent', 'vs2017x64', None, 'cyrus', ['auth'], ['server'], ['4.2', '4.4', '5.0', '6.0' ]),
44+
# windows-vsCurrent provides 4.2+.
45+
('windows-vsCurrent', 'vs2017x64', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
3846

39-
# Test 7.0+ with a replica set since Queryable Encryption does not support the 'server' topology. Queryable Encryption tests require 7.0+.
40-
('ubuntu2004', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
41-
('rhel8-zseries', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], [ '7.0', '8.0', 'latest']),
42-
('ubuntu2004-arm64', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
43-
('windows-vsCurrent', 'vs2017x64', None, 'cyrus', ['auth'], ['server', 'replica'], [ '7.0', '8.0', 'latest']),
47+
# ubuntu2004-arm64 provides 4.4+.
48+
('ubuntu2004-arm64', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
4449

45-
# Test 4.2 with Debian 10 since 4.2 does not ship on Ubuntu 20.04+.
46-
('debian10', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.2']),
50+
# rhel8-zseries provides 5.0+.
51+
('rhel8-zseries', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], ['5.0', '6.0', '7.0', '8.0', 'latest']),
4752
]
4853
# fmt: on
4954
# pylint: enable=line-too-long
@@ -106,6 +111,8 @@ def variants():
106111
else:
107112
tasks.append(task.get_task_ref())
108113

114+
tasks.sort(key=lambda t: t.name)
115+
109116
return [
110117
BuildVariant(
111118
name=TAG,

.evergreen/config_generator/components/earthly.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -241,10 +241,11 @@ def earthly_task(
241241

242242

243243
CONTAINER_RUN_DISTROS = [
244-
"ubuntu2204-large",
245-
"debian10-large",
246-
"debian11-large",
247244
"amazon2",
245+
"debian11-large",
246+
"debian12-large",
247+
"ubuntu2204-large",
248+
"ubuntu2404-large",
248249
]
249250

250251

.evergreen/config_generator/components/loadbalanced.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
from config_generator.etc.distros import make_distro_str, find_small_distro, find_large_distro
1313
from config_generator.etc.utils import bash_exec
1414

15-
# Use `rhel8.9` distro. `rhel8.9` distro includes necessary dependency: `haproxy`.
16-
_DISTRO_NAME = "rhel8.9"
15+
# Use `rhel8-latest` distro. `rhel8-latest` distro includes necessary dependency: `haproxy`.
16+
_DISTRO_NAME = "rhel8-latest"
1717
_COMPILER = "gcc"
1818

1919

.evergreen/config_generator/components/openssl_static_compile.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
# pylint: disable=line-too-long
1818
# fmt: off
1919
MATRIX = [
20-
('debian92', 'gcc', None),
21-
('debian10', 'gcc', None),
2220
('debian11', 'gcc', None),
21+
('debian12', 'gcc', None),
2322
('ubuntu2004', 'gcc', None),
23+
('ubuntu2204', 'gcc', None),
24+
('ubuntu2404', 'gcc', None),
2425
]
2526
# fmt: on
2627
# pylint: enable=line-too-long

.evergreen/config_generator/components/sanitizers/asan_cse.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,13 @@
1010
# pylint: disable=line-too-long
1111
# fmt: off
1212
COMPILE_MATRIX = [
13-
('ubuntu2004', 'clang', None, ['cyrus']),
14-
('debian10', 'clang', None, ['cyrus']),
13+
('rhel8-latest', 'clang', None, ['cyrus']),
1514
]
1615

16+
# CSFLE requires 4.2+. QE requires 7.0+ and are skipped on "server" tasks.
1717
TEST_MATRIX = [
18-
# Test 7.0+ with a replica set since Queryable Encryption does not support the 'server' topology. Queryable Encryption tests require 7.0+.
19-
('ubuntu2004', 'clang', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
20-
21-
# Test 4.2 with Debian 10 since 4.2 does not ship on Ubuntu 20.04+.
22-
('debian10', 'clang', None, 'cyrus', ['auth'], ['server'], ['4.2']),
18+
# rhel8-latest provides 4.2 through latest.
19+
('rhel8-latest', 'clang', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
2320
]
2421
# fmt: on
2522
# pylint: enable=line-too-long

.evergreen/config_generator/components/sanitizers/asan_sasl.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,12 @@
1010
# pylint: disable=line-too-long
1111
# fmt: off
1212
COMPILE_MATRIX = [
13-
('ubuntu2004', 'clang', None, ['cyrus']),
14-
('debian10', 'clang', None, ['cyrus']),
13+
('rhel8-latest', 'clang', None, ['cyrus']),
1514
]
1615

1716
TEST_MATRIX = [
18-
('ubuntu2004', 'clang', None, 'cyrus', ['auth'], ['server', 'replica', 'sharded'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
19-
20-
# Test 4.2 with Debian 10 since 4.2 does not ship on Ubuntu 20.04+.
21-
('debian10', 'clang', None, 'cyrus', ['auth'], ['server', 'replica', 'sharded'], ['4.2']),
17+
# rhel8-latest provides 4.2 through latest.
18+
('rhel8-latest', 'clang', None, 'cyrus', ['auth'], ['server', 'replica', 'sharded'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
2219
]
2320
# fmt: on
2421
# pylint: enable=line-too-long

.evergreen/config_generator/components/sanitizers/tsan_sasl.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,12 @@
1010
# pylint: disable=line-too-long
1111
# fmt: off
1212
COMPILE_MATRIX = [
13-
('ubuntu2004', 'clang', None, ['cyrus']),
14-
('debian10', 'clang', None, ['cyrus']),
13+
('rhel8-latest', 'clang', None, ['cyrus']),
1514
]
1615

1716
TEST_OPENSSL_MATRIX = [
18-
('ubuntu2004', 'clang', None, 'cyrus', ['auth'], ['server', 'replica', 'sharded'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
19-
20-
# Test 4.2 with Debian 10 since 4.2 does not ship on Ubuntu 20.04+.
21-
('debian10', 'clang', None, 'cyrus', ['auth'], ['server', 'replica', 'sharded'], ['4.2']),
17+
# rhel8-latest provides 4.2 through latest.
18+
('rhel8-latest', 'clang', None, 'cyrus', ['auth'], ['server', 'replica', 'sharded'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
2219
]
2320
# fmt: on
2421
# pylint: enable=line-too-long

.evergreen/config_generator/components/sasl/nossl.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,17 @@
1515
# pylint: disable=line-too-long
1616
# fmt: off
1717
COMPILE_MATRIX = [
18-
('ubuntu2004', 'gcc', None, ['off']),
19-
('windows-vsCurrent', 'vs2017x64', None, ['off']),
20-
('debian10', 'gcc', None, ['off']),
18+
# For test matrix.
19+
('rhel8-latest', 'gcc', None, ['off']),
20+
21+
# For compile only.
22+
('ubuntu2204', 'gcc', None, ['off']),
23+
('ubuntu2404', 'gcc', None, ['off']),
24+
('windows-vsCurrent', 'vs2017x64', None, ['off']),
2125
]
2226

2327
TEST_MATRIX = [
24-
('ubuntu2004', 'gcc', None, 'off', ['noauth'], ['server', 'replica', 'sharded'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
25-
26-
# Test 4.2 with Debian 10 since 4.2 does not ship on Ubuntu 20.04+.
27-
('debian10', 'gcc', None, 'off', ['noauth'], ['server', 'replica', 'sharded'], ['4.2']),
28+
('rhel8-latest', 'gcc', None, 'off', ['noauth'], ['server', 'replica', 'sharded'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
2829
]
2930
# fmt: on
3031
# pylint: enable=line-too-long

.evergreen/config_generator/components/sasl/openssl.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,33 @@
1515
# pylint: disable=line-too-long
1616
# fmt: off
1717
COMPILE_MATRIX = [
18-
('debian92', 'clang', None, ['cyrus']),
19-
('debian92', 'gcc', None, ['cyrus']),
20-
('debian10', 'gcc', None, ['cyrus']),
21-
('debian11', 'gcc', None, ['cyrus']),
22-
('rhel80', 'gcc', None, ['cyrus']),
18+
# For test matrix.
19+
('amazon2023-arm64-latest-large-m8g', 'gcc', None, ['cyrus']),
20+
('rhel8-latest', 'gcc', None, ['cyrus']),
2321
('rhel8-power', 'gcc', None, ['cyrus']),
2422
('rhel8-zseries', 'gcc', None, ['cyrus']),
25-
('ubuntu2004', 'clang', None, ['cyrus']),
2623
('ubuntu2004-arm64', 'gcc', None, ['cyrus']),
27-
('ubuntu2004', 'gcc', None, ['cyrus']),
2824
('windows-vsCurrent', 'vs2017x64', None, ['cyrus']),
29-
('amazon2023-arm64-latest-large-m8g', 'gcc', None, ['cyrus']),
25+
26+
# For compile only.
27+
('debian11', 'gcc', None, ['cyrus']),
28+
('debian12', 'gcc', None, ['cyrus']),
29+
('rhel80', 'gcc', None, ['cyrus']),
30+
('ubuntu2004', 'clang', None, ['cyrus']),
31+
('ubuntu2204', 'gcc', None, ['cyrus']),
32+
('ubuntu2204', 'clang-12', None, ['cyrus']),
33+
('ubuntu2404', 'gcc', None, ['cyrus']),
34+
('ubuntu2404', 'clang-14', None, ['cyrus']),
3035
]
3136

3237
TEST_MATRIX = [
33-
('rhel8-power', 'gcc', None, 'cyrus', ['auth'], ['server'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
38+
('rhel8-latest', 'gcc', None, 'cyrus', ['auth'], ['server'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
39+
('rhel8-power', 'gcc', None, 'cyrus', ['auth'], ['server'], ['4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
3440
('rhel8-zseries', 'gcc', None, 'cyrus', ['auth'], ['server'], [ '5.0', '6.0', '7.0', '8.0', 'latest']),
3541

3642
('ubuntu2004-arm64', 'gcc', None, 'cyrus', ['auth'], ['server'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
37-
('ubuntu2004', 'gcc', None, 'cyrus', ['auth'], ['server'], ['4.4', '5.0', '6.0', '7.0', '8.0', 'latest']),
3843
('windows-vsCurrent', 'vs2017x64', None, 'cyrus', ['auth'], ['server'], [ 'latest']),
3944

40-
# Test 4.2 with Debian 10 since 4.2 does not ship on Ubuntu 20.04+.
41-
('debian10', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica'], ['4.2']),
42-
4345
# Test with Graviton processor:
4446
('amazon2023-arm64-latest-large-m8g', 'gcc', None, 'cyrus', ['auth'], ['server', 'replica', 'sharded'], ['latest']),
4547
]
@@ -100,6 +102,8 @@ def variants():
100102
else:
101103
tasks.append(task.get_task_ref())
102104

105+
tasks.sort(key=lambda t: t.name)
106+
103107
return [
104108
BuildVariant(
105109
name=TAG,

.evergreen/config_generator/etc/distros.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Distro(BaseModel):
3535
@validator('os_ver')
3636
@classmethod
3737
def validate_os_ver(cls, value):
38-
return Version(value)
38+
return value == 'latest' or Version(value)
3939

4040

4141
def ls_distro(name, **kwargs):
@@ -46,9 +46,8 @@ def ls_distro(name, **kwargs):
4646

4747

4848
DEBIAN_DISTROS = [
49-
*ls_distro(name='debian92', os='debian', os_type='linux', os_ver='9.2'), # CDRIVER-5873
50-
*ls_distro(name='debian10', os='debian', os_type='linux', os_ver='10'), # CDRIVER-5874
5149
*ls_distro(name='debian11', os='debian', os_type='linux', os_ver='11'),
50+
*ls_distro(name='debian12', os='debian', os_type='linux', os_ver='12'),
5251
]
5352

5453
MACOS_DISTROS = [
@@ -61,17 +60,17 @@ def ls_distro(name, **kwargs):
6160
]
6261

6362
RHEL_DISTROS = [
64-
*ls_distro(name='rhel7.9', os='rhel', os_type='linux', os_ver='7.9'),
63+
*ls_distro(name='rhel7-latest', os='rhel', os_type='linux', os_ver='7'),
64+
*ls_distro(name='rhel8-latest', os='rhel', os_type='linux', os_ver='8'),
65+
6566
*ls_distro(name='rhel80', os='rhel', os_type='linux', os_ver='8.0'),
6667
*ls_distro(name='rhel84', os='rhel', os_type='linux', os_ver='8.4'),
6768
*ls_distro(name='rhel90', os='rhel', os_type='linux', os_ver='9.0'),
6869
*ls_distro(name='rhel91', os='rhel', os_type='linux', os_ver='9.1'),
6970
*ls_distro(name='rhel92', os='rhel', os_type='linux', os_ver='9.2'),
7071
*ls_distro(name='rhel93', os='rhel', os_type='linux', os_ver='9.3'),
7172
*ls_distro(name='rhel94', os='rhel', os_type='linux', os_ver='9.4'),
72-
*ls_distro(name='rhel95', os='rhel', os_type='linux', os_ver='9.5'),
73-
*ls_distro(name='rhel8.9', os='rhel', os_type='linux', os_ver='8.7'),
74-
*ls_distro(name='rhel92', os='rhel', os_type='linux', os_ver='9.0'),
73+
*ls_distro(name='rhel95', os='rhel', os_type='linux', os_ver='9.5'), # rhel9-latest
7574
]
7675

7776
RHEL_POWER_DISTROS = [
@@ -85,16 +84,14 @@ def ls_distro(name, **kwargs):
8584
UBUNTU_DISTROS = [
8685
*ls_distro(name='ubuntu2004', os='ubuntu', os_type='linux', os_ver='20.04'),
8786
*ls_distro(name='ubuntu2204', os='ubuntu', os_type='linux', os_ver='22.04'),
87+
*ls_distro(name='ubuntu2404', os='ubuntu', os_type='linux', os_ver='24.04'),
8888
]
8989

9090
UBUNTU_ARM64_DISTROS = [
9191
*ls_distro(name='ubuntu2004-arm64', os='ubuntu', os_type='linux', os_ver='20.04', arch='arm64'),
9292
]
9393

9494
WINDOWS_DISTROS = [
95-
*ls_distro(name='windows-64-vs2017', os='windows', os_type='windows', vs_ver='2017'),
96-
*ls_distro(name='windows-64-vs2019', os='windows', os_type='windows', vs_ver='2019'),
97-
9895
*ls_distro(name='windows-vsCurrent', os='windows', os_type='windows', vs_ver='vsCurrent'), # Windows Server 2019
9996
]
10097

@@ -107,6 +104,7 @@ def ls_distro(name, **kwargs):
107104
# Ensure no-arch distros are ordered before arch-specific distros.
108105
ALL_DISTROS = [
109106
*DEBIAN_DISTROS,
107+
*GRAVITON_DISTROS,
110108
*MACOS_DISTROS,
111109
*MACOS_ARM64_DISTROS,
112110
*RHEL_DISTROS,
@@ -115,7 +113,6 @@ def ls_distro(name, **kwargs):
115113
*UBUNTU_DISTROS,
116114
*UBUNTU_ARM64_DISTROS,
117115
*WINDOWS_DISTROS,
118-
*GRAVITON_DISTROS
119116
]
120117

121118

@@ -202,6 +199,9 @@ def to_platform(compiler):
202199

203200

204201
def compiler_to_vars(compiler):
202+
if compiler is None:
203+
return {}
204+
205205
match compiler, compiler.split('-'):
206206
case _, ['gcc', *rest]:
207207
return {

0 commit comments

Comments
 (0)