diff --git a/.evergreen/README.md b/.evergreen/README.md
new file mode 100644
index 0000000000..8c3c5a0fc5
--- /dev/null
+++ b/.evergreen/README.md
@@ -0,0 +1,36 @@
+# Evergreen Config Generation
+
+## Generation
+
+Use [Astral uv](https://docs.astral.sh/uv/) to run the `config_generator/generate.py` script from the project root directory:
+
+```bash
+uv run --frozen .evergreen/config_generator/generate.py
+```
+
+Python binary and package requirements are defined in the project root directory's `pyproject.toml` file. When the `pyproject.toml` file is updated, omit `--frozen` to allow `uv.lock` to be updated.
+
+## Layout
+
+The contents of this directory are organized as follows:
+
+- `config.yml`: the root Evergreen config file.
+- `generated_configs`: generated Evergreen config files included by `config.yml`.
+- `config_generator`: Python scripts used to generate config files under `generated_configs`.
+- `scripts`: shell scripts used by the generated Evergreen config.
+
+## Config Generator
+
+Config generator scripts are organized into three subdirectories.
+
+### Components
+
+These scripts define Evergreen functions, tasks, task groups, and build variants. Components which only define Evergreen functions (for reuse by multiple components) are grouped under the `funcs` subdirectory. All other components (which define a task, task group, or build variant) are located outside the `funcs` directory.
+
+### Etc
+
+These scripts define helper utilities used by components, but do not define any Evergreen functions, tasks, task groups, or build variants themselves. These scripts are only imported by scripts under `components`.
+
+### Generators
+
+These scripts are imported by `generate.py` and are each responsible for generating an Evergreen config file under `generated_configs` (`functions.py` generates `functions.yml`, etc.). These scripts only scan the contents of the `components` directory.
diff --git a/.evergreen/build_example_projects.sh b/.evergreen/build_example_projects.sh
deleted file mode 100755
index 066b8b9f04..0000000000
--- a/.evergreen/build_example_projects.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env bash
-
-set -o errexit
-set -o pipefail
-
-if [ "$USE_STATIC_LIBS" ]; then
- DIR=static
-else
- DIR=shared
-fi
-
-cd examples/projects
-
-for project in bsoncxx mongocxx; do
-(
- cd $project
-
- if ! ( cd cmake/$DIR && ./build.sh >|output.txt 2>&1); then
- echo "Example $project/cmake/$DIR failed" 1>&2
- cat cmake/$DIR/output.txt 1>&2
- exit 1
- fi
-
- if [[ ! ( "$OSTYPE" =~ cygwin ) ]]; then
- if ! ( cd pkg-config/$DIR && ./build.sh >|output.txt 2>&1); then
- echo "Example $project/pkg-config/$DIR failed" 1>&2
- cat pkg-config/$DIR/output.txt 1>&2
- exit 1
- fi
- fi
-)
-done
diff --git a/.evergreen/config.yml b/.evergreen/config.yml
new file mode 100644
index 0000000000..c9c2a4b022
--- /dev/null
+++ b/.evergreen/config.yml
@@ -0,0 +1,38 @@
+# Default timeout for all tasks is 1 hour.
+# May be overridden by individual tasks.
+exec_timeout_secs: 3600
+
+# Default command type is 'system' to indicate failures unrelated to tests or
+# their setup. Most commands should define their type as 'setup' or 'test'.
+# - setup: before test (lavendar).
+# - test: during test (red).
+# - system: after test (purple).
+command_type: system
+
+# Ensure Evergreen tests earlier commits when a task fails.
+stepback: true
+
+# Ensure failure in pre commands is also considered task failure.
+pre_error_fails_task: true
+
+# Too many post commands are not designed to handle errors.
+# TODO: set to true once failing post commands have been moved into
+# teardown_group commands of appropriate task groups.
+post_error_fails_task: false
+
+# Commands run after all tasks (excluding those in task groups).
+# Use sparingly and ensure they are error-proof.
+# TODO: move into teardown_group commands of appropriate task groups.
+post:
+ - func: "stop_mongod"
+ - func: "backtrace"
+ # Workaround for CXX-2040
+ # - func: "upload working dir"
+ - func: "upload mongo orchestration artifacts"
+ - func: "upload code coverage"
+
+include:
+ - filename: .evergreen/generated_configs/functions.yml
+ - filename: .evergreen/generated_configs/task_groups.yml
+ - filename: .evergreen/generated_configs/tasks.yml
+ - filename: .evergreen/generated_configs/variants.yml
diff --git a/.evergreen/config_generator/components/abi_stability.py b/.evergreen/config_generator/components/abi_stability.py
new file mode 100644
index 0000000000..2db4f2de29
--- /dev/null
+++ b/.evergreen/config_generator/components/abi_stability.py
@@ -0,0 +1,188 @@
+from config_generator.components.funcs.install_c_driver import InstallCDriver
+
+from config_generator.etc.distros import find_large_distro
+from config_generator.etc.function import Function, merge_defns
+from config_generator.etc.utils import TaskGroup, bash_exec
+
+from shrub.v3.evg_command import EvgCommandType, git_get_project, s3_put
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+
+
+TAG = 'abi-stability'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('polyfill', 11),
+ ('stdlib', 17),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+class AbiComplianceCheck(Function):
+ name = 'abi-compliance-check'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-setup.sh'
+ ),
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ script='mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-test.sh'
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='text/html',
+ display_name='ABI Compliance Check (Stable): ',
+ local_files_include_filter='cxx-abi/compat_reports/**/compat_report.html',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/abi/',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='text/plain',
+ display_name='ABI Compliance Check (Stable): ',
+ local_files_include_filter='cxx-abi/logs/**/log.txt',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/abi/',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='text/html',
+ display_name='ABI Compliance Check (Unstable): ',
+ local_files_include_filter='cxx-noabi/compat_reports/**/compat_report.html',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/noabi/',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='text/plain',
+ display_name='ABI Compliance Check (Unstable): ',
+ local_files_include_filter='cxx-noabi/logs/**/log.txt',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/noabi/',
+ ),
+ ]
+
+
+class Abidiff(Function):
+ name = 'abidiff'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='mongo-cxx-driver/.evergreen/scripts/abidiff-setup.sh'
+ ),
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ script='mongo-cxx-driver/.evergreen/scripts/abidiff-test.sh'
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='text/plain',
+ display_name='abidiff (Stable): ',
+ local_files_include_filter='cxx-abi/*.txt',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abidiff/abi/',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='text/plain',
+ display_name='abidiff (Unstable): ',
+ local_files_include_filter='cxx-noabi/*.txt',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abidiff/noabi/',
+ ),
+ ]
+
+
+class AbiProhibitedSymbols(Function):
+ name = 'abi-prohibited-symbols'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ script='mongo-cxx-driver/.evergreen/scripts/abi-prohibited-symbols-test.sh'
+ )
+
+
+def functions():
+ return merge_defns(
+ AbiComplianceCheck.defn(),
+ Abidiff.defn(),
+ AbiProhibitedSymbols.defn(),
+ )
+
+
+def tasks():
+ distro_name = 'ubuntu2204'
+ distro = find_large_distro(distro_name)
+
+ return [
+ EvgTask(
+ name=func.name,
+ tags=[TAG, func.name, distro_name],
+ run_on=distro.name,
+ commands=[func.call()],
+ )
+ for func in [AbiComplianceCheck, Abidiff, AbiProhibitedSymbols]
+ ]
+
+
+def task_groups():
+ return [
+ TaskGroup(
+ name=f'tg-{TAG}',
+ max_hosts=-1,
+ setup_group_can_fail_task=True,
+ setup_task=[
+ git_get_project(directory='mongo-cxx-driver'),
+ InstallCDriver.call(),
+ bash_exec(
+ include_expansions_in_env=['cxx_standard'],
+ script='mongo-cxx-driver/.evergreen/scripts/abi-stability-setup.sh'
+ ),
+ ],
+ tasks=[f'.{TAG}'],
+ teardown_task_can_fail_task=True,
+ teardown_task=[bash_exec(script='rm -rf *'),],
+ )
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=f'abi-stability-{name}',
+ display_name=f'ABI Stability Checks ({name})',
+ expansions={
+ 'cxx_standard': f'{cxx_standard}', # Use a polyfill library.
+ },
+ tasks=[EvgTaskRef(name='tg-abi-stability')],
+ display_tasks=[
+ DisplayTask(
+ name=f'ABI Stability Checks ({name})',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ )
+ for name, cxx_standard in MATRIX
+ ]
diff --git a/.evergreen/config_generator/components/atlas_search_indexes.py b/.evergreen/config_generator/components/atlas_search_indexes.py
new file mode 100644
index 0000000000..1184647fb5
--- /dev/null
+++ b/.evergreen/config_generator/components/atlas_search_indexes.py
@@ -0,0 +1,109 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_det import FetchDET
+from config_generator.components.funcs.install_c_driver import InstallCDriver
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_command import EvgCommandType, expansions_update
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+from shrub.v3.evg_task_group import EvgTaskGroup
+
+
+TAG = 'atlas-search-indexes'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ (7.0),
+ (8.0),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+class TestSearchIndexHelpers(Function):
+ name = 'test-search-index-helpers'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ export MONGODB_URI=${MONGODB_URI}
+ export LD_LIBRARY_PATH=$(pwd)/../mongoc/lib
+
+ ./build/src/mongocxx/test/test_driver "atlas search indexes prose tests"
+ '''
+ )
+
+
+def functions():
+ return TestSearchIndexHelpers.defn()
+
+
+def tasks():
+ distro_name = 'ubuntu2004'
+ distro = find_large_distro(distro_name)
+
+ return [
+ EvgTask(
+ name=f'{TAG}-{mongodb_version}',
+ tags=[TAG, distro_name],
+ run_on=distro.name,
+ commands=[
+ InstallCDriver.call(),
+ Compile.call(build_type='Debug'),
+ TestSearchIndexHelpers.call(),
+ ],
+ )
+ for mongodb_version in MATRIX
+ ]
+
+
+def task_groups():
+ return [
+ EvgTaskGroup(
+ name=f'tg-{TAG}-{mongodb_version}',
+ setup_group_can_fail_task=True,
+ setup_group_timeout_secs=1800,
+ setup_group=[
+ Setup.call(),
+ FetchDET.call(),
+ bash_exec(
+ working_dir='mongo-cxx-driver',
+ env={'MONGODB_VERSION': f'{mongodb_version}'},
+ add_expansions_to_env=True,
+ script='${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh',
+ ),
+ expansions_update(file='mongo-cxx-driver/atlas-expansion.yml'),
+ ],
+ tasks=[f'{TAG}-{mongodb_version}'],
+ teardown_group=[
+ bash_exec(
+ working_dir='mongo-cxx-driver',
+ add_expansions_to_env=True,
+ script='${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh'
+ )
+ ]
+ )
+ for mongodb_version in MATRIX
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=[EvgTaskRef(name=f'tg-{TAG}-{mongodb_version}') for mongodb_version in MATRIX],
+ display_tasks=[
+ DisplayTask(
+ name=f'{TAG}-matrix',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/benchmarks.py b/.evergreen/config_generator/components/benchmarks.py
new file mode 100644
index 0000000000..b1d5019168
--- /dev/null
+++ b/.evergreen/config_generator/components/benchmarks.py
@@ -0,0 +1,88 @@
+from config_generator.components.funcs.setup import Setup
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.start_mongod import StartMongod
+
+from config_generator.etc.function import Function, merge_defns
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant
+from shrub.v3.evg_command import BuiltInCommand, EvgCommandType
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'benchmarks'
+
+
+class RunBenchmarks(Function):
+ name = 'benchmarks-run'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ working_dir='mongo-cxx-driver',
+ script='etc/microbenchmark-test-data.sh',
+ ),
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='build/benchmark/microbenchmarks all',
+ ),
+
+ BuiltInCommand(
+ command='perf.send',
+ type=EvgCommandType.SYSTEM,
+ params={
+ 'name': 'perf',
+ 'file': 'mongo-cxx-driver/results.json',
+ }
+ ),
+ ]
+
+
+class CompileBenchmarks(Function):
+ name = 'benchmarks-compile'
+ commands = bash_exec(
+ command_type=EvgCommandType.SETUP,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ set -o errexit
+ set -o pipefail
+ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(pwd)/../mongoc" -DCMAKE_CXX_STANDARD=20
+ cmake --build build --target microbenchmarks --parallel 64
+ '''
+ )
+
+
+def functions():
+ return merge_defns(
+ CompileBenchmarks.defn(),
+ RunBenchmarks.defn(),
+ )
+
+
+def tasks():
+ distro_name = 'rhel90-dbx-perf'
+
+ return [
+ EvgTask(
+ name=TAG,
+ tags=[TAG, distro_name],
+ run_on=f'{distro_name}-large',
+ commands=[
+ Setup.call(),
+ StartMongod.call(mongodb_version='v6.0-perf', topology='single'),
+ FetchCDriverSource.call(),
+ CompileBenchmarks.call(),
+ RunBenchmarks.call(),
+ ],
+ )
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=TAG,
+ display_name=TAG,
+ tasks=[EvgTaskRef(name=f'.{TAG}')]
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/clang_tidy.py b/.evergreen/config_generator/components/clang_tidy.py
new file mode 100644
index 0000000000..5f0e4af3ba
--- /dev/null
+++ b/.evergreen/config_generator/components/clang_tidy.py
@@ -0,0 +1,69 @@
+from config_generator.components.funcs.install_c_driver import InstallCDriver
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import compiler_to_vars, find_small_distro
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant
+from shrub.v3.evg_command import EvgCommandType
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+from typing import Mapping
+
+
+TAG = 'clang-tidy'
+
+
+class ClangTidy(Function):
+ name = TAG
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ include_expansions_in_env=[
+ 'cc_compiler',
+ 'cxx_compiler',
+ 'distro_id',
+ ],
+ script='etc/run-clang-tidy.sh',
+ )
+
+ @classmethod
+ def call(cls, compiler: str, vars: Mapping[str, str] = None):
+ vars = dict(vars or {})
+
+ vars |= compiler_to_vars(compiler)
+
+ return cls.default_call(vars=vars)
+
+
+def functions():
+ return ClangTidy.defn()
+
+
+def tasks():
+ distro_name = 'ubuntu2004'
+ distro = find_small_distro(distro_name)
+
+ return [
+ EvgTask(
+ name=TAG,
+ tags=[TAG, distro_name],
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ InstallCDriver.call(compiler='clang'),
+ ClangTidy.call(compiler='clang'),
+ ],
+ ),
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=TAG,
+ display_name='Clang Tidy',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/compile_only.py b/.evergreen/config_generator/components/compile_only.py
new file mode 100644
index 0000000000..9785cfef5d
--- /dev/null
+++ b/.evergreen/config_generator/components/compile_only.py
@@ -0,0 +1,119 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro, make_distro_str
+from config_generator.etc.utils import TaskRef
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+from itertools import product
+
+
+TAG = 'compile-only'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('rhel79', None, ['Release'], ['shared'], ['impls']),
+
+ ('rhel81-power8', None, ['Release'], ['shared'], [None]),
+ ('rhel83-zseries', None, ['Release'], ['shared'], [None]),
+
+ ('ubuntu2004', None, ['Debug'], ['shared'], [None]),
+ ('ubuntu2004', 'gcc', ['Debug'], ['shared'], [None]),
+ ('ubuntu2004', 'clang', ['Debug'], ['shared'], [None]),
+
+ ('windows-64-vs2015', 'vs2015x64', ['Debug'], ['shared'], [None]),
+ ('windows-64-vs2015', 'vs2015x64', ['Release'], ['shared'], [None]),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+def generate_tasks():
+ res = []
+
+ for distro_name, compiler, build_types, link_types, polyfills in MATRIX:
+ for build_type, link_type, polyfill in product(build_types, link_types, polyfills):
+ distro = find_large_distro(distro_name)
+
+ name = f'{TAG}-{make_distro_str(distro_name, compiler, None)}'
+ tags = [TAG, distro_name]
+
+ if compiler is not None:
+ tags.append(compiler)
+
+ name += f'-{build_type.lower()}-{link_type}'
+ tags += [build_type.lower(), link_type]
+
+ if polyfill is not None:
+ name += f'-{polyfill}'
+ tags.append(polyfill)
+
+ # PowerPC and zSeries are limited resources.
+ patchable = False if any(pattern in distro_name for pattern in ['power8', 'zseries']) else None
+
+ res.append(
+ EvgTask(
+ name=name,
+ tags=tags,
+ run_on=distro.name,
+ patchable=patchable,
+ commands=[
+ Setup.call(),
+ FetchCDriverSource.call(),
+ Compile.call(
+ build_type=build_type,
+ compiler=compiler,
+ polyfill=polyfill,
+ vars={'ENABLE_TESTS': 'OFF'}
+ )
+ ],
+ )
+ )
+
+ return res
+
+
+TASKS = generate_tasks()
+
+
+def tasks():
+ res = TASKS.copy()
+
+ # PowerPC and zSeries are limited resources.
+ for task in res:
+ if any(pattern in task.run_on for pattern in ["power8", "zseries"]):
+ task.patchable = False
+
+ return res
+
+
+def variants():
+ tasks = []
+
+ one_day = 1440 # Seconds.
+
+ # PowerPC and zSeries are limited resources.
+ tasks = [
+ TaskRef(name=f'.{TAG} .rhel81-power8', batchtime=one_day),
+ TaskRef(name=f'.{TAG} .rhel83-zseries', batchtime=one_day),
+ EvgTaskRef(name=f'.{TAG} !.rhel81-power8 !.rhel83-zseries'),
+ ]
+
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=tasks,
+ display_tasks=[
+ DisplayTask(
+ name=f'{TAG}-matrix',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/docker_build.py b/.evergreen/config_generator/components/docker_build.py
new file mode 100644
index 0000000000..664aa26e1a
--- /dev/null
+++ b/.evergreen/config_generator/components/docker_build.py
@@ -0,0 +1,78 @@
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant
+from shrub.v3.evg_command import EvgCommandType
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'docker-build'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('ubuntu2204-arm64'),
+ ('ubuntu2204'),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+class DockerImageBuild(Function):
+ name = 'docker-image-build'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ set -o errexit
+ set -o pipefail
+ set -x
+ echo "Building Alpine Docker image"
+ make -C extras/docker/alpine3.19 nocachebuild test
+ echo "Building Debian Docker image"
+ make -C extras/docker/bookworm nocachebuild test
+ echo "Building Red Hat UBI Docker image"
+ make -C extras/docker/redhat-ubi-9.4 nocachebuild test
+ echo "Building Ubuntu Docker image"
+ make -C extras/docker/noble nocachebuild test
+ '''
+ )
+
+
+def functions():
+ return DockerImageBuild.defn()
+
+
+def tasks():
+ res = []
+
+ for distro_name in MATRIX:
+ distro = find_large_distro(distro_name)
+
+ res.append(
+ EvgTask(
+ name=f'{TAG}-{distro_name}',
+ tags=[TAG, distro_name],
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ DockerImageBuild.call(),
+ ]
+ )
+ )
+
+ return res
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=TAG,
+ display_name='Docker Build',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/funcs/backtrace.py b/.evergreen/config_generator/components/funcs/backtrace.py
new file mode 100644
index 0000000000..b36c630d35
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/backtrace.py
@@ -0,0 +1,17 @@
+from shrub.v3.evg_command import EvgCommandType
+
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+
+class Backtrace(Function):
+ name = 'backtrace'
+ commands = bash_exec(
+ command_type=EvgCommandType.SYSTEM,
+ working_dir='mongo-cxx-driver',
+ script='etc/debug-core-evergreen.sh',
+ )
+
+
+def functions():
+ return Backtrace.defn()
diff --git a/.evergreen/config_generator/components/funcs/compile.py b/.evergreen/config_generator/components/funcs/compile.py
new file mode 100644
index 0000000000..ae8eaa45ad
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/compile.py
@@ -0,0 +1,57 @@
+from shrub.v3.evg_command import EvgCommandType
+
+from config_generator.etc.distros import compiler_to_vars
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from typing import Mapping
+
+
+class Compile(Function):
+ name = 'compile'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ env={
+ 'CC': '${cc_compiler}',
+ 'CXX': '${cxx_compiler}',
+ },
+ include_expansions_in_env=[
+ 'branch_name',
+ 'BSON_EXTRA_ALIGNMENT',
+ 'BSONCXX_POLYFILL',
+ 'build_type',
+ 'COMPILE_MACRO_GUARD_TESTS',
+ 'distro_id',
+ 'ENABLE_CODE_COVERAGE',
+ 'ENABLE_TESTS',
+ 'generator',
+ 'platform',
+ 'REQUIRED_CXX_STANDARD',
+ 'RUN_DISTCHECK',
+ 'USE_SANITIZER_ASAN',
+ 'USE_SANITIZER_UBSAN',
+ 'USE_STATIC_LIBS',
+ ],
+ working_dir='mongo-cxx-driver',
+ script='.evergreen/scripts/compile.sh',
+ )
+
+ @classmethod
+ def call(
+ cls,
+ build_type: str | None = None,
+ compiler: str | None = None,
+ polyfill: str | None = None,
+ vars: Mapping[str, str] = {}
+ ):
+ vars = vars if vars else {}
+
+ vars |= {'build_type': build_type} if build_type else {}
+ vars |= compiler_to_vars(compiler)
+ vars |= {'BSONCXX_POLYFILL': polyfill} if polyfill else {}
+
+ return cls.default_call(vars=vars if vars else None)
+
+
+def functions():
+ return Compile.defn()
diff --git a/.evergreen/config_generator/components/funcs/fetch_c_driver_source.py b/.evergreen/config_generator/components/funcs/fetch_c_driver_source.py
new file mode 100644
index 0000000000..b2dabc81f5
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/fetch_c_driver_source.py
@@ -0,0 +1,19 @@
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_command import EvgCommandType
+
+# fetch_c_driver_source may be used to fetch the C driver source without installing the C driver.
+# This can be used when only CI scripts are needed.
+
+
+class FetchCDriverSource(Function):
+ name = 'fetch_c_driver_source'
+ commands = bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='git clone --depth 1 https://github.com/mongodb/mongo-c-driver mongoc'
+ )
+
+
+def functions():
+ return FetchCDriverSource.defn()
diff --git a/.evergreen/config_generator/components/funcs/fetch_det.py b/.evergreen/config_generator/components/funcs/fetch_det.py
new file mode 100644
index 0000000000..17e1934766
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/fetch_det.py
@@ -0,0 +1,28 @@
+from shrub.v3.evg_command import EvgCommandType
+from shrub.v3.evg_command import expansions_update
+
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+
+class FetchDET(Function):
+ name = 'fetch-det'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='''\
+ if [[ ! -d drivers-evergreen-tools ]]; then
+ git clone --depth=1 https://github.com/mongodb-labs/drivers-evergreen-tools.git
+ fi
+ echo "DRIVERS_TOOLS: $(pwd)/drivers-evergreen-tools" > det-expansion.yml
+ ''',
+ ),
+ expansions_update(
+ command_type=EvgCommandType.SETUP,
+ file='det-expansion.yml',
+ ),
+ ]
+
+
+def functions():
+ return FetchDET.defn()
diff --git a/.evergreen/config_generator/components/funcs/install_c_driver.py b/.evergreen/config_generator/components/funcs/install_c_driver.py
new file mode 100644
index 0000000000..cd5899b499
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/install_c_driver.py
@@ -0,0 +1,44 @@
+from config_generator.etc.distros import compiler_to_vars
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_command import EvgCommandType, KeyValueParam, expansions_update
+
+from typing import Mapping
+
+
+# If updating mongoc_version_minimum, also update:
+# - LIBBSON_REQUIRED_VERSION and LIBMONGOC_REQUIRED_VERSION in CMakeLists.txt
+# - the version of pkg:github/mongodb/mongo-c-driver in etc/purls.txt
+# - the default value of --c-driver-build-ref in etc/make_release.py
+# Only LIBMONGOC_DOWNLOAD_VERSION needs to be updated when pinning to an unreleased commit.
+MONGOC_VERSION_MINIMUM = '1.28.0'
+
+
+class InstallCDriver(Function):
+ name = 'install_c_driver'
+ commands = [
+ expansions_update(
+ command_type=EvgCommandType.SETUP,
+ updates=[
+ KeyValueParam(key='mongoc_version_minimum', value=MONGOC_VERSION_MINIMUM)
+ ]
+ ),
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ add_expansions_to_env=True,
+ script='mongo-cxx-driver/.evergreen/scripts/install-c-driver.sh'
+ ),
+ ]
+
+ @classmethod
+ def call(cls, compiler: str | None = None, vars: Mapping[str, str] = None):
+ vars = dict(vars or {})
+
+ vars |= compiler_to_vars(compiler)
+
+ return cls.default_call(vars=vars if vars else None)
+
+
+def functions():
+ return InstallCDriver.defn()
diff --git a/.evergreen/config_generator/components/funcs/run_kms_servers.py b/.evergreen/config_generator/components/funcs/run_kms_servers.py
new file mode 100644
index 0000000000..fdeea5b3a2
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/run_kms_servers.py
@@ -0,0 +1,54 @@
+from shrub.v3.evg_command import EvgCommandType
+
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+
+class RunKMSServers(Function):
+ name = 'run_kms_servers'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='''\
+ set -o errexit
+ echo "Preparing CSFLE venv environment..."
+ if [[ "${distro_id}" =~ windows-64-vs2015-* ]]; then
+ # Python: ImportError: DLL load failed while importing _rust: The specified procedure could not be found.
+ echo "Preparing CSFLE venv environment... skipped."
+ exit 0
+ fi
+ cd ./drivers-evergreen-tools/.evergreen/csfle
+ # This function ensures future invocations of activate-kmstlsvenv.sh conducted in
+ # parallel do not race to setup a venv environment; it has already been prepared.
+ # This primarily addresses the situation where the "test" and "run_kms_servers"
+ # functions invoke 'activate-kmstlsvenv.sh' simultaneously.
+ . ./activate-kmstlsvenv.sh && deactivate
+ echo "Preparing CSFLE venv environment... done."
+ ''',
+ ),
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ background=True,
+ script='''\
+ set -o errexit
+ echo "Starting mock KMS servers..."
+ if [[ "${distro_id}" =~ windows-64-vs2015-* ]]; then
+ # Python: ImportError: DLL load failed while importing _rust: The specified procedure could not be found.
+ echo "Starting mock KMS servers... skipped."
+ exit 0
+ fi
+ cd ./drivers-evergreen-tools/.evergreen/csfle
+ . ./activate-kmstlsvenv.sh
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/server.pem --port 8999 &
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/expired.pem --port 9000 &
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/wrong-host.pem --port 9001 &
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/server.pem --port 9002 --require_client_cert &
+ python -u kms_kmip_server.py &
+ echo "Starting mock KMS servers... done."
+ ''',
+ ),
+ ]
+
+
+def functions():
+ return RunKMSServers.defn()
diff --git a/.evergreen/config_generator/components/funcs/setup.py b/.evergreen/config_generator/components/funcs/setup.py
new file mode 100644
index 0000000000..027db05648
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/setup.py
@@ -0,0 +1,40 @@
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_command import EvgCommandType, git_get_project
+
+
+class Setup(Function):
+ name = 'setup'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='''\
+ set -o errexit
+ set -o pipefail
+ rm -rf "mongo-cxx-driver"
+ rm -fr "mongo-c-driver"
+ rm -fr mongod
+ rm -fr drivers-evergreen-tools
+ '''
+ ),
+ git_get_project(directory='mongo-cxx-driver'),
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='''\
+ set -o errexit
+ set -o pipefail
+ cc --version || true
+ c++ --version || true
+ gcc --version || true
+ g++ --version || true
+ clang --version || true
+ cmake --version || true
+ openssl version || true
+ '''
+ ),
+ ]
+
+
+def functions():
+ return Setup.defn()
diff --git a/.evergreen/config_generator/components/funcs/start_mongod.py b/.evergreen/config_generator/components/funcs/start_mongod.py
new file mode 100644
index 0000000000..ad05be35d9
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/start_mongod.py
@@ -0,0 +1,46 @@
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_command import EvgCommandType, expansions_update
+
+from typing import Mapping
+
+
+class StartMongod(Function):
+ name = 'start_mongod'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SETUP,
+ include_expansions_in_env=[
+ "build_variant",
+ "mongodb_version",
+
+ "AUTH",
+ "ORCHESTRATION_FILE",
+ "REQUIRE_API_VERSION",
+ "TOPOLOGY",
+ ],
+ script='mongo-cxx-driver/.evergreen/scripts/start-mongod.sh',
+ ),
+ expansions_update(
+ command_type=EvgCommandType.SETUP,
+ file='drivers-evergreen-tools/mo-expansion.yml',
+ ),
+ ]
+
+ @classmethod
+ def call(cls, mongodb_version: str, topology: str, vars: Mapping[str, str] = None):
+ vars = dict(vars or {})
+
+ vars |= {'mongodb_version': mongodb_version}
+
+ match topology:
+ case 'single': pass
+ case 'replica': vars |= {'TOPOLOGY': 'replica_set'}
+ case 'sharded': vars |= {'TOPOLOGY': 'sharded_cluster'}
+
+ return cls.default_call(vars=vars if vars else None)
+
+
+def functions():
+ return StartMongod().defn()
diff --git a/.evergreen/config_generator/components/funcs/stop_mongod.py b/.evergreen/config_generator/components/funcs/stop_mongod.py
new file mode 100644
index 0000000000..c8e54b9771
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/stop_mongod.py
@@ -0,0 +1,25 @@
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_command import EvgCommandType
+
+
+class StopMongod(Function):
+ name = 'stop_mongod'
+ commands = bash_exec(
+ command_type=EvgCommandType.SYSTEM,
+ script='''\
+ set -o errexit
+ set -o pipefail
+ if cd drivers-evergreen-tools/.evergreen/orchestration 2>/dev/null; then
+ . ../venv-utils.sh
+ if venvactivate venv; then
+ mongo-orchestration stop
+ fi
+ fi
+ '''
+ )
+
+
+def functions():
+ return StopMongod.defn()
diff --git a/.evergreen/config_generator/components/funcs/test.py b/.evergreen/config_generator/components/funcs/test.py
new file mode 100644
index 0000000000..1e56ee648b
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/test.py
@@ -0,0 +1,57 @@
+from shrub.v3.evg_command import EvgCommandType
+
+from config_generator.etc.distros import compiler_to_vars
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from typing import Mapping
+
+
+class Test(Function):
+ name = 'test'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ include_expansions_in_env=[
+ 'build_type',
+ 'CRYPT_SHARED_LIB_PATH', # Set by run-orchestration.sh in "start_mongod".
+ 'cse_aws_access_key_id',
+ 'cse_aws_secret_access_key',
+ 'cse_azure_client_id',
+ 'cse_azure_client_secret',
+ 'cse_azure_tenant_id',
+ 'cse_gcp_email',
+ 'cse_gcp_privatekey',
+ 'disable_slow_tests',
+ 'distro_id',
+ 'example_projects_cc',
+ 'example_projects_cxx',
+ 'example_projects_cxx_standard',
+ 'example_projects_cxxflags',
+ 'example_projects_ldflags',
+ 'generator',
+ 'lib_dir',
+ 'MONGOCXX_TEST_TOPOLOGY',
+ 'MONGODB_API_VERSION',
+ 'platform',
+ 'TEST_WITH_ASAN',
+ 'TEST_WITH_UBSAN',
+ 'TEST_WITH_VALGRIND',
+ 'use_mongocryptd',
+ 'USE_STATIC_LIBS',
+ ],
+ working_dir='mongo-cxx-driver',
+ script='.evergreen/scripts/test.sh',
+ )
+
+ @classmethod
+ def call(cls, build_type: str | None = None, compiler: str | None = None, vars: Mapping[str, str] = None):
+ vars = dict(vars or {})
+
+ vars |= {'build_type': build_type} if build_type else {}
+ vars |= compiler_to_vars(compiler)
+
+ return cls.default_call(vars=vars if vars else None)
+
+
+def functions():
+ return Test.defn()
diff --git a/.evergreen/config_generator/components/funcs/test_atlas_connectivity.py b/.evergreen/config_generator/components/funcs/test_atlas_connectivity.py
new file mode 100644
index 0000000000..bcd2352c2e
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/test_atlas_connectivity.py
@@ -0,0 +1,29 @@
+from shrub.v3.evg_command import EvgCommandType
+
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+
+class TestAtlasConnectivity(Function):
+ name = 'test atlas connectivity'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ silent=True,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ export MONGOC_INSTALL_PREFIX=$(pwd)/../mongoc
+ export MONGOCXX_INSTALL_PREFIX=$(pwd)/build/install
+ export LIB_DIR=${lib_dir}
+ export BUILD_TYPE=${build_type}
+ export BUILD_DIR=$(pwd)/build
+
+ # The atlas_serverless_uri expansion is set in the Evergreen project settings.
+ export URI="${atlas_serverless_uri}"
+
+ ./.evergreen/scripts/connect.sh
+ '''
+ )
+
+
+def functions():
+ return TestAtlasConnectivity.defn()
diff --git a/.evergreen/config_generator/components/funcs/test_auth.py b/.evergreen/config_generator/components/funcs/test_auth.py
new file mode 100644
index 0000000000..7e34e0ce7e
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/test_auth.py
@@ -0,0 +1,25 @@
+from shrub.v3.evg_command import EvgCommandType
+
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+
+class TestAuth(Function):
+ name = 'test auth'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ export MONGOC_INSTALL_PREFIX=$(pwd)/../mongoc
+ export MONGOCXX_INSTALL_PREFIX=$(pwd)/build/install
+ export LIB_DIR=${lib_dir}
+ export BUILD_TYPE=${build_type}
+ export BUILD_DIR=$(pwd)/build
+ export URI="mongodb://bob:pwd123@localhost"
+ ./.evergreen/scripts/connect.sh
+ '''
+ )
+
+
+def functions():
+ return TestAuth.defn()
diff --git a/.evergreen/config_generator/components/funcs/upload_code_coverage.py b/.evergreen/config_generator/components/funcs/upload_code_coverage.py
new file mode 100644
index 0000000000..6e6f53455e
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/upload_code_coverage.py
@@ -0,0 +1,18 @@
+from shrub.v3.evg_command import EvgCommandType
+
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+
+class UploadCodeCoverage(Function):
+ name = 'upload code coverage'
+ commands = bash_exec(
+ command_type=EvgCommandType.SYSTEM,
+ include_expansions_in_env=['codecov_token'],
+ working_dir='mongo-cxx-driver',
+ script='.evergreen/scripts/upload-code-coverage.sh',
+ )
+
+
+def functions():
+ return UploadCodeCoverage.defn()
diff --git a/.evergreen/config_generator/components/funcs/upload_mongo_orchestration_artifacts.py b/.evergreen/config_generator/components/funcs/upload_mongo_orchestration_artifacts.py
new file mode 100644
index 0000000000..cfbfd4bc5d
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/upload_mongo_orchestration_artifacts.py
@@ -0,0 +1,38 @@
+from shrub.v3.evg_command import EvgCommandType, s3_put
+
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+
+class UploadMongoOrchestrationArtifacts(Function):
+ name = 'upload mongo orchestration artifacts'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.SYSTEM,
+ script='''\
+ set -o errexit
+ for log in $(find . -name '*.log'); do
+ tar rf mongodb-logs.tar "$log"
+ done
+ if [[ -f mongodb-logs.tar ]]; then
+ gzip mongodb-logs.tar
+ fi
+ ''',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='${content_type|application/x-gzip}',
+ display_name='mongodb-logs.tar.gz',
+ local_file='mongodb-logs.tar.gz',
+ optional=True,
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-mongodb-logs.tar.gz',
+ ),
+ ]
+
+
+def functions():
+ return UploadMongoOrchestrationArtifacts.defn()
diff --git a/.evergreen/config_generator/components/funcs/upload_working_dir.py b/.evergreen/config_generator/components/funcs/upload_working_dir.py
new file mode 100644
index 0000000000..a6e6a71e4b
--- /dev/null
+++ b/.evergreen/config_generator/components/funcs/upload_working_dir.py
@@ -0,0 +1,30 @@
+from shrub.v3.evg_command import EvgCommandType, archive_targz_pack, s3_put
+
+from config_generator.etc.function import Function
+
+
+class UploadWorkingDir(Function):
+ name = 'upload working dir'
+ commands = [
+ archive_targz_pack(
+ command_type=EvgCommandType.SYSTEM,
+ include=['./**'],
+ source_dir='mongo-cxx-driver',
+ target='working-dir.tar.gz',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='${content_type|application/x-gzip}',
+ display_name='working-dir.tar.gz',
+ local_file='working-dir.tar.gz',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-working-dir.tar.gz',
+ ),
+ ]
+
+
+def functions():
+ return UploadWorkingDir.defn()
diff --git a/.evergreen/config_generator/components/integration.py b/.evergreen/config_generator/components/integration.py
new file mode 100644
index 0000000000..ab0cf4a059
--- /dev/null
+++ b/.evergreen/config_generator/components/integration.py
@@ -0,0 +1,214 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.fetch_det import FetchDET
+from config_generator.components.funcs.install_c_driver import InstallCDriver
+from config_generator.components.funcs.run_kms_servers import RunKMSServers
+from config_generator.components.funcs.setup import Setup
+from config_generator.components.funcs.start_mongod import StartMongod
+from config_generator.components.funcs.test import Test
+
+from config_generator.etc.distros import compiler_to_vars, find_large_distro, make_distro_str
+from config_generator.etc.utils import TaskRef
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_command import KeyValueParam, expansions_update
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+from itertools import product
+
+
+TAG = 'integration'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('debian10', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['5.0'], ['single', ]),
+ ('debian10', None, ['Release'], ['shared', ], [None], [None], ['plain'], [False, ], ['5.0'], [ 'replica', 'sharded']),
+
+ ('debian11', None, ['Release'], ['shared', 'static'], [None, ], [None], ['plain'], [False, True], ['5.0'], ['single', ]),
+ ('debian11', None, ['Release'], ['shared', ], [ 20], [None], ['plain'], [False, True], ['5.0'], ['single', ]),
+ ('debian11', None, ['Release'], ['shared', ], [None, ], [None], ['plain'], [False, ], ['5.0'], [ 'replica', 'sharded']),
+
+ ('debian12', None, ['Release'], ['shared', 'static'], [None, ], [None], ['plain', ], [False, True], ['latest'], ['single', ]),
+ ('debian12', None, ['Release'], ['shared', ], [ 20], [None], ['plain', ], [False, True], ['latest'], ['single', ]),
+ ('debian12', None, ['Release'], ['shared', ], [None, ], [None], [ 'csfle'], [False, ], ['latest'], [ 'replica', 'sharded']),
+
+ ('macos-1100', None, ['Release'], ['shared', 'static'], [None], ['boost'], ['plain'], [False, True], ['5.0', 'latest'], ['single']),
+
+ ('rhel81-power8', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['5.0', 'latest'], ['single']),
+ ('rhel83-zseries', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['5.0', '6.0', 'latest'], ['single']),
+
+ ('rhel90', None, ['Release'], ['shared', 'static'], [None, ], [None], ['plain', ], [False, True], ['latest'], ['single', ]),
+ ('rhel90', None, ['Release'], ['shared', ], [ 20], [None], ['plain', ], [False, True], ['latest'], ['single', ]),
+ ('rhel90', None, ['Release'], ['shared', ], [None, ], [None], [ 'csfle'], [False, ], ['latest'], [ 'replica', 'sharded']),
+
+ ('rhel90-arm64', None, ['Release'], ['shared', 'static'], [None, ], [None], ['plain', ], [False, True], ['latest'], ['single', ]),
+ ('rhel90-arm64', None, ['Release'], ['shared', ], [ 20], [None], ['plain', ], [False, True], ['latest'], ['single', ]),
+ ('rhel90-arm64', None, ['Release'], ['shared', ], [None, ], [None], [ 'csfle'], [False, ], ['latest'], [ 'replica', 'sharded']),
+
+ ('ubuntu1804', None, ['Debug', ], ['shared'], [None], [None], ['plain', ], [False, True], ['4.0', '4.2', '4.4', '5.0', '6.0'], ['single', ]),
+ ('ubuntu1804', None, ['Debug', ], ['shared'], [None], [None], [ 'csfle', ], [False, ], ['4.0', '4.2', '4.4', '5.0', '6.0'], [ 'replica', 'sharded']),
+ ('ubuntu1804', None, ['Debug', ], ['shared'], [None], [None], [ 'crypt'], [False, ], [ '4.2', '4.4', '5.0', ], [ 'replica', 'sharded']),
+ ('ubuntu1804', None, [ 'Release'], ['shared'], [None], [None], ['plain', ], [False, ], [ '5.0', ], [ 'replica', 'sharded']),
+
+ ('ubuntu1804-arm64', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['5.0'], ['single']),
+
+ ('ubuntu2004', None, ['Debug', ], ['shared', ], [None], [None], ['plain', ], [False, True], [ '7.0', '8.0', 'latest'], ['single', ]),
+ ('ubuntu2004', None, ['Debug', ], ['shared', ], [None], [None], [ 'csfle', ], [False, ], [ '7.0', '8.0', 'latest'], [ 'replica', 'sharded']),
+ ('ubuntu2004', None, ['Debug', ], ['shared', ], [None], [None], [ 'crypt'], [False, ], [ 'latest'], [ 'replica', 'sharded']),
+ ('ubuntu2004', None, [ 'Release'], ['shared', 'static'], [None], [None], ['plain', ], [False, True], ['5.0', 'latest'], ['single', ]),
+ ('ubuntu2004', None, [ 'Release'], ['shared', ], [None], [None], [ 'csfle', ], [False, ], ['5.0', 'latest'], [ 'replica', 'sharded']),
+ ('ubuntu2004', None, [ 'Release'], ['shared', ], [None], [None], ['plain', ], [False, ], ['5.0', ], [ 'replica', 'sharded']),
+
+ ('ubuntu2004-arm64', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['latest'], ['single']),
+
+ ('windows-vsCurrent', 'vs2019x64', ['Debug'], ['shared'], [None], [None], ['plain'], [False, True], ['4.0', '4.2', '4.4', '5.0', '6.0', '7.0', '8.0', 'latest'], ['single']),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+def tasks():
+ res = []
+
+ for distro_name, compiler, build_types, link_types, cxx_standards, polyfills, with_csfles, with_extra_aligns, mongodb_versions, topologies in MATRIX:
+ for build_type, link_type, cxx_standard, polyfill, with_csfle, with_extra_align, mongodb_version, topology in product(
+ build_types, link_types, cxx_standards, polyfills, with_csfles, with_extra_aligns, mongodb_versions, topologies,
+ ):
+ name = f'{TAG}-{make_distro_str(distro_name, compiler, None)}-{build_type.lower()}-{link_type}'
+ tags = [TAG, distro_name, build_type.lower(), link_type]
+
+ if cxx_standard is not None:
+ name += f'-cxx{cxx_standard}'
+ tags += [f'cxx{cxx_standard}']
+
+ if polyfill is not None:
+ name += f'-{polyfill}'
+ tags += [polyfill]
+
+ if with_csfle in ['csfle', 'crypt']:
+ name += '-csfle'
+ tags += ['csfle']
+
+ if with_extra_align:
+ name += '-extra_alignment'
+ tags += ['extra_alignment']
+
+ name += f'-{mongodb_version}-{topology}'
+ tags += [mongodb_version, topology]
+
+ if with_csfle == 'crypt':
+ name += '-mongocryptd'
+ tags += ['mongocryptd']
+
+ distro = find_large_distro(distro_name)
+
+ updates = []
+ icd_vars = {'BSON_EXTRA_ALIGNMENT': 1} if with_extra_align else {}
+ compile_vars = {'BSON_EXTRA_ALIGNMENT': 1} if with_extra_align else {'RUN_DISTCHECK': 1}
+ test_vars = {'MONGOCXX_TEST_TOPOLOGY': topology}
+
+ updates += [KeyValueParam(key='build_type', value=build_type)]
+ updates += [KeyValueParam(key=key, value=value) for key, value in compiler_to_vars(compiler).items()]
+
+ if distro.os_type == 'windows':
+ test_vars |= {'example_projects_cxx_standard': 17}
+
+ if build_type == 'Debug' and distro.os in ['ubuntu1804', 'ubuntu2004']:
+ updates += [KeyValueParam(key='ENABLE_CODE_COVERAGE', value='ON')]
+
+ if 'rhel' in distro.os:
+ test_vars |= {'lib_dir': 'lib64'}
+
+ if link_type == 'static':
+ compile_vars |= {'USE_STATIC_LIBS': 1}
+ test_vars |= {'USE_STATIC_LIBS': 1}
+
+ if cxx_standard is not None:
+ compile_vars |= {'REQUIRED_CXX_STANDARD': cxx_standard}
+ test_vars |= {
+ 'example_projects_cxx_standard': cxx_standard,
+ 'REQUIRED_CXX_STANDARD': cxx_standard,
+ }
+
+ commands = [expansions_update(updates=updates)] if updates else []
+
+ match with_csfle:
+ case 'plain':
+ if with_extra_align:
+ commands += [
+ Setup.call(),
+ StartMongod.call(mongodb_version=mongodb_version, topology=topology),
+ InstallCDriver.call(vars=icd_vars | {'SKIP_INSTALL_LIBMONGOCRYPT': 1}),
+ Compile.call(polyfill=polyfill, vars=compile_vars),
+ FetchDET.call(),
+ RunKMSServers.call(),
+ Test.call(vars=test_vars),
+ ]
+ else:
+ commands += [
+ Setup.call(),
+ StartMongod.call(mongodb_version=mongodb_version, topology=topology),
+ FetchCDriverSource.call(),
+ Compile.call(polyfill=polyfill, vars=compile_vars),
+ FetchDET.call(),
+ RunKMSServers.call(),
+ Test.call(vars=test_vars),
+ ]
+ case 'csfle':
+ commands += [
+ Setup.call(),
+ StartMongod.call(mongodb_version=mongodb_version, topology=topology),
+ InstallCDriver.call(vars=icd_vars),
+ Compile.call(polyfill=polyfill, vars=compile_vars),
+ FetchDET.call(),
+ RunKMSServers.call(),
+ Test.call(vars=test_vars),
+ ]
+ case 'crypt':
+ commands += [
+ Setup.call(),
+ StartMongod.call(mongodb_version=mongodb_version, topology=topology),
+ InstallCDriver.call(vars=icd_vars),
+ Compile.call(polyfill=polyfill, vars=compile_vars),
+ FetchDET.call(),
+ RunKMSServers.call(),
+ Test.call(vars=test_vars | {'use_mongocryptd': True}),
+ ]
+
+ # PowerPC and zSeries are limited resources.
+ patchable = False if any(pattern in distro_name for pattern in ['power8', 'zseries']) else None
+
+ res.append(
+ EvgTask(
+ name=name,
+ tags=tags,
+ run_on=distro.name,
+ patchable=patchable,
+ commands=commands,
+ )
+ )
+
+ return res
+
+
+def variants():
+ tasks = []
+
+ one_day = 1440 # Seconds.
+
+ # PowerPC and zSeries are limited resources.
+ tasks = [
+ TaskRef(name=f'.{TAG} .rhel81-power8', batchtime=one_day),
+ TaskRef(name=f'.{TAG} .rhel83-zseries', batchtime=one_day),
+ EvgTaskRef(name=f'.{TAG} !.rhel81-power8 !.rhel83-zseries'),
+ ]
+
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=tasks,
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/lint.py b/.evergreen/config_generator/components/lint.py
new file mode 100644
index 0000000000..03da765797
--- /dev/null
+++ b/.evergreen/config_generator/components/lint.py
@@ -0,0 +1,52 @@
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant
+from shrub.v3.evg_command import EvgCommandType
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'lint'
+
+
+class Lint(Function):
+ name = TAG
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='python etc/clang_format.py lint',
+ )
+
+
+def functions():
+ return Lint.defn()
+
+
+def tasks():
+ distro_name = 'ubuntu1804'
+ distro = find_large_distro(distro_name)
+
+ return [
+ EvgTask(
+ name=TAG,
+ tags=[TAG, distro_name],
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ Lint.call(),
+ ],
+ ),
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=TAG,
+ display_name='Lint',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/macro_guards.py b/.evergreen/config_generator/components/macro_guards.py
new file mode 100644
index 0000000000..bdb7395a41
--- /dev/null
+++ b/.evergreen/config_generator/components/macro_guards.py
@@ -0,0 +1,70 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro, make_distro_str
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'macro-guards'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('ubuntu2004', None ),
+ ('ubuntu2004', 'gcc' ),
+ ('ubuntu2004', 'clang'),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+def tasks():
+ res = []
+
+ for distro_name, compiler in MATRIX:
+ distro = find_large_distro(distro_name)
+
+ name = f'{TAG}-{make_distro_str(distro_name, compiler, None)}'
+ tags = [TAG, distro_name]
+
+ if compiler is not None:
+ tags.append(compiler)
+
+ res.append(
+ EvgTask(
+ name=name,
+ tags=tags,
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ FetchCDriverSource.call(),
+ Compile.call(
+ build_type='Debug',
+ compiler=compiler,
+ vars={'COMPILE_MACRO_GUARD_TESTS': 'ON'},
+ )
+ ],
+ )
+ )
+
+ return res
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ display_tasks=[
+ DisplayTask(
+ name=f'{TAG}-matrix',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/mongohouse.py b/.evergreen/config_generator/components/mongohouse.py
new file mode 100644
index 0000000000..2b268b9ee7
--- /dev/null
+++ b/.evergreen/config_generator/components/mongohouse.py
@@ -0,0 +1,91 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro
+from config_generator.etc.function import Function, merge_defns
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant
+from shrub.v3.evg_command import EvgCommandType
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'mongohouse'
+
+
+class BuildMongohouse(Function):
+ name = 'build_mongohouse'
+ commands = bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='''\
+ if [ ! -d "drivers-evergreen-tools" ]; then
+ git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git
+ fi
+ cd drivers-evergreen-tools
+ export DRIVERS_TOOLS=$(pwd)
+
+ .evergreen/atlas_data_lake/pull-mongohouse-image.sh
+ '''
+ )
+
+
+class RunMongohouse(Function):
+ name = 'run_mongohouse'
+ commands = bash_exec(
+ command_type=EvgCommandType.SETUP,
+ script='''\
+ cd drivers-evergreen-tools
+ export DRIVERS_TOOLS=$(pwd)
+
+ .evergreen/atlas_data_lake/run-mongohouse-image.sh
+ '''
+ )
+
+
+class TestMongohouse(Function):
+ name = 'test_mongohouse'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='.evergreen/scripts/test-mongohouse.sh'
+ )
+
+
+def functions():
+ return merge_defns(
+ BuildMongohouse.defn(),
+ RunMongohouse.defn(),
+ TestMongohouse.defn(),
+ )
+
+
+def tasks():
+ distro_name = 'ubuntu2204'
+ distro = find_large_distro(distro_name)
+
+ return [
+ EvgTask(
+ name='test_mongohouse',
+ tags=[TAG, distro_name],
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ FetchCDriverSource.call(),
+ Compile.call(build_type='Release'),
+ BuildMongohouse.call(),
+ RunMongohouse.call(),
+ TestMongohouse.call(),
+ ],
+ ),
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name='mongohouse',
+ display_name='Mongohouse',
+ tasks=[EvgTaskRef(name=f'.{TAG}')]
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/packaging.py b/.evergreen/config_generator/components/packaging.py
new file mode 100644
index 0000000000..038f61aa34
--- /dev/null
+++ b/.evergreen/config_generator/components/packaging.py
@@ -0,0 +1,130 @@
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro
+from config_generator.etc.function import Function, merge_defns
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant
+from shrub.v3.evg_command import EvgCommandType, s3_put
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'packaging'
+
+
+class DebianPackageBuild(Function):
+ name = 'build-package-debian'
+ desc = 'debian'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ set -o errexit
+ export IS_PATCH="${is_patch}"
+ .evergreen/scripts/debian_package_build.sh
+ ''',
+ ),
+ s3_put(
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='${content_type|application/x-gzip}',
+ display_name='"deb.tar.gz"',
+ local_file='deb.tar.gz',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages.tar.gz',
+ ),
+ ]
+
+
+class DebianPackageBuildMnmlstc(Function):
+ name = 'build-package-debian-mnmlstc'
+ desc = 'debian-mnmlstc'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ set -o errexit
+ export IS_PATCH="${is_patch}"
+ export DEB_BUILD_PROFILES="pkg.mongo-cxx-driver.mnmlstc"
+ .evergreen/scripts/debian_package_build.sh
+ ''',
+ ),
+ s3_put(
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='${content_type|application/x-gzip}',
+ display_name='"deb.tar.gz"',
+ local_file='deb.tar.gz',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages-mnmlstc.tar.gz',
+ ),
+ ]
+
+
+class RpmPackageBuild(Function):
+ name = 'build-package-rpm'
+ desc = 'rpm'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='.evergreen/scripts/build_snapshot_rpm.sh',
+ ),
+ s3_put(
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='${content_type|application/x-gzip}',
+ local_file='rpm.tar.gz',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/rpm-packages.tar.gz',
+ ),
+ ]
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ (DebianPackageBuild, 'debian12-latest'),
+ (DebianPackageBuildMnmlstc, 'debian12-latest'),
+ (RpmPackageBuild, 'rhel92-arm64' ),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+def functions():
+ return merge_defns(
+ DebianPackageBuild.defn(),
+ DebianPackageBuildMnmlstc.defn(),
+ RpmPackageBuild.defn(),
+ )
+
+
+def tasks():
+ return [
+ EvgTask(
+ name=f'{TAG}-{fn.desc}',
+ tags=[TAG, distro_name],
+ run_on=find_large_distro(distro_name).name,
+ commands=[
+ Setup.call(),
+ fn.call(),
+ ]
+ )
+ for fn, distro_name in MATRIX
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=TAG,
+ display_name='Linux Distro Packaging',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/sanitizers.py b/.evergreen/config_generator/components/sanitizers.py
new file mode 100644
index 0000000000..2a63f06b98
--- /dev/null
+++ b/.evergreen/config_generator/components/sanitizers.py
@@ -0,0 +1,141 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_det import FetchDET
+from config_generator.components.funcs.install_c_driver import InstallCDriver
+from config_generator.components.funcs.run_kms_servers import RunKMSServers
+from config_generator.components.funcs.setup import Setup
+from config_generator.components.funcs.start_mongod import StartMongod
+from config_generator.components.funcs.test import Test
+
+from config_generator.etc.distros import compiler_to_vars, find_large_distro, make_distro_str
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_command import KeyValueParam, expansions_update
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+from itertools import product
+
+
+TAG = 'sanitizers'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('ubuntu1804', ['asan' ], ['shared', 'static'], [False, True], ['5.0'], ['single']),
+ ('ubuntu1804', ['ubsan'], [ 'static'], [False, ], ['5.0'], ['single']),
+
+ ('ubuntu2004', ['asan' ], ['shared', 'static'], [False, True], ['5.0'], ['single']),
+ ('ubuntu2004', ['ubsan'], [ 'static'], [False, ], ['5.0'], ['single']),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+def tasks():
+ res = []
+
+ compiler = 'clang'
+
+ for distro_name, sanitizers, link_types, with_extra_aligns, mongodb_versions, topologies in MATRIX:
+ for sanitizer, link_type, with_extra_align, mongodb_version, topology in product(
+ sanitizers, link_types, with_extra_aligns, mongodb_versions, topologies
+ ):
+ distro = find_large_distro(distro_name)
+
+ name = f'{TAG}-{sanitizer}-{make_distro_str(distro_name, compiler, None)}'
+ tags = [TAG, sanitizer, distro_name]
+
+ if compiler:
+ tags.append(compiler)
+
+ name += f'-{link_type}'
+ tags += [link_type]
+
+ if with_extra_align:
+ name += f'-extra_alignment'
+ tags += ['extra_alignment']
+
+ name += f'-{mongodb_version}-{topology}'
+ tags += [mongodb_version, topology]
+
+ updates = [KeyValueParam(key='build_type', value='Debug')]
+ updates += [KeyValueParam(key=key, value=value) for key, value in compiler_to_vars(compiler).items()]
+
+ icd_vars = {'SKIP_INSTALL_LIBMONGOCRYPT': 1}
+ compile_vars = {}
+ test_vars = {
+ 'MONGOCXX_TEST_TOPOLOGY': topology,
+ 'example_projects_cc': 'clang',
+ 'example_projects_cxx': 'clang++',
+ }
+
+ if link_type == 'static':
+ updates.append(KeyValueParam(key='USE_STATIC_LIBS', value='1'))
+
+ if with_extra_align:
+ icd_vars |= {'BSON_EXTRA_ALIGNMENT': 1}
+ compile_vars |= {'BSON_EXTRA_ALIGNMENT': 1}
+ else:
+ compile_vars |= {'RUN_DISTCHECK': 1}
+
+ commands = [expansions_update(updates=updates)] if updates else []
+
+ match sanitizer:
+ case 'asan':
+ compile_vars |= {
+ 'USE_SANITIZER_ASAN': 'ON',
+ }
+
+ test_vars |= {
+ 'TEST_WITH_ASAN': 'ON',
+ 'example_projects_cxxflags': '-D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer',
+ 'example_projects_ldflags': '-fsanitize=address',
+ }
+
+ case 'ubsan':
+ compile_vars |= {
+ 'USE_SANITIZER_UBSAN': 'ON',
+ }
+
+ test_vars |= {
+ 'TEST_WITH_UBSAN': 'ON',
+ 'example_projects_cxxflags': '-D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer',
+ 'example_projects_ldflags': '-fsanitize=undefined -fno-sanitize-recover=undefined',
+ }
+
+ commands += [
+ Setup.call(),
+ StartMongod.call(mongodb_version=mongodb_version, topology=topology),
+ InstallCDriver.call(vars=icd_vars),
+ Compile.call(vars=compile_vars),
+ FetchDET.call(),
+ RunKMSServers.call(),
+ Test.call(vars=test_vars),
+ ]
+
+ res.append(
+ EvgTask(
+ name=name,
+ tags=tags,
+ run_on=distro.name,
+ commands=commands,
+ )
+ )
+
+ return res
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ display_tasks=[
+ DisplayTask(
+ name=f'{TAG}-matrix',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/scan_build.py b/.evergreen/config_generator/components/scan_build.py
new file mode 100644
index 0000000000..cfe3325368
--- /dev/null
+++ b/.evergreen/config_generator/components/scan_build.py
@@ -0,0 +1,150 @@
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro
+from config_generator.etc.function import Function, merge_defns
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_command import EvgCommandType, s3_put
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'scan-build'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ (11, None ),
+ (11, 'mnmlstc'),
+ (11, 'boost' ),
+ (11, 'impls' ),
+
+ (14, None ),
+ (14, 'mnmlstc'),
+ (14, 'boost' ),
+ (14, 'impls' ),
+
+ (17, None ),
+ (17, 'impls' ),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+class RunScanBuild(Function):
+ name = 'run scan build'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ add_expansions_to_env=True,
+ redirect_standard_error_to_output=True,
+ working_dir='mongo-cxx-driver',
+ script='.evergreen/scripts/compile-scan-build.sh',
+ ),
+ ]
+
+ @classmethod
+ def call(cls, cxx_standard, polyfill):
+ vars = {'CXX_STANDARD': cxx_standard}
+
+ if polyfill is not None:
+ vars |= {'BSONCXX_POLYFILL': polyfill}
+
+ return cls.default_call(vars=vars)
+
+
+class UploadScanArtifacts(Function):
+ name = 'upload scan artifacts'
+ commands = [
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ set -o errexit
+ if find scan -name \\*.html | grep -q html; then
+ (cd scan && find . -name index.html -exec echo "
{}" \\;) >> scan.html
+ else
+ echo "No issues found" > scan.html
+ fi
+ '''
+ ),
+ bash_exec(
+ command_type=EvgCommandType.TEST,
+ silent=True,
+ env={
+ 'AWS_ACCESS_KEY_ID': '${aws_key}',
+ 'AWS_SECRET_ACCESS_KEY': '${aws_secret}',
+ },
+ working_dir='mongo-cxx-driver',
+ script=' aws s3 cp scan s3://mciuploads/mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/scan/ --recursive --acl public-read --region us-east-1',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='text/html',
+ display_name='Scan Build Report',
+ local_file='mongo-cxx-driver/scan.html',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/scan/index.html',
+ ),
+ ]
+
+
+def functions():
+ return merge_defns(
+ RunScanBuild.defn(),
+ UploadScanArtifacts.defn(),
+ )
+
+
+def tasks():
+ res = []
+
+ distro_name = 'ubuntu2204'
+ distro = find_large_distro(distro_name)
+
+ for cxx_standard, polyfill in MATRIX:
+ name = f'{TAG}-{distro_name}-std{cxx_standard}'
+ tags = [TAG, distro_name, f'std{cxx_standard}']
+
+ if polyfill is not None:
+ name += f'-{polyfill}'
+ tags.append(polyfill)
+ else:
+ name += '-default'
+
+ res.append(
+ EvgTask(
+ name=name,
+ tags=tags,
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ FetchCDriverSource.call(),
+ RunScanBuild.call(cxx_standard, polyfill),
+ UploadScanArtifacts.call(),
+ ],
+ )
+ )
+
+ return res
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ display_tasks=[
+ DisplayTask(
+ name=f'{TAG}-matrix',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/silk.py b/.evergreen/config_generator/components/silk.py
new file mode 100644
index 0000000000..7bef61b09e
--- /dev/null
+++ b/.evergreen/config_generator/components/silk.py
@@ -0,0 +1,90 @@
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_small_distro
+from config_generator.etc.function import Function, merge_defns
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant
+from shrub.v3.evg_command import EvgCommandType, s3_put
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+
+TAG = 'silk'
+
+
+class CheckAugmentedSBOM(Function):
+ name = 'check augmented sbom'
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ include_expansions_in_env=[
+ 'ARTIFACTORY_USER',
+ 'ARTIFACTORY_PASSWORD',
+ 'SILK_CLIENT_ID',
+ 'SILK_CLIENT_SECRET',
+ ],
+ script='.evergreen/scripts/check-augmented-sbom.sh',
+ )
+
+
+class UploadAugmentedSBOM(Function):
+ name = 'upload augmented sbom'
+ commands = [
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='application/json',
+ display_name='Augmented SBOM',
+ local_file='mongo-cxx-driver/etc/augmented.sbom.json.new',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/silk/augmented.sbom.json',
+ ),
+ s3_put(
+ command_type=EvgCommandType.SYSTEM,
+ aws_key='${aws_key}',
+ aws_secret='${aws_secret}',
+ bucket='mciuploads',
+ content_type='application/json',
+ display_name='Augmented SBOM (Diff)',
+ local_file='mongo-cxx-driver/diff.txt',
+ permissions='public-read',
+ remote_file='mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/silk/augmented.sbom.json.diff',
+ ),
+ ]
+
+
+def functions():
+ return merge_defns(
+ CheckAugmentedSBOM.defn(),
+ UploadAugmentedSBOM.defn(),
+ )
+
+
+def tasks():
+ distro_name = 'rhel8-latest'
+ distro = find_small_distro(distro_name)
+
+ return [
+ EvgTask(
+ name=TAG,
+ tags=[TAG, distro_name],
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ CheckAugmentedSBOM.call(),
+ UploadAugmentedSBOM.call(),
+ ],
+ ),
+ ]
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=TAG,
+ display_name='Silk',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/uninstall_check.py b/.evergreen/config_generator/components/uninstall_check.py
new file mode 100644
index 0000000000..785fc63a13
--- /dev/null
+++ b/.evergreen/config_generator/components/uninstall_check.py
@@ -0,0 +1,94 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.setup import Setup
+
+from config_generator.etc.distros import find_large_distro, make_distro_str
+from config_generator.etc.function import Function
+from config_generator.etc.utils import bash_exec
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_command import EvgCommandType
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+from itertools import product
+
+
+TAG = 'uninstall-check'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('debian10', 'gcc', [ 'Release'], ['shared']),
+ ('debian11', 'gcc', [ 'Release'], ['shared']),
+ ('debian12', 'gcc', [ 'Release'], ['shared']),
+ ('windows-64-vs2015', 'vs2015x64', ['Debug', 'Release'], ['shared']),
+ ('ubuntu1804', 'gcc', [ 'Release'], ['shared']),
+ ('ubuntu2004', 'gcc', [ 'Release'], ['shared']),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+class UninstallCheck(Function):
+ name = TAG
+ commands = bash_exec(
+ command_type=EvgCommandType.TEST,
+ working_dir='mongo-cxx-driver',
+ script='''\
+ case "$OSTYPE" in
+ darwin*|linux*) .evergreen/scripts/uninstall_check.sh ;;
+ cygwin) cmd.exe /c ".evergreen\\\\scripts\\\\uninstall_check_windows.cmd" ;;
+ esac
+ '''
+ )
+
+
+def functions():
+ return UninstallCheck.defn()
+
+
+def tasks():
+ res = []
+
+ link_type = 'shared'
+
+ for distro_name, compiler, build_types, link_types in MATRIX:
+ distro = find_large_distro(distro_name)
+
+ for build_type, link_type in product(build_types, link_types):
+ res.append(
+ EvgTask(
+ name=f'{TAG}-{make_distro_str(distro_name, compiler, None)}-{build_type.lower()}-{link_type}',
+ tags=[TAG, distro_name, compiler, build_type.lower(), link_type],
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ FetchCDriverSource.call(),
+ Compile.call(
+ build_type=build_type,
+ compiler=compiler,
+ vars={'ENABLE_TESTS': 'OFF'},
+ ),
+ UninstallCheck.call(),
+ ],
+ )
+ )
+
+ return res
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=TAG,
+ display_name='Uninstall Check',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ display_tasks=[
+ DisplayTask(
+ name=f'uninstall-check',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/valgrind.py b/.evergreen/config_generator/components/valgrind.py
new file mode 100644
index 0000000000..9feac82ef1
--- /dev/null
+++ b/.evergreen/config_generator/components/valgrind.py
@@ -0,0 +1,112 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_det import FetchDET
+from config_generator.components.funcs.install_c_driver import InstallCDriver
+from config_generator.components.funcs.run_kms_servers import RunKMSServers
+from config_generator.components.funcs.setup import Setup
+from config_generator.components.funcs.start_mongod import StartMongod
+from config_generator.components.funcs.test import Test
+
+from config_generator.etc.distros import find_large_distro, make_distro_str
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_command import KeyValueParam, expansions_update
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+from itertools import product
+
+
+TAG = 'valgrind'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('ubuntu1804', None, ['shared', 'static'], [False, True], ['5.0' ], ['single']),
+ ('ubuntu2004', None, ['shared', 'static'], [False, True], ['latest'], ['single']),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+def tasks():
+ res = []
+
+ for distro_name, compiler, link_types, with_extra_aligns, mongodb_versions, topologies in MATRIX:
+ for link_type, with_extra_align, mongodb_version, topology in product(
+ link_types, with_extra_aligns, mongodb_versions, topologies
+ ):
+ distro = find_large_distro(distro_name)
+
+ name = f'{TAG}-{make_distro_str(distro_name, compiler, None)}'
+ tags = [TAG, distro_name]
+
+ if compiler:
+ tags.append(compiler)
+
+ name += f'-{link_type}'
+ tags += [link_type]
+
+ if with_extra_align:
+ name += f'-extra_alignment'
+ tags += ['extra_alignment']
+
+ name += f'-{mongodb_version}-{topology}'
+ tags += [mongodb_version, topology]
+
+ updates = [KeyValueParam(key='build_type', value='Debug')]
+ icd_vars = {'SKIP_INSTALL_LIBMONGOCRYPT': 1}
+ compile_vars = {}
+ test_vars = {
+ 'MONGOCXX_TEST_TOPOLOGY': topology,
+ 'TEST_WITH_VALGRIND': 'ON',
+ 'disable_slow_tests': 1,
+ 'use_mongocryptd': True, # False positives arise from the crypt_shared library.
+ }
+
+ if link_type == 'static':
+ updates.append(KeyValueParam(key='USE_STATIC_LIBS', value='1'))
+
+ if with_extra_align:
+ icd_vars |= {'BSON_EXTRA_ALIGNMENT': 1}
+ compile_vars |= {'BSON_EXTRA_ALIGNMENT': 1}
+ else:
+ compile_vars |= {'RUN_DISTCHECK': 1}
+
+ commands = [expansions_update(updates=updates)] if updates else []
+
+ commands += [
+ Setup.call(),
+ StartMongod.call(mongodb_version=mongodb_version, topology=topology),
+ InstallCDriver.call(vars=icd_vars),
+ Compile.call(compiler=compiler, vars=compile_vars),
+ FetchDET.call(),
+ RunKMSServers.call(),
+ Test.call(compiler=compiler, vars=test_vars),
+ ]
+
+ res.append(
+ EvgTask(
+ name=name,
+ tags=tags,
+ run_on=distro.name,
+ commands=commands,
+ )
+ )
+
+ return res
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ display_tasks=[
+ DisplayTask(
+ name=f'{TAG}-matrix',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/components/versioned_api.py b/.evergreen/config_generator/components/versioned_api.py
new file mode 100644
index 0000000000..d3997c18b6
--- /dev/null
+++ b/.evergreen/config_generator/components/versioned_api.py
@@ -0,0 +1,106 @@
+from config_generator.components.funcs.compile import Compile
+from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
+from config_generator.components.funcs.fetch_det import FetchDET
+from config_generator.components.funcs.run_kms_servers import RunKMSServers
+from config_generator.components.funcs.setup import Setup
+from config_generator.components.funcs.start_mongod import StartMongod
+from config_generator.components.funcs.test import Test
+
+from config_generator.etc.distros import find_large_distro, make_distro_str
+
+from shrub.v3.evg_build_variant import BuildVariant, DisplayTask
+from shrub.v3.evg_task import EvgTask, EvgTaskRef
+
+from itertools import product
+
+
+TAG = 'versioned-api'
+
+
+# pylint: disable=line-too-long
+# fmt: off
+MATRIX = [
+ ('macos-1100', None, ['Release'], ['shared'], ['boost']),
+ ('ubuntu2004', None, ['Debug' ], ['shared'], [None ]),
+ ('windows-vsCurrent', 'vs2019x64', ['Debug' ], ['shared'], [None ]),
+]
+# fmt: on
+# pylint: enable=line-too-long
+
+
+def tasks():
+ res = []
+
+ version_one_required = (
+ 'one-required',
+ {'REQUIRE_API_VERSION': True},
+ {'MONGODB_API_VERSION': 1},
+ )
+
+ version_two_accepted = (
+ 'two-accepted',
+ {'ORCHESTRATION_FILE': 'versioned-api-testing.json'},
+ {},
+ )
+
+ version_matrix = [version_one_required, version_two_accepted]
+
+ for (distro_name, compiler, build_types, link_types, polyfills), (desc, mongod_vars, test_vars) in product(MATRIX, version_matrix):
+ distro = find_large_distro(distro_name)
+
+ for build_type, link_type, polyfill in product(build_types, link_types, polyfills):
+ name = f'{TAG}-{desc}-{make_distro_str(distro_name, compiler, None)}'
+ tags = [TAG, distro_name]
+
+ if compiler is not None:
+ tags.append(compiler)
+
+ name += f'-{build_type.lower()}-{link_type}'
+ tags += [build_type.lower(), link_type]
+
+ if polyfill is not None:
+ name += f'-{polyfill}'
+ tags.append(polyfill)
+
+ mongod_vars |= {'AUTH': 'noauth'} # Versioned API + auth is tested by the C Driver.
+ compile_vars = {}
+ test_vars |= {'MONGOCXX_TEST_TOPOLOGY': 'single'}
+
+ match distro.os_type:
+ case 'macos': compile_vars |= {'BSONCXX_POLYFILL': 'boost'}
+ case 'windows': test_vars |= {'example_projects_cxx_standard': 17}
+
+ res.append(
+ EvgTask(
+ name=name,
+ tags=tags,
+ run_on=distro.name,
+ commands=[
+ Setup.call(),
+ StartMongod.call(mongodb_version='latest', topology='single', vars=mongod_vars),
+ FetchCDriverSource.call(),
+ Compile.call(build_type=build_type, compiler=compiler, vars=compile_vars),
+ FetchDET.call(),
+ RunKMSServers.call(),
+ Test.call(build_type=build_type, compiler=compiler, vars=test_vars),
+ ],
+ )
+ )
+
+ return res
+
+
+def variants():
+ return [
+ BuildVariant(
+ name=f'{TAG}-matrix',
+ display_name=f'{TAG}-matrix',
+ tasks=[EvgTaskRef(name=f'.{TAG}')],
+ display_tasks=[
+ DisplayTask(
+ name=f'{TAG}-matrix',
+ execution_tasks=[f'.{TAG}'],
+ )
+ ],
+ ),
+ ]
diff --git a/.evergreen/config_generator/etc/distros.py b/.evergreen/config_generator/etc/distros.py
new file mode 100644
index 0000000000..36cace42ab
--- /dev/null
+++ b/.evergreen/config_generator/etc/distros.py
@@ -0,0 +1,299 @@
+from typing import Literal
+
+from pydantic import BaseModel, validator
+from packaging.version import Version
+
+
+class Distro(BaseModel):
+ """
+ Defines common properties of a given Evergreen distro.
+
+ * name: Name of the distro.
+ * os: Name of the operating system.
+ * os_type: One of Linux, MacOS, or Windows.
+ * os_ver: Version of the operating system.
+ * vs_ver: Version of Visual Studio available.
+ * size: Size of tasks the distro is designed to handle.
+ * arch: Target architecture.
+ """
+
+ name: str
+ os: str | None = None
+ os_type: Literal['linux', 'macos', 'windows'] | None = None
+ os_ver: str | None = None
+ vs_ver: Literal[
+ '2013',
+ '2015',
+ '2017',
+ '2019',
+ '2022',
+ 'vsCurrent',
+ 'vsCurrent2',
+ 'vsMulti',
+ ] | None = None
+ size: Literal['small', 'large'] | None = None
+ arch: Literal['arm64', 'power8', 'zseries'] | None = None
+
+ @validator('os_ver')
+ @classmethod
+ def validate_os_ver(cls, value):
+ return value == 'latest' or Version(value)
+
+# See: https://evergreen.mongodb.com/distros
+# pylint: disable=line-too-long
+#fmt: off
+DEBIAN_DISTROS = [
+ Distro(name='debian10-large', os='debian', os_type='linux', os_ver='10', size='large'),
+ Distro(name='debian10-small', os='debian', os_type='linux', os_ver='10', size='small'),
+ Distro(name='debian11-large', os='debian', os_type='linux', os_ver='11', size='large'),
+ Distro(name='debian11-small', os='debian', os_type='linux', os_ver='11', size='small'),
+ Distro(name='debian12-large', os='debian', os_type='linux', os_ver='12', size='large'),
+ Distro(name='debian12-small', os='debian', os_type='linux', os_ver='12', size='small'),
+ Distro(name='debian92-large', os='debian', os_type='linux', os_ver='9.2', size='large'),
+ Distro(name='debian92-small', os='debian', os_type='linux', os_ver='9.2', size='small'),
+
+ Distro(name='debian12-latest-large', os='debian', os_type='linux', os_ver='latest', size='large'),
+ Distro(name='debian12-latest-small', os='debian', os_type='linux', os_ver='latest', size='small'),
+]
+
+MACOS_DISTROS = [
+ Distro(name='macos-1100', os='macos', os_type='macos', os_ver='11.00'),
+]
+
+MACOS_ARM64_DISTROS = [
+ Distro(name='macos-1100-arm64', os='macos', os_type='macos', os_ver='11.00', arch='arm64'),
+]
+
+RHEL_DISTROS = [
+ Distro(name='rhel70-large', os='rhel', os_type='linux', os_ver='7.0', size='large'),
+ Distro(name='rhel70-small', os='rhel', os_type='linux', os_ver='7.0', size='small'),
+ Distro(name='rhel76-large', os='rhel', os_type='linux', os_ver='7.6', size='large'),
+ Distro(name='rhel76-small', os='rhel', os_type='linux', os_ver='7.6', size='small'),
+ Distro(name='rhel79-large', os='rhel', os_type='linux', os_ver='7.9', size='large'),
+ Distro(name='rhel79-small', os='rhel', os_type='linux', os_ver='7.9', size='small'),
+ Distro(name='rhel80-large', os='rhel', os_type='linux', os_ver='8.0', size='large'),
+ Distro(name='rhel80-small', os='rhel', os_type='linux', os_ver='8.0', size='small'),
+ Distro(name='rhel84-large', os='rhel', os_type='linux', os_ver='8.4', size='large'),
+ Distro(name='rhel84-small', os='rhel', os_type='linux', os_ver='8.4', size='small'),
+ Distro(name='rhel87-large', os='rhel', os_type='linux', os_ver='8.7', size='large'),
+ Distro(name='rhel87-small', os='rhel', os_type='linux', os_ver='8.7', size='small'),
+ Distro(name='rhel90-large', os='rhel', os_type='linux', os_ver='9.0', size='large'),
+ Distro(name='rhel90-small', os='rhel', os_type='linux', os_ver='9.0', size='small'),
+
+ Distro(name='rhel8-latest-large', os='rhel', os_type='linux', os_ver='latest', size='large'),
+ Distro(name='rhel8-latest-small', os='rhel', os_type='linux', os_ver='latest', size='small'),
+]
+
+RHEL_ARM64_DISTROS = [
+ Distro(name='rhel82-arm64-large', os='rhel', os_type='linux', os_ver='8.2', size='large', arch='arm64'),
+ Distro(name='rhel82-arm64-small', os='rhel', os_type='linux', os_ver='8.2', size='small', arch='arm64'),
+ Distro(name='rhel90-arm64-large', os='rhel', os_type='linux', os_ver='9.0', size='large', arch='arm64'),
+ Distro(name='rhel90-arm64-small', os='rhel', os_type='linux', os_ver='9.0', size='small', arch='arm64'),
+ Distro(name='rhel92-arm64-large', os='rhel', os_type='linux', os_ver='9.2', size='large', arch='arm64'),
+ Distro(name='rhel92-arm64-small', os='rhel', os_type='linux', os_ver='9.2', size='small', arch='arm64'),
+]
+
+RHEL_POWER8_DISTROS = [
+ Distro(name='rhel71-power8-large', os='rhel', os_type='linux', os_ver='7.1', size='large', arch='power8'),
+ Distro(name='rhel71-power8-small', os='rhel', os_type='linux', os_ver='7.1', size='small', arch='power8'),
+ Distro(name='rhel81-power8-large', os='rhel', os_type='linux', os_ver='8.1', size='large', arch='power8'),
+ Distro(name='rhel81-power8-small', os='rhel', os_type='linux', os_ver='8.1', size='small', arch='power8'),
+]
+
+RHEL_ZSERIES_DISTROS = [
+ Distro(name='rhel72-zseries-large', os='rhel', os_type='linux', os_ver='7.2', size='large', arch='zseries'),
+ Distro(name='rhel72-zseries-small', os='rhel', os_type='linux', os_ver='7.2', size='small', arch='zseries'),
+ Distro(name='rhel83-zseries-large', os='rhel', os_type='linux', os_ver='8.3', size='large', arch='zseries'),
+ Distro(name='rhel83-zseries-small', os='rhel', os_type='linux', os_ver='8.3', size='small', arch='zseries'),
+]
+
+UBUNTU_DISTROS = [
+ Distro(name='ubuntu1604-large', os='ubuntu', os_type='linux', os_ver='16.04', size='large'),
+ Distro(name='ubuntu1604-small', os='ubuntu', os_type='linux', os_ver='16.04', size='small'),
+ Distro(name='ubuntu1804-large', os='ubuntu', os_type='linux', os_ver='18.04', size='large'),
+ Distro(name='ubuntu1804-small', os='ubuntu', os_type='linux', os_ver='18.04', size='small'),
+ Distro(name='ubuntu2004-large', os='ubuntu', os_type='linux', os_ver='20.04', size='large'),
+ Distro(name='ubuntu2004-small', os='ubuntu', os_type='linux', os_ver='20.04', size='small'),
+ Distro(name='ubuntu2204-large', os='ubuntu', os_type='linux', os_ver='22.04', size='large'),
+ Distro(name='ubuntu2204-small', os='ubuntu', os_type='linux', os_ver='22.04', size='small'),
+]
+
+UBUNTU_ARM64_DISTROS = [
+ Distro(name='ubuntu1604-arm64-large', os='ubuntu', os_type='linux', os_ver='16.04', size='large', arch='arm64'),
+ Distro(name='ubuntu1604-arm64-small', os='ubuntu', os_type='linux', os_ver='16.04', size='small', arch='arm64'),
+ Distro(name='ubuntu1804-arm64-large', os='ubuntu', os_type='linux', os_ver='18.04', size='large', arch='arm64'),
+ Distro(name='ubuntu1804-arm64-small', os='ubuntu', os_type='linux', os_ver='18.04', size='small', arch='arm64'),
+ Distro(name='ubuntu2004-arm64-large', os='ubuntu', os_type='linux', os_ver='20.04', size='large', arch='arm64'),
+ Distro(name='ubuntu2004-arm64-small', os='ubuntu', os_type='linux', os_ver='20.04', size='small', arch='arm64'),
+ Distro(name='ubuntu2204-arm64-large', os='ubuntu', os_type='linux', os_ver='22.04', size='large', arch='arm64'),
+ Distro(name='ubuntu2204-arm64-small', os='ubuntu', os_type='linux', os_ver='22.04', size='small', arch='arm64'),
+]
+
+WINDOWS_DISTROS = [
+ Distro(name='windows-64-vs2013-large', os='windows', os_type='windows', vs_ver='2013', size='large'),
+ Distro(name='windows-64-vs2013-small', os='windows', os_type='windows', vs_ver='2013', size='small'),
+ Distro(name='windows-64-vs2015-large', os='windows', os_type='windows', vs_ver='2015', size='large'),
+ Distro(name='windows-64-vs2015-small', os='windows', os_type='windows', vs_ver='2015', size='small'),
+ Distro(name='windows-64-vs2017-large', os='windows', os_type='windows', vs_ver='2017', size='large'),
+ Distro(name='windows-64-vs2017-small', os='windows', os_type='windows', vs_ver='2017', size='small'),
+ Distro(name='windows-64-vs2019-large', os='windows', os_type='windows', vs_ver='2019', size='large'),
+ Distro(name='windows-64-vs2019-small', os='windows', os_type='windows', vs_ver='2019', size='small'),
+
+ Distro(name='windows-2022-large', os='windows', os_type='windows', os_ver='2022'),
+ Distro(name='windows-2022-small', os='windows', os_type='windows', os_ver='2022'),
+
+ Distro(name='windows-64-2019', os='windows', os_type='windows', os_ver='2019'),
+
+ Distro(name='windows-64-vsMulti-small', os='windows', os_type='windows', vs_ver='vsMulti', size='small'),
+
+ Distro(name='windows-vsCurrent-2022-large', os='windows', os_type='windows', os_ver='2022', vs_ver='vsCurrent', size='large'),
+ Distro(name='windows-vsCurrent-2022-small', os='windows', os_type='windows', os_ver='2022', vs_ver='vsCurrent', size='small'),
+
+ Distro(name='windows-vsCurrent-large', os='windows', os_type='windows', vs_ver='vsCurrent', size='large'), # Windows Server 2019
+ Distro(name='windows-vsCurrent-small', os='windows', os_type='windows', vs_ver='vsCurrent', size='small'), # Windows Server 2019
+
+ Distro(name='windows-vsCurrent2-large', os='windows', os_type='windows', vs_ver='vsCurrent2', size='large'),
+ Distro(name='windows-vsCurrent2-small', os='windows', os_type='windows', vs_ver='vsCurrent2', size='small'),
+]
+#fmt: on
+# pylint: enable=line-too-long
+
+# Ensure no-arch distros are ordered before arch-specific distros.
+ALL_DISTROS = [] + \
+ DEBIAN_DISTROS + \
+ MACOS_DISTROS + \
+ MACOS_ARM64_DISTROS + \
+ RHEL_DISTROS + \
+ RHEL_ARM64_DISTROS + \
+ RHEL_POWER8_DISTROS + \
+ RHEL_ZSERIES_DISTROS + \
+ UBUNTU_DISTROS + \
+ UBUNTU_ARM64_DISTROS + \
+ WINDOWS_DISTROS
+
+
+def find_distro(name) -> Distro:
+ candidates = [d for d in ALL_DISTROS if name == d.name]
+
+ if not candidates:
+ raise ValueError(f'could not find a distro with the name {name}')
+
+ return candidates[0]
+
+
+def find_large_distro(name) -> Distro:
+ candidates = [d for d in ALL_DISTROS if f'{name}-large' == d.name]
+
+ if candidates:
+ return candidates[0]
+
+ return find_distro(name)
+
+
+def find_small_distro(name) -> Distro:
+ candidates = [d for d in ALL_DISTROS if f'{name}-small' == d.name]
+
+ if candidates:
+ return candidates[0]
+
+ return find_distro(name)
+
+
+def make_distro_str(distro_name, compiler, arch) -> str:
+ if distro_name.startswith('windows-vsCurrent'):
+ # Rename `windows-vsCurrent-*` distros to `windows-` where``
+ # is the Windows Server version used by the distro, e.g.:
+ # ('windows-vsCurrent-2022', 'vs2017x64', None) -> windows-2022-vs2017-x64
+ # ('windows-vsCurrent-2022', 'mingw', None) -> windows-2022-mingw
+ # ('windows-vsCurrent', 'vs2017x64', None) -> windows-2019-vs2017-x64
+ # ('windows-vsCurrent', 'mingw', None) -> windows-2019-mingw
+ maybe_arch = compiler[len('vs20XY'):]
+ if maybe_arch in ('x86', 'x64'):
+ compiler_str = compiler[:-len(maybe_arch)] + '-' + maybe_arch
+ else:
+ compiler_str = compiler
+ if distro_name.startswith('windows-vsCurrent-'):
+ distro_str = 'windows-' + \
+ distro_name[len('windows-vsCurrent-'):] + f'-{compiler_str}'
+ else:
+ distro_str = 'windows-2019' + f'-{compiler_str}'
+ elif distro_name.startswith('windows-64-vs'):
+ # Abbreviate 'windows-64-vs' as 'vs' and append '-' if
+ # given in compiler string as 'vs', e.g.:
+ # ('windows-64-vs2017', 'vs2017x64', None) -> vs2017-x64
+ # ('windows-64-vs2017', 'mingw', None) -> vs2017-mingw
+ distro_str = distro_name[len('windows-64-'):] + {
+ 'vs2013x64': '-x64',
+ 'vs2013x86': '-x86',
+ 'vs2015x64': '-x64',
+ 'vs2015x86': '-x86',
+ 'vs2017x64': '-x64',
+ 'vs2017x86': '-x86',
+ 'vs2019x64': '-x64',
+ 'vs2019x86': '-x86',
+ 'vs2022x64': '-x64',
+ 'vs2022x86': '-x86',
+ }.get(compiler, f'-{compiler}')
+ else:
+ distro_str = distro_name
+ if compiler:
+ distro_str += f'-{compiler}'
+
+ if arch:
+ distro_str += f'-{arch}'
+
+ return distro_str
+
+
+def to_cc(compiler):
+ return {
+ 'vs2013x64': 'Visual Studio 12 2013',
+ 'vs2013x86': 'Visual Studio 12 2013',
+ 'vs2015x64': 'Visual Studio 14 2015',
+ 'vs2015x86': 'Visual Studio 14 2015',
+ 'vs2017x64': 'Visual Studio 15 2017',
+ 'vs2017x86': 'Visual Studio 15 2017',
+ 'vs2019x64': 'Visual Studio 16 2019',
+ 'vs2019x86': 'Visual Studio 16 2019',
+ 'vs2022x64': 'Visual Studio 17 2022',
+ 'vs2022x86': 'Visual Studio 17 2022',
+ }.get(compiler, compiler)
+
+
+def to_platform(compiler):
+ return {
+ 'vs2013x64': 'x64',
+ 'vs2013x86': 'Win32',
+ 'vs2015x64': 'x64',
+ 'vs2015x86': 'Win32',
+ 'vs2017x64': 'x64',
+ 'vs2017x86': 'Win32',
+ 'vs2019x64': 'x64',
+ 'vs2019x86': 'Win32',
+ 'vs2022x64': 'x64',
+ 'vs2022x86': 'Win32',
+ }.get(compiler, compiler)
+
+
+def compiler_to_vars(compiler):
+ match compiler:
+ case 'gcc':
+ return {
+ 'cc_compiler': 'gcc',
+ 'cxx_compiler': 'g++',
+ }
+
+ case 'clang':
+ return {
+ 'cc_compiler': 'clang',
+ 'cxx_compiler': 'clang++',
+ }
+
+ case str(vs) if 'vs' in vs:
+ return {
+ 'generator': to_cc(vs),
+ 'platform': to_platform(vs),
+ }
+
+ case _:
+ return {}
diff --git a/.evergreen/config_generator/etc/function.py b/.evergreen/config_generator/etc/function.py
new file mode 100644
index 0000000000..61398dced5
--- /dev/null
+++ b/.evergreen/config_generator/etc/function.py
@@ -0,0 +1,27 @@
+from typing import ClassVar
+from typing import Mapping
+from collections import ChainMap
+
+from shrub.v3.evg_command import EvgCommand
+from shrub.v3.evg_command import FunctionCall
+
+
+class Function:
+ name: ClassVar[str]
+ commands: ClassVar[list[EvgCommand]]
+
+ @classmethod
+ def defn(cls) -> Mapping[str, list[EvgCommand]]:
+ return {cls.name: cls.commands}
+
+ @classmethod
+ def default_call(cls, **kwargs) -> FunctionCall:
+ return FunctionCall(func=cls.name, **kwargs)
+
+ @classmethod
+ def call(cls, **kwargs) -> FunctionCall:
+ return cls.default_call(**kwargs)
+
+
+def merge_defns(*args):
+ return ChainMap(*args)
diff --git a/.evergreen/config_generator/etc/utils.py b/.evergreen/config_generator/etc/utils.py
new file mode 100644
index 0000000000..19bd046dd7
--- /dev/null
+++ b/.evergreen/config_generator/etc/utils.py
@@ -0,0 +1,202 @@
+import itertools
+from importlib import import_module
+from inspect import isclass
+from pathlib import Path
+from textwrap import dedent
+from typing import (Any, Iterable, Literal, Mapping, Type, TypeVar,
+ Union, cast)
+
+import yaml
+from shrub.v3.evg_command import EvgCommandType, KeyValueParam, subprocess_exec
+from shrub.v3.evg_project import EvgProject
+from shrub.v3.shrub_service import ConfigDumper
+from shrub.v3.evg_task import EvgTaskRef
+from shrub.v3.evg_task_group import EvgTaskGroup
+from typing_extensions import get_args, get_origin, get_type_hints
+
+T = TypeVar('T')
+
+
+# Equivalent to EvgTaskRef but defines additional properties.
+class TaskRef(EvgTaskRef):
+ """
+ An evergreen task reference model that also includes additional properties.
+
+ (The shrub.py model is missing some properties)
+ """
+
+ batchtime: int | None = None
+
+
+# Equivalent to EvgTaskGroup but defines additional properties.
+class TaskGroup(EvgTaskGroup):
+ """
+ An evergreen task group model that also includes additional properties.
+
+ (The shrub.py model is missing some properties)
+ """
+
+ teardown_task_can_fail_task: bool | None = None
+
+
+# Automatically formats the provided script and invokes it in Bash.
+def bash_exec(
+ script,
+ *,
+ include_expansions_in_env: Iterable[str] | None = None,
+ working_dir: str | None = None,
+ command_type: EvgCommandType | None = None,
+ retry_on_failure: bool | None = None,
+ env: Mapping[str, str] | None = None,
+ **kwargs,
+):
+ ret = subprocess_exec(
+ binary="bash",
+ args=["-c", dedent(script)],
+ include_expansions_in_env=list(include_expansions_in_env) if include_expansions_in_env else None,
+ working_dir=working_dir,
+ command_type=command_type,
+ env=dict(env) if env else None,
+ **kwargs,
+ )
+
+ if retry_on_failure is not None:
+ ret.params |= {"retry_on_failure": retry_on_failure}
+
+ return ret
+
+
+def all_components():
+ res = []
+
+ # .evergreen/config_generator/etc/utils.py -> .evergreen/config_generator/components
+ components_dir = Path(__file__).parent.parent / 'components'
+
+ all_paths = components_dir.glob('**/*.py')
+
+ for path in sorted(all_paths):
+ component_path = path.relative_to(components_dir)
+ component_str = str(component_path.with_suffix('')) # Drop '.py'.
+ component_str = component_str.replace('/', '.') # 'a/b' -> 'a.b'
+ module_name = f'config_generator.components.{component_str}'
+ res.append(import_module(module_name))
+
+ return res
+
+
+# Helper function to print component name for diagnostic purposes.
+def component_name(component):
+ component_prefix = 'config_generator.components.'
+ res = component.__name__[len(component_prefix):]
+ return res
+
+
+def write_to_file(yml, filename):
+ # .evergreen/config_generator/etc/utils.py -> .evergreen
+ evergreen_dir = Path(__file__).parent.parent.parent
+ filename = evergreen_dir / 'generated_configs' / filename
+ filename.write_text(yml, encoding='utf-8')
+
+
+class Dumper(ConfigDumper):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+
+ # List all tags on a single line.
+ self.FLOW_TAG_COUNT = float('inf')
+
+ # Make an effort to order fields in a readable manner.
+ # Ordering applies to *all* mappings regardless of the parent node.
+ def represent_mapping(self, tag, mapping, flow_style=False):
+ if len(mapping) == 2 and 'key' in mapping and 'value' in mapping:
+ flow_style = True
+
+ before = [
+ 'name',
+ 'display_name',
+ 'command',
+ 'type',
+ 'run_on',
+ 'tags',
+ 'depends_on',
+ 'binary',
+ 'working_dir',
+ ]
+
+ after = [
+ 'commands',
+ 'args',
+ ]
+
+ mapping = mapping.copy()
+
+ ordered = {
+ field: mapping.pop(field) for field in before if field in mapping
+ }
+
+ suffix = {
+ field: mapping.pop(field) for field in after if field in mapping
+ }
+
+ ordered.update(sorted(mapping.items()))
+ ordered.update(suffix)
+
+ return self.represent_special_mapping(tag, ordered.items(), flow_style)
+
+
+# Workaround represention error for KeyValueParam with `serialize_as_any=True`.
+Dumper.add_representer(
+ KeyValueParam,
+ lambda dumper, data: dumper.represent_dict({'key': data.key, 'value': data.value})
+)
+
+
+# Set `serialize_as_any=True` to permit dumping additional fields in subclasses defined above.
+def to_yaml(project: EvgProject) -> str:
+ return yaml.dump(
+ project.model_dump(exclude_none=True, exclude_unset=True, by_alias=True, serialize_as_any=True),
+ Dumper=Dumper,
+ default_flow_style=False,
+ width=float('inf'),
+ )
+
+
+def all_possible(typ: Type[T]) -> Iterable[T]:
+ """
+ Given a finite type, enumerate all possible values of that type.
+ The following are "finite" types:
+
+ - Literal[...] types
+ - Union[...] of finite types
+ - NamedTuple where each field is a finite type
+ - None
+ """
+ origin = get_origin(typ)
+ if typ is type(None):
+ yield cast(T, None)
+ elif origin is Literal:
+ # It is a literal type, so enumerate its literal operands
+ yield from get_args(typ)
+ return
+ elif origin == Union:
+ args = get_args(typ)
+ yield from itertools.chain.from_iterable(map(all_possible, args))
+ elif isclass(typ) and issubclass(typ, tuple):
+ # Iter each NamedTuple field:
+ fields: Iterable[tuple[str, type]] = get_type_hints(typ).items()
+ # Generate lists of pairs of field names and their possible values
+ all_pairs: Iterable[Iterable[tuple[str, str]]] = (
+ # Generate a (key, opt) pair for each option for 'key'
+ [(key, opt) for opt in all_possible(typ)]
+ # Over each field and type thereof:
+ for key, typ in fields
+ )
+ # Now generate the cross product of all alternative for all fields:
+ matrix: Iterable[dict[str, Any]] = map(dict, itertools.product(*all_pairs))
+ for items in matrix:
+ # Reconstruct as a NamedTuple:
+ yield typ(**items) # type: ignore
+ else:
+ raise TypeError(
+ f'Do not know how to do "all_possible" of type {typ!r} ({origin=})'
+ )
diff --git a/.evergreen/config_generator/generate.py b/.evergreen/config_generator/generate.py
new file mode 100644
index 0000000000..8a17e1a6b2
--- /dev/null
+++ b/.evergreen/config_generator/generate.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+
+
+import os
+import sys
+
+from importlib import import_module
+
+
+GENERATOR_NAMES = [
+ "functions",
+ "tasks",
+ "task_groups",
+ "variants",
+]
+
+
+def main():
+ # Permit `import config_generator.*` regardless of current working directory.
+ sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
+
+ for name in GENERATOR_NAMES:
+ m = import_module(f"config_generator.generators.{name}")
+ print(f"Running {name}.generate()...")
+ m.generate()
+ print(f"Running {name}.generate()... done.")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/.evergreen/config_generator/generators/functions.py b/.evergreen/config_generator/generators/functions.py
new file mode 100644
index 0000000000..43b2b244d1
--- /dev/null
+++ b/.evergreen/config_generator/generators/functions.py
@@ -0,0 +1,17 @@
+from shrub.v3.evg_project import EvgProject
+
+from config_generator.etc import utils
+
+
+def generate():
+ functions = {}
+
+ for component in utils.all_components():
+ if hasattr(component, 'functions'):
+ component_name = utils.component_name(component)
+ print(f' - {component_name}')
+ functions.update(component.functions())
+
+ functions = dict(sorted(functions.items()))
+ yml = utils.to_yaml(EvgProject(functions=functions))
+ utils.write_to_file(yml, 'functions.yml')
diff --git a/.evergreen/config_generator/generators/task_groups.py b/.evergreen/config_generator/generators/task_groups.py
new file mode 100644
index 0000000000..9dc32d8bd4
--- /dev/null
+++ b/.evergreen/config_generator/generators/task_groups.py
@@ -0,0 +1,17 @@
+from shrub.v3.evg_project import EvgProject
+
+from config_generator.etc import utils
+
+
+def generate():
+ task_groups = []
+
+ for component in utils.all_components():
+ if hasattr(component, 'task_groups'):
+ component_name = utils.component_name(component)
+ print(f' - {component_name}')
+ task_groups += component.task_groups()
+
+ task_groups.sort(key=lambda v: v.name)
+ yaml = utils.to_yaml(EvgProject(task_groups=task_groups))
+ utils.write_to_file(yaml, 'task_groups.yml')
diff --git a/.evergreen/config_generator/generators/tasks.py b/.evergreen/config_generator/generators/tasks.py
new file mode 100644
index 0000000000..edbc8b5c5a
--- /dev/null
+++ b/.evergreen/config_generator/generators/tasks.py
@@ -0,0 +1,17 @@
+from shrub.v3.evg_project import EvgProject
+
+from config_generator.etc import utils
+
+
+def generate():
+ tasks = []
+
+ for component in utils.all_components():
+ if hasattr(component, 'tasks'):
+ component_name = utils.component_name(component)
+ print(f' - {component_name}')
+ tasks += component.tasks()
+
+ tasks.sort(key=lambda v: v.name)
+ yaml = utils.to_yaml(EvgProject(tasks=tasks))
+ utils.write_to_file(yaml, 'tasks.yml')
diff --git a/.evergreen/config_generator/generators/variants.py b/.evergreen/config_generator/generators/variants.py
new file mode 100644
index 0000000000..678c66bd6c
--- /dev/null
+++ b/.evergreen/config_generator/generators/variants.py
@@ -0,0 +1,17 @@
+from shrub.v3.evg_project import EvgProject
+
+from config_generator.etc import utils
+
+
+def generate():
+ variants = []
+
+ for component in utils.all_components():
+ if hasattr(component, 'variants'):
+ component_name = utils.component_name(component)
+ print(f' - {component_name}')
+ variants += component.variants()
+
+ variants.sort(key=lambda v: v.name)
+ yaml = utils.to_yaml(EvgProject(buildvariants=variants))
+ utils.write_to_file(yaml, 'variants.yml')
diff --git a/.evergreen/find_cmake.sh b/.evergreen/find_cmake.sh
deleted file mode 100755
index a6f39ac81c..0000000000
--- a/.evergreen/find_cmake.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env bash
-
-set -o errexit # Exit the script with error if any of the commands fail
-
-find_cmake ()
-{
- if [ ! -z "$CMAKE" ]; then
- return 0
- elif [ -f "/Applications/cmake-3.2.2-Darwin-x86_64/CMake.app/Contents/bin/cmake" ]; then
- CMAKE="/Applications/cmake-3.2.2-Darwin-x86_64/CMake.app/Contents/bin/cmake"
- elif [ -f "/Applications/Cmake.app/Contents/bin/cmake" ]; then
- CMAKE="/Applications/Cmake.app/Contents/bin/cmake"
- elif [ -f "/opt/cmake/bin/cmake" ]; then
- CMAKE="/opt/cmake/bin/cmake"
- elif [ -z "$IGNORE_SYSTEM_CMAKE" ] && command -v cmake 2>/dev/null; then
- CMAKE=cmake
- elif uname -a | grep -iq 'x86_64 GNU/Linux'; then
- if [ -f "$(pwd)/cmake-3.11.0/bin/cmake" ]; then
- CMAKE="$(pwd)/cmake-3.11.0/bin/cmake"
- return 0
- fi
- curl --retry 5 https://cmake.org/files/v3.11/cmake-3.11.0-Linux-x86_64.tar.gz -sS --max-time 120 --fail --output cmake.tar.gz
- mkdir cmake-3.11.0
- tar xzf cmake.tar.gz -C cmake-3.11.0 --strip-components=1
- CMAKE=$(pwd)/cmake-3.11.0/bin/cmake
- elif [ -f "/cygdrive/c/cmake/bin/cmake" ]; then
- CMAKE="/cygdrive/c/cmake/bin/cmake"
- fi
- if [ -z "$CMAKE" -o -z "$( $CMAKE --version 2>/dev/null )" ]; then
- # Some images have no cmake yet, or a broken cmake (see: BUILD-8570)
- echo "-- MAKE CMAKE --"
- CMAKE_INSTALL_DIR=$(readlink -f cmake-install)
- curl --retry 5 https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz -sS --max-time 120 --fail --output cmake.tar.gz
- tar xzf cmake.tar.gz
- cd cmake-3.11.0
- ./bootstrap --prefix="${CMAKE_INSTALL_DIR}"
- make -j8
- make install
- cd ..
- CMAKE="${CMAKE_INSTALL_DIR}/bin/cmake"
- echo "-- DONE MAKING CMAKE --"
- fi
-}
-
-find_cmake
diff --git a/.evergreen/generated_configs/functions.yml b/.evergreen/generated_configs/functions.yml
new file mode 100644
index 0000000000..0c7119ef4e
--- /dev/null
+++ b/.evergreen/generated_configs/functions.yml
@@ -0,0 +1,710 @@
+functions:
+ abi-compliance-check:
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-setup.sh
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-test.sh
+ - command: s3.put
+ type: system
+ params:
+ display_name: "ABI Compliance Check (Stable): "
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: text/html
+ local_files_include_filter: cxx-abi/compat_reports/**/compat_report.html
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/abi/
+ - command: s3.put
+ type: system
+ params:
+ display_name: "ABI Compliance Check (Stable): "
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: text/plain
+ local_files_include_filter: cxx-abi/logs/**/log.txt
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/abi/
+ - command: s3.put
+ type: system
+ params:
+ display_name: "ABI Compliance Check (Unstable): "
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: text/html
+ local_files_include_filter: cxx-noabi/compat_reports/**/compat_report.html
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/noabi/
+ - command: s3.put
+ type: system
+ params:
+ display_name: "ABI Compliance Check (Unstable): "
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: text/plain
+ local_files_include_filter: cxx-noabi/logs/**/log.txt
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/noabi/
+ abi-prohibited-symbols:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/abi-prohibited-symbols-test.sh
+ abidiff:
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/abidiff-setup.sh
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/abidiff-test.sh
+ - command: s3.put
+ type: system
+ params:
+ display_name: "abidiff (Stable): "
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: text/plain
+ local_files_include_filter: cxx-abi/*.txt
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abidiff/abi/
+ - command: s3.put
+ type: system
+ params:
+ display_name: "abidiff (Unstable): "
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: text/plain
+ local_files_include_filter: cxx-noabi/*.txt
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abidiff/noabi/
+ backtrace:
+ command: subprocess.exec
+ type: system
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - etc/debug-core-evergreen.sh
+ benchmarks-compile:
+ command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ set -o errexit
+ set -o pipefail
+ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(pwd)/../mongoc" -DCMAKE_CXX_STANDARD=20
+ cmake --build build --target microbenchmarks --parallel 64
+ benchmarks-run:
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - etc/microbenchmark-test-data.sh
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - build/benchmark/microbenchmarks all
+ - command: perf.send
+ type: system
+ params:
+ name: perf
+ file: mongo-cxx-driver/results.json
+ build-package-debian:
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ set -o errexit
+ export IS_PATCH="${is_patch}"
+ .evergreen/scripts/debian_package_build.sh
+ - command: s3.put
+ params:
+ display_name: "\"deb.tar.gz\""
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: ${content_type|application/x-gzip}
+ local_file: deb.tar.gz
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages.tar.gz
+ build-package-debian-mnmlstc:
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ set -o errexit
+ export IS_PATCH="${is_patch}"
+ export DEB_BUILD_PROFILES="pkg.mongo-cxx-driver.mnmlstc"
+ .evergreen/scripts/debian_package_build.sh
+ - command: s3.put
+ params:
+ display_name: "\"deb.tar.gz\""
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: ${content_type|application/x-gzip}
+ local_file: deb.tar.gz
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages-mnmlstc.tar.gz
+ build-package-rpm:
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - .evergreen/scripts/build_snapshot_rpm.sh
+ - command: s3.put
+ params:
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: ${content_type|application/x-gzip}
+ local_file: rpm.tar.gz
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/rpm-packages.tar.gz
+ build_mongohouse:
+ command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ if [ ! -d "drivers-evergreen-tools" ]; then
+ git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git
+ fi
+ cd drivers-evergreen-tools
+ export DRIVERS_TOOLS=$(pwd)
+
+ .evergreen/atlas_data_lake/pull-mongohouse-image.sh
+ check augmented sbom:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ include_expansions_in_env:
+ - ARTIFACTORY_USER
+ - ARTIFACTORY_PASSWORD
+ - SILK_CLIENT_ID
+ - SILK_CLIENT_SECRET
+ args:
+ - -c
+ - .evergreen/scripts/check-augmented-sbom.sh
+ clang-tidy:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ include_expansions_in_env:
+ - cc_compiler
+ - cxx_compiler
+ - distro_id
+ args:
+ - -c
+ - etc/run-clang-tidy.sh
+ compile:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ env:
+ CC: ${cc_compiler}
+ CXX: ${cxx_compiler}
+ include_expansions_in_env:
+ - branch_name
+ - BSON_EXTRA_ALIGNMENT
+ - BSONCXX_POLYFILL
+ - build_type
+ - COMPILE_MACRO_GUARD_TESTS
+ - distro_id
+ - ENABLE_CODE_COVERAGE
+ - ENABLE_TESTS
+ - generator
+ - platform
+ - REQUIRED_CXX_STANDARD
+ - RUN_DISTCHECK
+ - USE_SANITIZER_ASAN
+ - USE_SANITIZER_UBSAN
+ - USE_STATIC_LIBS
+ args:
+ - -c
+ - .evergreen/scripts/compile.sh
+ docker-image-build:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ set -o errexit
+ set -o pipefail
+ set -x
+ echo "Building Alpine Docker image"
+ make -C extras/docker/alpine3.19 nocachebuild test
+ echo "Building Debian Docker image"
+ make -C extras/docker/bookworm nocachebuild test
+ echo "Building Red Hat UBI Docker image"
+ make -C extras/docker/redhat-ubi-9.4 nocachebuild test
+ echo "Building Ubuntu Docker image"
+ make -C extras/docker/noble nocachebuild test
+ fetch-det:
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ if [[ ! -d drivers-evergreen-tools ]]; then
+ git clone --depth=1 https://github.com/mongodb-labs/drivers-evergreen-tools.git
+ fi
+ echo "DRIVERS_TOOLS: $(pwd)/drivers-evergreen-tools" > det-expansion.yml
+ - command: expansions.update
+ type: setup
+ params:
+ file: det-expansion.yml
+ fetch_c_driver_source:
+ command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - git clone --depth 1 https://github.com/mongodb/mongo-c-driver mongoc
+ install_c_driver:
+ - command: expansions.update
+ type: setup
+ params:
+ updates:
+ - { key: mongoc_version_minimum, value: 1.28.0 }
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ add_expansions_to_env: true
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/install-c-driver.sh
+ lint:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - python etc/clang_format.py lint
+ run scan build:
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ add_expansions_to_env: true
+ redirect_standard_error_to_output: true
+ args:
+ - -c
+ - .evergreen/scripts/compile-scan-build.sh
+ run_kms_servers:
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ set -o errexit
+ echo "Preparing CSFLE venv environment..."
+ if [[ "${distro_id}" =~ windows-64-vs2015-* ]]; then
+ # Python: ImportError: DLL load failed while importing _rust: The specified procedure could not be found.
+ echo "Preparing CSFLE venv environment... skipped."
+ exit 0
+ fi
+ cd ./drivers-evergreen-tools/.evergreen/csfle
+ # This function ensures future invocations of activate-kmstlsvenv.sh conducted in
+ # parallel do not race to setup a venv environment; it has already been prepared.
+ # This primarily addresses the situation where the "test" and "run_kms_servers"
+ # functions invoke 'activate-kmstlsvenv.sh' simultaneously.
+ . ./activate-kmstlsvenv.sh && deactivate
+ echo "Preparing CSFLE venv environment... done."
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ background: true
+ args:
+ - -c
+ - |
+ set -o errexit
+ echo "Starting mock KMS servers..."
+ if [[ "${distro_id}" =~ windows-64-vs2015-* ]]; then
+ # Python: ImportError: DLL load failed while importing _rust: The specified procedure could not be found.
+ echo "Starting mock KMS servers... skipped."
+ exit 0
+ fi
+ cd ./drivers-evergreen-tools/.evergreen/csfle
+ . ./activate-kmstlsvenv.sh
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/server.pem --port 8999 &
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/expired.pem --port 9000 &
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/wrong-host.pem --port 9001 &
+ python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/server.pem --port 9002 --require_client_cert &
+ python -u kms_kmip_server.py &
+ echo "Starting mock KMS servers... done."
+ run_mongohouse:
+ command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ cd drivers-evergreen-tools
+ export DRIVERS_TOOLS=$(pwd)
+
+ .evergreen/atlas_data_lake/run-mongohouse-image.sh
+ setup:
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ set -o errexit
+ set -o pipefail
+ rm -rf "mongo-cxx-driver"
+ rm -fr "mongo-c-driver"
+ rm -fr mongod
+ rm -fr drivers-evergreen-tools
+ - command: git.get_project
+ params:
+ directory: mongo-cxx-driver
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ set -o errexit
+ set -o pipefail
+ cc --version || true
+ c++ --version || true
+ gcc --version || true
+ g++ --version || true
+ clang --version || true
+ cmake --version || true
+ openssl version || true
+ start_mongod:
+ - command: subprocess.exec
+ type: setup
+ params:
+ binary: bash
+ include_expansions_in_env:
+ - build_variant
+ - mongodb_version
+ - AUTH
+ - ORCHESTRATION_FILE
+ - REQUIRE_API_VERSION
+ - TOPOLOGY
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/start-mongod.sh
+ - command: expansions.update
+ type: setup
+ params:
+ file: drivers-evergreen-tools/mo-expansion.yml
+ stop_mongod:
+ command: subprocess.exec
+ type: system
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ set -o errexit
+ set -o pipefail
+ if cd drivers-evergreen-tools/.evergreen/orchestration 2>/dev/null; then
+ . ../venv-utils.sh
+ if venvactivate venv; then
+ mongo-orchestration stop
+ fi
+ fi
+ test:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ include_expansions_in_env:
+ - build_type
+ - CRYPT_SHARED_LIB_PATH
+ - cse_aws_access_key_id
+ - cse_aws_secret_access_key
+ - cse_azure_client_id
+ - cse_azure_client_secret
+ - cse_azure_tenant_id
+ - cse_gcp_email
+ - cse_gcp_privatekey
+ - disable_slow_tests
+ - distro_id
+ - example_projects_cc
+ - example_projects_cxx
+ - example_projects_cxx_standard
+ - example_projects_cxxflags
+ - example_projects_ldflags
+ - generator
+ - lib_dir
+ - MONGOCXX_TEST_TOPOLOGY
+ - MONGODB_API_VERSION
+ - platform
+ - TEST_WITH_ASAN
+ - TEST_WITH_UBSAN
+ - TEST_WITH_VALGRIND
+ - use_mongocryptd
+ - USE_STATIC_LIBS
+ args:
+ - -c
+ - .evergreen/scripts/test.sh
+ test atlas connectivity:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ silent: true
+ args:
+ - -c
+ - |
+ export MONGOC_INSTALL_PREFIX=$(pwd)/../mongoc
+ export MONGOCXX_INSTALL_PREFIX=$(pwd)/build/install
+ export LIB_DIR=${lib_dir}
+ export BUILD_TYPE=${build_type}
+ export BUILD_DIR=$(pwd)/build
+
+ # The atlas_serverless_uri expansion is set in the Evergreen project settings.
+ export URI="${atlas_serverless_uri}"
+
+ ./.evergreen/scripts/connect.sh
+ test auth:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ export MONGOC_INSTALL_PREFIX=$(pwd)/../mongoc
+ export MONGOCXX_INSTALL_PREFIX=$(pwd)/build/install
+ export LIB_DIR=${lib_dir}
+ export BUILD_TYPE=${build_type}
+ export BUILD_DIR=$(pwd)/build
+ export URI="mongodb://bob:pwd123@localhost"
+ ./.evergreen/scripts/connect.sh
+ test-search-index-helpers:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ export MONGODB_URI=${MONGODB_URI}
+ export LD_LIBRARY_PATH=$(pwd)/../mongoc/lib
+
+ ./build/src/mongocxx/test/test_driver "atlas search indexes prose tests"
+ test_mongohouse:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - .evergreen/scripts/test-mongohouse.sh
+ uninstall-check:
+ command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ case "$OSTYPE" in
+ darwin*|linux*) .evergreen/scripts/uninstall_check.sh ;;
+ cygwin) cmd.exe /c ".evergreen\\scripts\\uninstall_check_windows.cmd" ;;
+ esac
+ upload augmented sbom:
+ - command: s3.put
+ type: system
+ params:
+ display_name: Augmented SBOM
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: application/json
+ local_file: mongo-cxx-driver/etc/augmented.sbom.json.new
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/silk/augmented.sbom.json
+ - command: s3.put
+ type: system
+ params:
+ display_name: Augmented SBOM (Diff)
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: application/json
+ local_file: mongo-cxx-driver/diff.txt
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/silk/augmented.sbom.json.diff
+ upload code coverage:
+ command: subprocess.exec
+ type: system
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ include_expansions_in_env:
+ - codecov_token
+ args:
+ - -c
+ - .evergreen/scripts/upload-code-coverage.sh
+ upload mongo orchestration artifacts:
+ - command: subprocess.exec
+ type: system
+ params:
+ binary: bash
+ args:
+ - -c
+ - |
+ set -o errexit
+ for log in $(find . -name '*.log'); do
+ tar rf mongodb-logs.tar "$log"
+ done
+ if [[ -f mongodb-logs.tar ]]; then
+ gzip mongodb-logs.tar
+ fi
+ - command: s3.put
+ type: system
+ params:
+ display_name: mongodb-logs.tar.gz
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: ${content_type|application/x-gzip}
+ local_file: mongodb-logs.tar.gz
+ optional: true
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-mongodb-logs.tar.gz
+ upload scan artifacts:
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ args:
+ - -c
+ - |
+ set -o errexit
+ if find scan -name \*.html | grep -q html; then
+ (cd scan && find . -name index.html -exec echo "{}" \;) >> scan.html
+ else
+ echo "No issues found" > scan.html
+ fi
+ - command: subprocess.exec
+ type: test
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ env:
+ AWS_ACCESS_KEY_ID: ${aws_key}
+ AWS_SECRET_ACCESS_KEY: ${aws_secret}
+ silent: true
+ args:
+ - -c
+ - aws s3 cp scan s3://mciuploads/mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/scan/ --recursive --acl public-read --region us-east-1
+ - command: s3.put
+ type: system
+ params:
+ display_name: Scan Build Report
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: text/html
+ local_file: mongo-cxx-driver/scan.html
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/scan/index.html
+ upload working dir:
+ - command: archive.targz_pack
+ type: system
+ params:
+ include:
+ - ./**
+ source_dir: mongo-cxx-driver
+ target: working-dir.tar.gz
+ - command: s3.put
+ type: system
+ params:
+ display_name: working-dir.tar.gz
+ aws_key: ${aws_key}
+ aws_secret: ${aws_secret}
+ bucket: mciuploads
+ content_type: ${content_type|application/x-gzip}
+ local_file: working-dir.tar.gz
+ permissions: public-read
+ remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-working-dir.tar.gz
diff --git a/.evergreen/generated_configs/task_groups.yml b/.evergreen/generated_configs/task_groups.yml
new file mode 100644
index 0000000000..741086dc55
--- /dev/null
+++ b/.evergreen/generated_configs/task_groups.yml
@@ -0,0 +1,87 @@
+task_groups:
+ - name: tg-abi-stability
+ max_hosts: -1
+ setup_group_can_fail_task: true
+ setup_task:
+ - command: git.get_project
+ params:
+ directory: mongo-cxx-driver
+ - func: install_c_driver
+ - command: subprocess.exec
+ params:
+ binary: bash
+ include_expansions_in_env:
+ - cxx_standard
+ args:
+ - -c
+ - mongo-cxx-driver/.evergreen/scripts/abi-stability-setup.sh
+ tasks:
+ - .abi-stability
+ teardown_task:
+ - command: subprocess.exec
+ params:
+ binary: bash
+ args:
+ - -c
+ - rm -rf *
+ teardown_task_can_fail_task: true
+ - name: tg-atlas-search-indexes-7.0
+ setup_group:
+ - func: setup
+ - func: fetch-det
+ - command: subprocess.exec
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ add_expansions_to_env: true
+ env:
+ MONGODB_VERSION: "7.0"
+ args:
+ - -c
+ - ${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh
+ - command: expansions.update
+ params:
+ file: mongo-cxx-driver/atlas-expansion.yml
+ setup_group_can_fail_task: true
+ setup_group_timeout_secs: 1800
+ tasks:
+ - atlas-search-indexes-7.0
+ teardown_group:
+ - command: subprocess.exec
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ add_expansions_to_env: true
+ args:
+ - -c
+ - ${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh
+ - name: tg-atlas-search-indexes-8.0
+ setup_group:
+ - func: setup
+ - func: fetch-det
+ - command: subprocess.exec
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ add_expansions_to_env: true
+ env:
+ MONGODB_VERSION: "8.0"
+ args:
+ - -c
+ - ${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh
+ - command: expansions.update
+ params:
+ file: mongo-cxx-driver/atlas-expansion.yml
+ setup_group_can_fail_task: true
+ setup_group_timeout_secs: 1800
+ tasks:
+ - atlas-search-indexes-8.0
+ teardown_group:
+ - command: subprocess.exec
+ params:
+ binary: bash
+ working_dir: mongo-cxx-driver
+ add_expansions_to_env: true
+ args:
+ - -c
+ - ${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh
diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml
new file mode 100644
index 0000000000..9ae002a2ad
--- /dev/null
+++ b/.evergreen/generated_configs/tasks.yml
@@ -0,0 +1,4579 @@
+tasks:
+ - name: abi-compliance-check
+ run_on: ubuntu2204-large
+ tags: [abi-stability, abi-compliance-check, ubuntu2204]
+ commands:
+ - func: abi-compliance-check
+ - name: abi-prohibited-symbols
+ run_on: ubuntu2204-large
+ tags: [abi-stability, abi-prohibited-symbols, ubuntu2204]
+ commands:
+ - func: abi-prohibited-symbols
+ - name: abidiff
+ run_on: ubuntu2204-large
+ tags: [abi-stability, abidiff, ubuntu2204]
+ commands:
+ - func: abidiff
+ - name: atlas-search-indexes-7.0
+ run_on: ubuntu2004-large
+ tags: [atlas-search-indexes, ubuntu2004]
+ commands:
+ - func: install_c_driver
+ - func: compile
+ vars:
+ build_type: Debug
+ - func: test-search-index-helpers
+ - name: atlas-search-indexes-8.0
+ run_on: ubuntu2004-large
+ tags: [atlas-search-indexes, ubuntu2004]
+ commands:
+ - func: install_c_driver
+ - func: compile
+ vars:
+ build_type: Debug
+ - func: test-search-index-helpers
+ - name: benchmarks
+ run_on: rhel90-dbx-perf-large
+ tags: [benchmarks, rhel90-dbx-perf]
+ commands:
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: v6.0-perf
+ - func: fetch_c_driver_source
+ - func: benchmarks-compile
+ - func: benchmarks-run
+ - name: clang-tidy
+ run_on: ubuntu2004-small
+ tags: [clang-tidy, ubuntu2004]
+ commands:
+ - func: setup
+ - func: install_c_driver
+ vars:
+ cc_compiler: clang
+ cxx_compiler: clang++
+ - func: clang-tidy
+ vars:
+ cc_compiler: clang
+ cxx_compiler: clang++
+ - name: compile-only-rhel79-release-shared-impls
+ run_on: rhel79-large
+ tags: [compile-only, rhel79, release, shared, impls]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: impls
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ - name: compile-only-rhel81-power8-release-shared
+ run_on: rhel81-power8-large
+ tags: [compile-only, rhel81-power8, release, shared]
+ patchable: false
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ - name: compile-only-rhel83-zseries-release-shared
+ run_on: rhel83-zseries-large
+ tags: [compile-only, rhel83-zseries, release, shared]
+ patchable: false
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ - name: compile-only-ubuntu2004-clang-debug-shared
+ run_on: ubuntu2004-large
+ tags: [compile-only, ubuntu2004, clang, debug, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Debug
+ cc_compiler: clang
+ cxx_compiler: clang++
+ - name: compile-only-ubuntu2004-debug-shared
+ run_on: ubuntu2004-large
+ tags: [compile-only, ubuntu2004, debug, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Debug
+ - name: compile-only-ubuntu2004-gcc-debug-shared
+ run_on: ubuntu2004-large
+ tags: [compile-only, ubuntu2004, gcc, debug, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Debug
+ cc_compiler: gcc
+ cxx_compiler: g++
+ - name: compile-only-vs2015-x64-debug-shared
+ run_on: windows-64-vs2015-large
+ tags: [compile-only, windows-64-vs2015, vs2015x64, debug, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Debug
+ generator: Visual Studio 14 2015
+ platform: x64
+ - name: compile-only-vs2015-x64-release-shared
+ run_on: windows-64-vs2015-large
+ tags: [compile-only, windows-64-vs2015, vs2015x64, release, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ generator: Visual Studio 14 2015
+ platform: x64
+ - name: docker-build-ubuntu2204
+ run_on: ubuntu2204-large
+ tags: [docker-build, ubuntu2204]
+ commands:
+ - func: setup
+ - func: docker-image-build
+ - name: docker-build-ubuntu2204-arm64
+ run_on: ubuntu2204-arm64-large
+ tags: [docker-build, ubuntu2204-arm64]
+ commands:
+ - func: setup
+ - func: docker-image-build
+ - name: integration-debian10-release-shared-5.0-replica
+ run_on: debian10-large
+ tags: [integration, debian10, release, shared, "5.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-debian10-release-shared-5.0-sharded
+ run_on: debian10-large
+ tags: [integration, debian10, release, shared, "5.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-debian10-release-shared-5.0-single
+ run_on: debian10-large
+ tags: [integration, debian10, release, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-debian10-release-shared-extra_alignment-5.0-single
+ run_on: debian10-large
+ tags: [integration, debian10, release, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-debian10-release-static-5.0-single
+ run_on: debian10-large
+ tags: [integration, debian10, release, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-debian10-release-static-extra_alignment-5.0-single
+ run_on: debian10-large
+ tags: [integration, debian10, release, static, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-debian11-release-shared-5.0-replica
+ run_on: debian11-large
+ tags: [integration, debian11, release, shared, "5.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-debian11-release-shared-5.0-sharded
+ run_on: debian11-large
+ tags: [integration, debian11, release, shared, "5.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-debian11-release-shared-5.0-single
+ run_on: debian11-large
+ tags: [integration, debian11, release, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-debian11-release-shared-cxx20-5.0-single
+ run_on: debian11-large
+ tags: [integration, debian11, release, shared, cxx20, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ REQUIRED_CXX_STANDARD: 20
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ - name: integration-debian11-release-shared-cxx20-extra_alignment-5.0-single
+ run_on: debian11-large
+ tags: [integration, debian11, release, shared, cxx20, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ REQUIRED_CXX_STANDARD: 20
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ - name: integration-debian11-release-shared-extra_alignment-5.0-single
+ run_on: debian11-large
+ tags: [integration, debian11, release, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-debian11-release-static-5.0-single
+ run_on: debian11-large
+ tags: [integration, debian11, release, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-debian11-release-static-extra_alignment-5.0-single
+ run_on: debian11-large
+ tags: [integration, debian11, release, static, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-debian12-release-shared-csfle-latest-replica
+ run_on: debian12-large
+ tags: [integration, debian12, release, shared, csfle, latest, replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-debian12-release-shared-csfle-latest-sharded
+ run_on: debian12-large
+ tags: [integration, debian12, release, shared, csfle, latest, sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-debian12-release-shared-cxx20-extra_alignment-latest-single
+ run_on: debian12-large
+ tags: [integration, debian12, release, shared, cxx20, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ REQUIRED_CXX_STANDARD: 20
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ - name: integration-debian12-release-shared-cxx20-latest-single
+ run_on: debian12-large
+ tags: [integration, debian12, release, shared, cxx20, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ REQUIRED_CXX_STANDARD: 20
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ - name: integration-debian12-release-shared-extra_alignment-latest-single
+ run_on: debian12-large
+ tags: [integration, debian12, release, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-debian12-release-shared-latest-single
+ run_on: debian12-large
+ tags: [integration, debian12, release, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-debian12-release-static-extra_alignment-latest-single
+ run_on: debian12-large
+ tags: [integration, debian12, release, static, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-debian12-release-static-latest-single
+ run_on: debian12-large
+ tags: [integration, debian12, release, static, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-macos-1100-release-shared-boost-5.0-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, shared, boost, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-macos-1100-release-shared-boost-extra_alignment-5.0-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, shared, boost, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-macos-1100-release-shared-boost-extra_alignment-latest-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, shared, boost, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-macos-1100-release-shared-boost-latest-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, shared, boost, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-macos-1100-release-static-boost-5.0-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, static, boost, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-macos-1100-release-static-boost-extra_alignment-5.0-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, static, boost, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-macos-1100-release-static-boost-extra_alignment-latest-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, static, boost, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-macos-1100-release-static-boost-latest-single
+ run_on: macos-1100
+ tags: [integration, macos-1100, release, static, boost, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-rhel81-power8-release-shared-5.0-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, shared, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel81-power8-release-shared-extra_alignment-5.0-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, shared, extra_alignment, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel81-power8-release-shared-extra_alignment-latest-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, shared, extra_alignment, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel81-power8-release-shared-latest-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, shared, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel81-power8-release-static-5.0-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, static, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel81-power8-release-static-extra_alignment-5.0-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, static, extra_alignment, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel81-power8-release-static-extra_alignment-latest-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, static, extra_alignment, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel81-power8-release-static-latest-single
+ run_on: rhel81-power8-large
+ tags: [integration, rhel81-power8, release, static, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-shared-5.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, shared, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-shared-6.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, shared, "6.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-shared-extra_alignment-5.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, shared, extra_alignment, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-shared-extra_alignment-6.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, shared, extra_alignment, "6.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-shared-extra_alignment-latest-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, shared, extra_alignment, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-shared-latest-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, shared, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-static-5.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, static, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-static-6.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, static, "6.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-static-extra_alignment-5.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, static, extra_alignment, "5.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-static-extra_alignment-6.0-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, static, extra_alignment, "6.0", single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-static-extra_alignment-latest-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, static, extra_alignment, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel83-zseries-release-static-latest-single
+ run_on: rhel83-zseries-large
+ tags: [integration, rhel83-zseries, release, static, latest, single]
+ patchable: false
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-shared-csfle-latest-replica
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, shared, csfle, latest, replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-shared-csfle-latest-sharded
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, shared, csfle, latest, sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-shared-cxx20-extra_alignment-latest-single
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, shared, cxx20, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ REQUIRED_CXX_STANDARD: 20
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-shared-cxx20-latest-single
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, shared, cxx20, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ REQUIRED_CXX_STANDARD: 20
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-shared-extra_alignment-latest-single
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-shared-latest-single
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-static-extra_alignment-latest-single
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, static, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel90-arm64-release-static-latest-single
+ run_on: rhel90-arm64-large
+ tags: [integration, rhel90-arm64, release, static, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel90-release-shared-csfle-latest-replica
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, shared, csfle, latest, replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ lib_dir: lib64
+ - name: integration-rhel90-release-shared-csfle-latest-sharded
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, shared, csfle, latest, sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ lib_dir: lib64
+ - name: integration-rhel90-release-shared-cxx20-extra_alignment-latest-single
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, shared, cxx20, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ REQUIRED_CXX_STANDARD: 20
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ lib_dir: lib64
+ - name: integration-rhel90-release-shared-cxx20-latest-single
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, shared, cxx20, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ REQUIRED_CXX_STANDARD: 20
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ REQUIRED_CXX_STANDARD: 20
+ example_projects_cxx_standard: 20
+ lib_dir: lib64
+ - name: integration-rhel90-release-shared-extra_alignment-latest-single
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel90-release-shared-latest-single
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ lib_dir: lib64
+ - name: integration-rhel90-release-static-extra_alignment-latest-single
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, static, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-rhel90-release-static-latest-single
+ run_on: rhel90-large
+ tags: [integration, rhel90, release, static, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ lib_dir: lib64
+ - name: integration-ubuntu1804-arm64-release-shared-5.0-single
+ run_on: ubuntu1804-arm64-large
+ tags: [integration, ubuntu1804-arm64, release, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-arm64-release-shared-extra_alignment-5.0-single
+ run_on: ubuntu1804-arm64-large
+ tags: [integration, ubuntu1804-arm64, release, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-arm64-release-static-5.0-single
+ run_on: ubuntu1804-arm64-large
+ tags: [integration, ubuntu1804-arm64, release, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-ubuntu1804-arm64-release-static-extra_alignment-5.0-single
+ run_on: ubuntu1804-arm64-large
+ tags: [integration, ubuntu1804-arm64, release, static, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-ubuntu1804-debug-shared-4.0-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, "4.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-4.2-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, "4.2", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.2"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-4.4-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, "4.4", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.4"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-5.0-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-6.0-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, "6.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-csfle-4.0-replica
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "4.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu1804-debug-shared-csfle-4.0-sharded
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "4.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu1804-debug-shared-csfle-4.2-replica
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.2", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "4.2"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu1804-debug-shared-csfle-4.2-replica-mongocryptd
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.2", replica, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "4.2"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ use_mongocryptd: true
+ - name: integration-ubuntu1804-debug-shared-csfle-4.2-sharded
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.2", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "4.2"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu1804-debug-shared-csfle-4.2-sharded-mongocryptd
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.2", sharded, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "4.2"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ use_mongocryptd: true
+ - name: integration-ubuntu1804-debug-shared-csfle-4.4-replica
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.4", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "4.4"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu1804-debug-shared-csfle-4.4-replica-mongocryptd
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.4", replica, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "4.4"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ use_mongocryptd: true
+ - name: integration-ubuntu1804-debug-shared-csfle-4.4-sharded
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.4", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "4.4"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu1804-debug-shared-csfle-4.4-sharded-mongocryptd
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "4.4", sharded, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "4.4"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ use_mongocryptd: true
+ - name: integration-ubuntu1804-debug-shared-csfle-5.0-replica
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "5.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu1804-debug-shared-csfle-5.0-replica-mongocryptd
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "5.0", replica, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ use_mongocryptd: true
+ - name: integration-ubuntu1804-debug-shared-csfle-5.0-sharded
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "5.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu1804-debug-shared-csfle-5.0-sharded-mongocryptd
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "5.0", sharded, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ use_mongocryptd: true
+ - name: integration-ubuntu1804-debug-shared-csfle-6.0-replica
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "6.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "6.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu1804-debug-shared-csfle-6.0-sharded
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, csfle, "6.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "6.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu1804-debug-shared-extra_alignment-4.0-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, extra_alignment, "4.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-extra_alignment-4.2-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, extra_alignment, "4.2", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.2"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-extra_alignment-4.4-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, extra_alignment, "4.4", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.4"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-extra_alignment-5.0-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-debug-shared-extra_alignment-6.0-single
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, debug, shared, extra_alignment, "6.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu1804-release-shared-5.0-replica
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, release, shared, "5.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu1804-release-shared-5.0-sharded
+ run_on: ubuntu1804-large
+ tags: [integration, ubuntu1804, release, shared, "5.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu2004-arm64-release-shared-extra_alignment-latest-single
+ run_on: ubuntu2004-arm64-large
+ tags: [integration, ubuntu2004-arm64, release, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-arm64-release-shared-latest-single
+ run_on: ubuntu2004-arm64-large
+ tags: [integration, ubuntu2004-arm64, release, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-arm64-release-static-extra_alignment-latest-single
+ run_on: ubuntu2004-arm64-large
+ tags: [integration, ubuntu2004-arm64, release, static, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-ubuntu2004-arm64-release-static-latest-single
+ run_on: ubuntu2004-arm64-large
+ tags: [integration, ubuntu2004-arm64, release, static, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-ubuntu2004-debug-shared-7.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, "7.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "7.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-debug-shared-8.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, "8.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "8.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-debug-shared-csfle-7.0-replica
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, "7.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "7.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu2004-debug-shared-csfle-7.0-sharded
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, "7.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "7.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu2004-debug-shared-csfle-8.0-replica
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, "8.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "8.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu2004-debug-shared-csfle-8.0-sharded
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, "8.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "8.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu2004-debug-shared-csfle-latest-replica
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, latest, replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu2004-debug-shared-csfle-latest-replica-mongocryptd
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, latest, replica, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ use_mongocryptd: true
+ - name: integration-ubuntu2004-debug-shared-csfle-latest-sharded
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, latest, sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu2004-debug-shared-csfle-latest-sharded-mongocryptd
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, csfle, latest, sharded, mongocryptd]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ use_mongocryptd: true
+ - name: integration-ubuntu2004-debug-shared-extra_alignment-7.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, extra_alignment, "7.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "7.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-debug-shared-extra_alignment-8.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, extra_alignment, "8.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "8.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-debug-shared-extra_alignment-latest-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-debug-shared-latest-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, debug, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-release-shared-5.0-replica
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, "5.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu2004-release-shared-5.0-sharded
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, "5.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu2004-release-shared-5.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-release-shared-csfle-5.0-replica
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, csfle, "5.0", replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu2004-release-shared-csfle-5.0-sharded
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, csfle, "5.0", sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu2004-release-shared-csfle-latest-replica
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, csfle, latest, replica]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: replica_set
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: replica
+ - name: integration-ubuntu2004-release-shared-csfle-latest-sharded
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, csfle, latest, sharded]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ TOPOLOGY: sharded_cluster
+ mongodb_version: latest
+ - func: install_c_driver
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: sharded
+ - name: integration-ubuntu2004-release-shared-extra_alignment-5.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-release-shared-extra_alignment-latest-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-release-shared-latest-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ - name: integration-ubuntu2004-release-static-5.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-ubuntu2004-release-static-extra_alignment-5.0-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, static, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-ubuntu2004-release-static-extra_alignment-latest-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, static, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-ubuntu2004-release-static-latest-single
+ run_on: ubuntu2004-large
+ tags: [integration, ubuntu2004, release, static, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Release }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_STATIC_LIBS: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ USE_STATIC_LIBS: 1
+ - name: integration-windows-2019-vs2019-x64-debug-shared-4.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, "4.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-4.2-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, "4.2", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.2"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-4.4-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, "4.4", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.4"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-5.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-6.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, "6.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-7.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, "7.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "7.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-8.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, "8.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "8.0"
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-4.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, "4.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-4.2-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, "4.2", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.2"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-4.4-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, "4.4", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "4.4"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-5.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-6.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, "6.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "6.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-7.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, "7.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "7.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-8.0-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, "8.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "8.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-extra_alignment-latest-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: integration-windows-2019-vs2019-x64-debug-shared-latest-single
+ run_on: windows-vsCurrent-large
+ tags: [integration, windows-vsCurrent, debug, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: generator, value: Visual Studio 16 2019 }
+ - { key: platform, value: x64 }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ example_projects_cxx_standard: 17
+ - name: lint
+ run_on: ubuntu1804-large
+ tags: [lint, ubuntu1804]
+ commands:
+ - func: setup
+ - func: lint
+ - name: macro-guards-ubuntu2004
+ run_on: ubuntu2004-large
+ tags: [macro-guards, ubuntu2004]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ COMPILE_MACRO_GUARD_TESTS: "ON"
+ build_type: Debug
+ - name: macro-guards-ubuntu2004-clang
+ run_on: ubuntu2004-large
+ tags: [macro-guards, ubuntu2004, clang]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ COMPILE_MACRO_GUARD_TESTS: "ON"
+ build_type: Debug
+ cc_compiler: clang
+ cxx_compiler: clang++
+ - name: macro-guards-ubuntu2004-gcc
+ run_on: ubuntu2004-large
+ tags: [macro-guards, ubuntu2004, gcc]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ COMPILE_MACRO_GUARD_TESTS: "ON"
+ build_type: Debug
+ cc_compiler: gcc
+ cxx_compiler: g++
+ - name: packaging-debian
+ run_on: debian12-latest-large
+ tags: [packaging, debian12-latest]
+ commands:
+ - func: setup
+ - func: build-package-debian
+ - name: packaging-debian-mnmlstc
+ run_on: debian12-latest-large
+ tags: [packaging, debian12-latest]
+ commands:
+ - func: setup
+ - func: build-package-debian-mnmlstc
+ - name: packaging-rpm
+ run_on: rhel92-arm64-large
+ tags: [packaging, rhel92-arm64]
+ commands:
+ - func: setup
+ - func: build-package-rpm
+ - name: sanitizers-asan-ubuntu1804-clang-shared-5.0-single
+ run_on: ubuntu1804-large
+ tags: [sanitizers, asan, ubuntu1804, clang, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-asan-ubuntu1804-clang-shared-extra_alignment-5.0-single
+ run_on: ubuntu1804-large
+ tags: [sanitizers, asan, ubuntu1804, clang, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-asan-ubuntu1804-clang-static-5.0-single
+ run_on: ubuntu1804-large
+ tags: [sanitizers, asan, ubuntu1804, clang, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-asan-ubuntu1804-clang-static-extra_alignment-5.0-single
+ run_on: ubuntu1804-large
+ tags: [sanitizers, asan, ubuntu1804, clang, static, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-asan-ubuntu2004-clang-shared-5.0-single
+ run_on: ubuntu2004-large
+ tags: [sanitizers, asan, ubuntu2004, clang, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-asan-ubuntu2004-clang-shared-extra_alignment-5.0-single
+ run_on: ubuntu2004-large
+ tags: [sanitizers, asan, ubuntu2004, clang, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-asan-ubuntu2004-clang-static-5.0-single
+ run_on: ubuntu2004-large
+ tags: [sanitizers, asan, ubuntu2004, clang, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-asan-ubuntu2004-clang-static-extra_alignment-5.0-single
+ run_on: ubuntu2004-large
+ tags: [sanitizers, asan, ubuntu2004, clang, static, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ USE_SANITIZER_ASAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_ASAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=address
+ - name: sanitizers-ubsan-ubuntu1804-clang-static-5.0-single
+ run_on: ubuntu1804-large
+ tags: [sanitizers, ubsan, ubuntu1804, clang, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_SANITIZER_UBSAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_UBSAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=undefined -fno-sanitize-recover=undefined
+ - name: sanitizers-ubsan-ubuntu2004-clang-static-5.0-single
+ run_on: ubuntu2004-large
+ tags: [sanitizers, ubsan, ubuntu2004, clang, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: cc_compiler, value: clang }
+ - { key: cxx_compiler, value: clang++ }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ USE_SANITIZER_UBSAN: "ON"
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_UBSAN: "ON"
+ example_projects_cc: clang
+ example_projects_cxx: clang++
+ example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer
+ example_projects_ldflags: -fsanitize=undefined -fno-sanitize-recover=undefined
+ - name: scan-build-ubuntu2204-std11-boost
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std11, boost]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ BSONCXX_POLYFILL: boost
+ CXX_STANDARD: 11
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std11-default
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std11]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ CXX_STANDARD: 11
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std11-impls
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std11, impls]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ BSONCXX_POLYFILL: impls
+ CXX_STANDARD: 11
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std11-mnmlstc
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std11, mnmlstc]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ BSONCXX_POLYFILL: mnmlstc
+ CXX_STANDARD: 11
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std14-boost
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std14, boost]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ BSONCXX_POLYFILL: boost
+ CXX_STANDARD: 14
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std14-default
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std14]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ CXX_STANDARD: 14
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std14-impls
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std14, impls]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ BSONCXX_POLYFILL: impls
+ CXX_STANDARD: 14
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std14-mnmlstc
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std14, mnmlstc]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ BSONCXX_POLYFILL: mnmlstc
+ CXX_STANDARD: 14
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std17-default
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std17]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ CXX_STANDARD: 17
+ - func: upload scan artifacts
+ - name: scan-build-ubuntu2204-std17-impls
+ run_on: ubuntu2204-large
+ tags: [scan-build, ubuntu2204, std17, impls]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: run scan build
+ vars:
+ BSONCXX_POLYFILL: impls
+ CXX_STANDARD: 17
+ - func: upload scan artifacts
+ - name: silk
+ run_on: rhel8-latest-small
+ tags: [silk, rhel8-latest]
+ commands:
+ - func: setup
+ - func: check augmented sbom
+ - func: upload augmented sbom
+ - name: test_mongohouse
+ run_on: ubuntu2204-large
+ tags: [mongohouse, ubuntu2204]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ build_type: Release
+ - func: build_mongohouse
+ - func: run_mongohouse
+ - func: test_mongohouse
+ - name: uninstall-check-debian10-gcc-release-shared
+ run_on: debian10-large
+ tags: [uninstall-check, debian10, gcc, release, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ cc_compiler: gcc
+ cxx_compiler: g++
+ - func: uninstall-check
+ - name: uninstall-check-debian11-gcc-release-shared
+ run_on: debian11-large
+ tags: [uninstall-check, debian11, gcc, release, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ cc_compiler: gcc
+ cxx_compiler: g++
+ - func: uninstall-check
+ - name: uninstall-check-debian12-gcc-release-shared
+ run_on: debian12-large
+ tags: [uninstall-check, debian12, gcc, release, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ cc_compiler: gcc
+ cxx_compiler: g++
+ - func: uninstall-check
+ - name: uninstall-check-ubuntu1804-gcc-release-shared
+ run_on: ubuntu1804-large
+ tags: [uninstall-check, ubuntu1804, gcc, release, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ cc_compiler: gcc
+ cxx_compiler: g++
+ - func: uninstall-check
+ - name: uninstall-check-ubuntu2004-gcc-release-shared
+ run_on: ubuntu2004-large
+ tags: [uninstall-check, ubuntu2004, gcc, release, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ cc_compiler: gcc
+ cxx_compiler: g++
+ - func: uninstall-check
+ - name: uninstall-check-vs2015-x64-debug-shared
+ run_on: windows-64-vs2015-large
+ tags: [uninstall-check, windows-64-vs2015, vs2015x64, debug, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Debug
+ generator: Visual Studio 14 2015
+ platform: x64
+ - func: uninstall-check
+ - name: uninstall-check-vs2015-x64-release-shared
+ run_on: windows-64-vs2015-large
+ tags: [uninstall-check, windows-64-vs2015, vs2015x64, release, shared]
+ commands:
+ - func: setup
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ ENABLE_TESTS: "OFF"
+ build_type: Release
+ generator: Visual Studio 14 2015
+ platform: x64
+ - func: uninstall-check
+ - name: valgrind-ubuntu1804-shared-5.0-single
+ run_on: ubuntu1804-large
+ tags: [valgrind, ubuntu1804, shared, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: valgrind-ubuntu1804-shared-extra_alignment-5.0-single
+ run_on: ubuntu1804-large
+ tags: [valgrind, ubuntu1804, shared, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: valgrind-ubuntu1804-static-5.0-single
+ run_on: ubuntu1804-large
+ tags: [valgrind, ubuntu1804, static, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: valgrind-ubuntu1804-static-extra_alignment-5.0-single
+ run_on: ubuntu1804-large
+ tags: [valgrind, ubuntu1804, static, extra_alignment, "5.0", single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: "5.0"
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: valgrind-ubuntu2004-shared-extra_alignment-latest-single
+ run_on: ubuntu2004-large
+ tags: [valgrind, ubuntu2004, shared, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: valgrind-ubuntu2004-shared-latest-single
+ run_on: ubuntu2004-large
+ tags: [valgrind, ubuntu2004, shared, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: valgrind-ubuntu2004-static-extra_alignment-latest-single
+ run_on: ubuntu2004-large
+ tags: [valgrind, ubuntu2004, static, extra_alignment, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ BSON_EXTRA_ALIGNMENT: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: valgrind-ubuntu2004-static-latest-single
+ run_on: ubuntu2004-large
+ tags: [valgrind, ubuntu2004, static, latest, single]
+ commands:
+ - command: expansions.update
+ params:
+ updates:
+ - { key: build_type, value: Debug }
+ - { key: USE_STATIC_LIBS, value: "1" }
+ - func: setup
+ - func: start_mongod
+ vars:
+ mongodb_version: latest
+ - func: install_c_driver
+ vars:
+ SKIP_INSTALL_LIBMONGOCRYPT: 1
+ - func: compile
+ vars:
+ RUN_DISTCHECK: 1
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ TEST_WITH_VALGRIND: "ON"
+ disable_slow_tests: 1
+ use_mongocryptd: true
+ - name: versioned-api-one-required-macos-1100-release-shared-boost
+ run_on: macos-1100
+ tags: [versioned-api, macos-1100, release, shared, boost]
+ commands:
+ - func: setup
+ - func: start_mongod
+ vars:
+ AUTH: noauth
+ REQUIRE_API_VERSION: true
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ build_type: Release
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ MONGODB_API_VERSION: 1
+ build_type: Release
+ - name: versioned-api-one-required-ubuntu2004-debug-shared
+ run_on: ubuntu2004-large
+ tags: [versioned-api, ubuntu2004, debug, shared]
+ commands:
+ - func: setup
+ - func: start_mongod
+ vars:
+ AUTH: noauth
+ REQUIRE_API_VERSION: true
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ build_type: Debug
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ MONGODB_API_VERSION: 1
+ build_type: Debug
+ - name: versioned-api-one-required-windows-2019-vs2019-x64-debug-shared
+ run_on: windows-vsCurrent-large
+ tags: [versioned-api, windows-vsCurrent, vs2019x64, debug, shared]
+ commands:
+ - func: setup
+ - func: start_mongod
+ vars:
+ AUTH: noauth
+ REQUIRE_API_VERSION: true
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ build_type: Debug
+ generator: Visual Studio 16 2019
+ platform: x64
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ MONGODB_API_VERSION: 1
+ build_type: Debug
+ example_projects_cxx_standard: 17
+ generator: Visual Studio 16 2019
+ platform: x64
+ - name: versioned-api-two-accepted-macos-1100-release-shared-boost
+ run_on: macos-1100
+ tags: [versioned-api, macos-1100, release, shared, boost]
+ commands:
+ - func: setup
+ - func: start_mongod
+ vars:
+ AUTH: noauth
+ ORCHESTRATION_FILE: versioned-api-testing.json
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ BSONCXX_POLYFILL: boost
+ build_type: Release
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ build_type: Release
+ - name: versioned-api-two-accepted-ubuntu2004-debug-shared
+ run_on: ubuntu2004-large
+ tags: [versioned-api, ubuntu2004, debug, shared]
+ commands:
+ - func: setup
+ - func: start_mongod
+ vars:
+ AUTH: noauth
+ ORCHESTRATION_FILE: versioned-api-testing.json
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ build_type: Debug
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ build_type: Debug
+ - name: versioned-api-two-accepted-windows-2019-vs2019-x64-debug-shared
+ run_on: windows-vsCurrent-large
+ tags: [versioned-api, windows-vsCurrent, vs2019x64, debug, shared]
+ commands:
+ - func: setup
+ - func: start_mongod
+ vars:
+ AUTH: noauth
+ ORCHESTRATION_FILE: versioned-api-testing.json
+ mongodb_version: latest
+ - func: fetch_c_driver_source
+ - func: compile
+ vars:
+ build_type: Debug
+ generator: Visual Studio 16 2019
+ platform: x64
+ - func: fetch-det
+ - func: run_kms_servers
+ - func: test
+ vars:
+ MONGOCXX_TEST_TOPOLOGY: single
+ build_type: Debug
+ example_projects_cxx_standard: 17
+ generator: Visual Studio 16 2019
+ platform: x64
diff --git a/.evergreen/generated_configs/variants.yml b/.evergreen/generated_configs/variants.yml
new file mode 100644
index 0000000000..9ed4d6756c
--- /dev/null
+++ b/.evergreen/generated_configs/variants.yml
@@ -0,0 +1,126 @@
+buildvariants:
+ - name: abi-stability-polyfill
+ display_name: ABI Stability Checks (polyfill)
+ display_tasks:
+ - name: ABI Stability Checks (polyfill)
+ execution_tasks:
+ - .abi-stability
+ expansions:
+ cxx_standard: "11"
+ tasks:
+ - name: tg-abi-stability
+ - name: abi-stability-stdlib
+ display_name: ABI Stability Checks (stdlib)
+ display_tasks:
+ - name: ABI Stability Checks (stdlib)
+ execution_tasks:
+ - .abi-stability
+ expansions:
+ cxx_standard: "17"
+ tasks:
+ - name: tg-abi-stability
+ - name: atlas-search-indexes-matrix
+ display_name: atlas-search-indexes-matrix
+ display_tasks:
+ - name: atlas-search-indexes-matrix
+ execution_tasks:
+ - .atlas-search-indexes
+ tasks:
+ - name: tg-atlas-search-indexes-7.0
+ - name: tg-atlas-search-indexes-8.0
+ - name: benchmarks
+ display_name: benchmarks
+ tasks:
+ - name: .benchmarks
+ - name: clang-tidy
+ display_name: Clang Tidy
+ tasks:
+ - name: .clang-tidy
+ - name: compile-only-matrix
+ display_name: compile-only-matrix
+ display_tasks:
+ - name: compile-only-matrix
+ execution_tasks:
+ - .compile-only
+ tasks:
+ - name: .compile-only .rhel81-power8
+ batchtime: 1440
+ - name: .compile-only .rhel83-zseries
+ batchtime: 1440
+ - name: .compile-only !.rhel81-power8 !.rhel83-zseries
+ - name: docker-build
+ display_name: Docker Build
+ tasks:
+ - name: .docker-build
+ - name: integration-matrix
+ display_name: integration-matrix
+ tasks:
+ - name: .integration .rhel81-power8
+ batchtime: 1440
+ - name: .integration .rhel83-zseries
+ batchtime: 1440
+ - name: .integration !.rhel81-power8 !.rhel83-zseries
+ - name: lint
+ display_name: Lint
+ tasks:
+ - name: .lint
+ - name: macro-guards-matrix
+ display_name: macro-guards-matrix
+ display_tasks:
+ - name: macro-guards-matrix
+ execution_tasks:
+ - .macro-guards
+ tasks:
+ - name: .macro-guards
+ - name: mongohouse
+ display_name: Mongohouse
+ tasks:
+ - name: .mongohouse
+ - name: packaging
+ display_name: Linux Distro Packaging
+ tasks:
+ - name: .packaging
+ - name: sanitizers-matrix
+ display_name: sanitizers-matrix
+ display_tasks:
+ - name: sanitizers-matrix
+ execution_tasks:
+ - .sanitizers
+ tasks:
+ - name: .sanitizers
+ - name: scan-build-matrix
+ display_name: scan-build-matrix
+ display_tasks:
+ - name: scan-build-matrix
+ execution_tasks:
+ - .scan-build
+ tasks:
+ - name: .scan-build
+ - name: silk
+ display_name: Silk
+ tasks:
+ - name: .silk
+ - name: uninstall-check
+ display_name: Uninstall Check
+ display_tasks:
+ - name: uninstall-check
+ execution_tasks:
+ - .uninstall-check
+ tasks:
+ - name: .uninstall-check
+ - name: valgrind-matrix
+ display_name: valgrind-matrix
+ display_tasks:
+ - name: valgrind-matrix
+ execution_tasks:
+ - .valgrind
+ tasks:
+ - name: .valgrind
+ - name: versioned-api-matrix
+ display_name: versioned-api-matrix
+ display_tasks:
+ - name: versioned-api-matrix
+ execution_tasks:
+ - .versioned-api
+ tasks:
+ - name: .versioned-api
diff --git a/.evergreen/abi-compliance-check-setup.sh b/.evergreen/scripts/abi-compliance-check-setup.sh
similarity index 100%
rename from .evergreen/abi-compliance-check-setup.sh
rename to .evergreen/scripts/abi-compliance-check-setup.sh
diff --git a/.evergreen/abi-compliance-check-test.sh b/.evergreen/scripts/abi-compliance-check-test.sh
similarity index 95%
rename from .evergreen/abi-compliance-check-test.sh
rename to .evergreen/scripts/abi-compliance-check-test.sh
index 8837e5cf00..c8b29b012f 100755
--- a/.evergreen/abi-compliance-check-test.sh
+++ b/.evergreen/scripts/abi-compliance-check-test.sh
@@ -70,8 +70,8 @@ DOC
DOC
} | tee -a old.xml new.xml >/dev/null
- cat old.xml | tee cxx-abi/old.xml cxx-noabi/old.xml >/dev/null
- cat new.xml | tee cxx-abi/new.xml cxx-noabi/new.xml >/dev/null
+ tee cxx-abi/old.xml cxx-noabi/old.xml /dev/null
+ tee cxx-abi/new.xml cxx-noabi/new.xml /dev/null
rm old.xml new.xml
fi
diff --git a/.evergreen/abi-prohibited-symbols-test.sh b/.evergreen/scripts/abi-prohibited-symbols-test.sh
similarity index 100%
rename from .evergreen/abi-prohibited-symbols-test.sh
rename to .evergreen/scripts/abi-prohibited-symbols-test.sh
diff --git a/.evergreen/abi-stability-setup.sh b/.evergreen/scripts/abi-stability-setup.sh
similarity index 100%
rename from .evergreen/abi-stability-setup.sh
rename to .evergreen/scripts/abi-stability-setup.sh
diff --git a/.evergreen/abidiff-setup.sh b/.evergreen/scripts/abidiff-setup.sh
similarity index 100%
rename from .evergreen/abidiff-setup.sh
rename to .evergreen/scripts/abidiff-setup.sh
diff --git a/.evergreen/abidiff-test.sh b/.evergreen/scripts/abidiff-test.sh
similarity index 100%
rename from .evergreen/abidiff-test.sh
rename to .evergreen/scripts/abidiff-test.sh
diff --git a/.evergreen/scripts/build-example-projects.sh b/.evergreen/scripts/build-example-projects.sh
new file mode 100755
index 0000000000..6ea3ecf28b
--- /dev/null
+++ b/.evergreen/scripts/build-example-projects.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o pipefail
+
+if [ "$USE_STATIC_LIBS" ]; then
+ DIR=static
+else
+ DIR=shared
+fi
+
+cd examples/projects
+
+for project in bsoncxx mongocxx; do
+ (
+ cd $project
+
+ if ! (cd cmake/$DIR && ./build.sh >|output.txt 2>&1); then
+ echo "Example $project/cmake/$DIR failed" 1>&2
+ cat cmake/$DIR/output.txt 1>&2
+ exit 1
+ fi
+
+ if [[ ! ("$OSTYPE" =~ cygwin) ]]; then
+ if ! (cd pkg-config/$DIR && ./build.sh >|output.txt 2>&1); then
+ echo "Example $project/pkg-config/$DIR failed" 1>&2
+ cat pkg-config/$DIR/output.txt 1>&2
+ exit 1
+ fi
+ fi
+ )
+done
diff --git a/.evergreen/build_snapshot_rpm.sh b/.evergreen/scripts/build_snapshot_rpm.sh
similarity index 100%
rename from .evergreen/build_snapshot_rpm.sh
rename to .evergreen/scripts/build_snapshot_rpm.sh
diff --git a/.evergreen/check-augmented-sbom.sh b/.evergreen/scripts/check-augmented-sbom.sh
similarity index 100%
rename from .evergreen/check-augmented-sbom.sh
rename to .evergreen/scripts/check-augmented-sbom.sh
diff --git a/.evergreen/compile-scan-build.sh b/.evergreen/scripts/compile-scan-build.sh
similarity index 81%
rename from .evergreen/compile-scan-build.sh
rename to .evergreen/scripts/compile-scan-build.sh
index 1232a0fca9..67d3c45f76 100755
--- a/.evergreen/compile-scan-build.sh
+++ b/.evergreen/scripts/compile-scan-build.sh
@@ -3,7 +3,7 @@
set -o errexit
set -o pipefail
-: "${BSONCXX_POLYFILL:?}"
+: "${BSONCXX_POLYFILL:-}"
: "${CXX_STANDARD:?}"
mongoc_prefix="$(pwd)/../mongoc"
@@ -25,7 +25,7 @@ scan_build_directories+=(
)
# Use system scan-build otherwise.
-IFS=: read -ra sys_dirs <<< "${PATH:-}"
+IFS=: read -ra sys_dirs <<<"${PATH:-}"
scan_build_directories+=("${sys_dirs[@]:-}")
declare scan_build_binary
@@ -53,10 +53,10 @@ CMAKE_BUILD_PARALLEL_LEVEL="$(nproc)"
export CMAKE_BUILD_PARALLEL_LEVEL
cmake_flags=(
- -D CMAKE_BUILD_TYPE=Debug
- -D "CMAKE_CXX_STANDARD=${CXX_STANDARD:?}"
- -D CMAKE_CXX_STANDARD_REQUIRED=ON
- -D ENABLE_TESTS=OFF
+ "-DCMAKE_BUILD_TYPE=Debug"
+ "-DCMAKE_CXX_STANDARD=${CXX_STANDARD:?}"
+ "-DCMAKE_CXX_STANDARD_REQUIRED=ON"
+ "-DENABLE_TESTS=OFF"
)
scan_build_flags=(
@@ -67,14 +67,15 @@ scan_build_flags=(
--exclude "$(pwd)/build/_deps" # mongoc
)
-case "${BSONCXX_POLYFILL:?}" in
-mnmlstc) cmake_flags+=(-D "BSONCXX_POLY_USE_MNMLSTC=ON") ;;
-boost) cmake_flags+=(-D "BSONCXX_POLY_USE_BOOST=ON") ;;
-impls) cmake_flags+=(-D "BSONCXX_POLY_USE_IMPLS=ON") ;;
-std) cmake_flags+=(-D "BSONCXX_POLY_USE_STD=ON") ;;
+case "${BSONCXX_POLYFILL:-}" in
+mnmlstc) cmake_flags+=("-DBSONCXX_POLY_USE_MNMLSTC=ON") ;;
+boost) cmake_flags+=("-DBSONCXX_POLY_USE_BOOST=ON") ;;
+impls) cmake_flags+=("-DBSONCXX_POLY_USE_IMPLS=ON") ;;
+std) cmake_flags+=("-DBSONCXX_POLY_USE_STD=ON") ;;
esac
-echo "Configuring with CMake flags: ${cmake_flags[*]}"
+echo "Configuring with CMake flags:"
+printf " - %s\n" "${cmake_flags[@]}"
# Configure via scan-build for consistency.
CCCACHE_DISABLE=1 "${scan_build_binary}" "${scan_build_flags[@]}" "${cmake_binary:?}" -S . -B build "${cmake_flags[@]}"
diff --git a/.evergreen/compile.sh b/.evergreen/scripts/compile.sh
similarity index 84%
rename from .evergreen/compile.sh
rename to .evergreen/scripts/compile.sh
index b692969cff..dc96ecec66 100755
--- a/.evergreen/compile.sh
+++ b/.evergreen/scripts/compile.sh
@@ -15,6 +15,7 @@ set -o pipefail
: "${build_type:?}"
: "${distro_id:?}" # Required by find-cmake-latest.sh.
+: "${BSON_EXTRA_ALIGNMENT:-}"
: "${BSONCXX_POLYFILL:-}"
: "${COMPILE_MACRO_GUARD_TESTS:-}"
: "${ENABLE_CODE_COVERAGE:-}"
@@ -131,10 +132,10 @@ export CMAKE_GENERATOR="${generator:?}"
export CMAKE_GENERATOR_PLATFORM="${platform:-}"
case "${BSONCXX_POLYFILL:-}" in
-mnmlstc) cmake_flags+=(-D "BSONCXX_POLY_USE_MNMLSTC=ON") ;;
-boost) cmake_flags+=(-D "BSONCXX_POLY_USE_BOOST=ON") ;;
-impls) cmake_flags+=(-D "BSONCXX_POLY_USE_IMPLS=ON") ;;
-std) cmake_flags+=(-D "BSONCXX_POLY_USE_STD=ON") ;;
+mnmlstc) cmake_flags+=("-DBSONCXX_POLY_USE_MNMLSTC=ON") ;;
+boost) cmake_flags+=("-DBSONCXX_POLY_USE_BOOST=ON") ;;
+impls) cmake_flags+=("-DBSONCXX_POLY_USE_IMPLS=ON") ;;
+std) cmake_flags+=("-DBSONCXX_POLY_USE_STD=ON") ;;
*) ;;
esac
@@ -155,6 +156,10 @@ linux*)
cc_flags+=("${cc_flags_init[@]}")
cxx_flags+=("${cxx_flags_init[@]}" -Wno-missing-field-initializers)
+ if [[ "${CXX:-}" != "clang++" ]]; then
+ cxx_flags+=(-Wno-aligned-new)
+ fi
+
if [[ "${distro_id:?}" != rhel7* ]]; then
cxx_flags+=("-Wno-expansion-to-defined")
else
@@ -237,7 +242,8 @@ if [[ "${COMPILE_MACRO_GUARD_TESTS:-"OFF"}" == "ON" ]]; then
cmake_flags+=("-DENABLE_MACRO_GUARD_TESTS=ON")
fi
-echo "Configuring with CMake flags: ${cmake_flags[*]}"
+echo "Configuring with CMake flags:"
+printf " - %s\n" "${cmake_flags[@]}"
"${cmake_binary}" "${cmake_flags[@]}" ..
@@ -254,3 +260,30 @@ fi
if [[ "${_RUN_DISTCHECK:-}" ]]; then
"${cmake_binary}" --build . --config "${build_type:?}" --target distcheck
fi
+
+# Ensure extra alignment is enabled or disabled as expected.
+if [[ -n "$(find "${mongoc_prefix:?}" -name 'bson-config.h')" ]]; then
+ if [[ "${BSON_EXTRA_ALIGNMENT:-}" == "1" ]]; then
+ grep -R "#define BSON_EXTRA_ALIGN 1" "${mongoc_prefix:?}" || {
+ echo "BSON_EXTRA_ALIGN is not 1 despite BSON_EXTRA_ALIGNMENT=1" 1>&2
+ exit 1
+ }
+ else
+ grep -R "#define BSON_EXTRA_ALIGN 0" "${mongoc_prefix:?}" || {
+ echo "BSON_EXTRA_ALIGN is not 0 despite BSON_EXTRA_ALIGNMENT=0" 1>&2
+ exit 1
+ }
+ fi
+else
+ if [[ "${BSON_EXTRA_ALIGNMENT:-}" == "1" ]]; then
+ grep -R "#define BSON_EXTRA_ALIGN 1" install || {
+ echo "BSON_EXTRA_ALIGN is not 1 despite BSON_EXTRA_ALIGNMENT=1" 1>&2
+ exit 1
+ }
+ else
+ grep -R "#define BSON_EXTRA_ALIGN 0" install || {
+ echo "BSON_EXTRA_ALIGN is not 0 despite BSON_EXTRA_ALIGNMENT=0" 1>&2
+ exit 1
+ }
+ fi
+fi
diff --git a/.evergreen/connect.sh b/.evergreen/scripts/connect.sh
similarity index 71%
rename from .evergreen/connect.sh
rename to .evergreen/scripts/connect.sh
index 8694840420..7a2b010bfd 100755
--- a/.evergreen/connect.sh
+++ b/.evergreen/scripts/connect.sh
@@ -6,9 +6,9 @@ set -o pipefail
LIB_DIR=${LIB_DIR:-"lib"}
BUILD_TYPE=${BUILD_TYPE:-"Debug"}
-print_usage_and_exit () {
- echo "Error: $1"
- cat << EOF
+print_usage_and_exit() {
+ echo "Error: $1"
+ cat </dev/null; then
+ CMAKE=cmake
+ elif uname -a | grep -iq 'x86_64 GNU/Linux'; then
+ if [ -f "$(pwd)/cmake-3.11.0/bin/cmake" ]; then
+ CMAKE="$(pwd)/cmake-3.11.0/bin/cmake"
+ return 0
+ fi
+ curl --retry 5 https://cmake.org/files/v3.11/cmake-3.11.0-Linux-x86_64.tar.gz -sS --max-time 120 --fail --output cmake.tar.gz
+ mkdir cmake-3.11.0
+ tar xzf cmake.tar.gz -C cmake-3.11.0 --strip-components=1
+ CMAKE=$(pwd)/cmake-3.11.0/bin/cmake
+ elif [ -f "/cygdrive/c/cmake/bin/cmake" ]; then
+ CMAKE="/cygdrive/c/cmake/bin/cmake"
+ fi
+ if [ -z "$CMAKE" ] || [ -z "$($CMAKE --version 2>/dev/null)" ]; then
+ # Some images have no cmake yet, or a broken cmake (see: BUILD-8570)
+ echo "-- MAKE CMAKE --"
+ CMAKE_INSTALL_DIR=$(readlink -f cmake-install)
+ curl --retry 5 https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz -sS --max-time 120 --fail --output cmake.tar.gz
+ tar xzf cmake.tar.gz
+ cd cmake-3.11.0
+ ./bootstrap --prefix="${CMAKE_INSTALL_DIR}"
+ make -j8
+ make install
+ cd ..
+ CMAKE="${CMAKE_INSTALL_DIR}/bin/cmake"
+ echo "-- DONE MAKING CMAKE --"
+ fi
+}
+
+find_cmake
diff --git a/.evergreen/install_c_driver.sh b/.evergreen/scripts/install-c-driver.sh
similarity index 91%
rename from .evergreen/install_c_driver.sh
rename to .evergreen/scripts/install-c-driver.sh
index 5afda21337..0c8874d705 100755
--- a/.evergreen/install_c_driver.sh
+++ b/.evergreen/scripts/install-c-driver.sh
@@ -70,11 +70,13 @@ cmake_binary="$(find_cmake_latest)"
command -v "${cmake_binary:?}"
# Install libmongocrypt.
-{
- echo "Installing libmongocrypt into ${mongoc_dir}..." 1>&2
- "${mongoc_dir}/.evergreen/scripts/compile-libmongocrypt.sh" "${cmake_binary}" "${mongoc_idir}" "${mongoc_install_idir}"
- echo "Installing libmongocrypt into ${mongoc_dir}... done." 1>&2
-} >/dev/null
+if [[ "${SKIP_INSTALL_LIBMONGOCRYPT:-}" != "1" ]]; then
+ {
+ echo "Installing libmongocrypt into ${mongoc_dir}..." 1>&2
+ "${mongoc_dir}/.evergreen/scripts/compile-libmongocrypt.sh" "${cmake_binary}" "${mongoc_idir}" "${mongoc_install_idir}"
+ echo "Installing libmongocrypt into ${mongoc_dir}... done." 1>&2
+ } >/dev/null
+fi
if [[ "${OSTYPE}" == darwin* ]]; then
# MacOS does not have nproc.
@@ -99,13 +101,16 @@ declare -a configure_flags=(
"-DCMAKE_INSTALL_PREFIX=${mongoc_install_idir}"
"-DCMAKE_PREFIX_PATH=${mongoc_idir}"
"-DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF"
- "-DENABLE_CLIENT_SIDE_ENCRYPTION=ON"
"-DENABLE_EXAMPLES=OFF"
"-DENABLE_SHM_COUNTERS=OFF"
"-DENABLE_STATIC=ON"
"-DENABLE_TESTS=OFF"
)
+if [[ "${SKIP_INSTALL_LIBMONGOCRYPT:-}" != "1" ]]; then
+ configure_flags+=("-DENABLE_CLIENT_SIDE_ENCRYPTION=ON")
+fi
+
declare -a compile_flags
case "${OSTYPE:?}" in
diff --git a/.evergreen/scripts/start-mongod.sh b/.evergreen/scripts/start-mongod.sh
new file mode 100755
index 0000000000..79a432471a
--- /dev/null
+++ b/.evergreen/scripts/start-mongod.sh
@@ -0,0 +1,93 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o pipefail
+
+: "${build_variant:?}"
+: "${mongodb_version:?}"
+
+: "${AUTH:-}"
+: "${ORCHESTRATION_FILE:-}"
+: "${REQUIRE_API_VERSION:-}"
+: "${TOPOLOGY:-}"
+
+if [ ! -d "drivers-evergreen-tools" ]; then
+ git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git
+fi
+cd drivers-evergreen-tools
+
+# The legacy shell is only present in server 5.0 builds and earlier,
+# but there is no 5.0 build for RHEL9, so we have to avoid it
+if [[ "${build_variant}" =~ "rhel9" ]]; then
+ export SKIP_LEGACY_SHELL=1
+fi
+
+DRIVERS_TOOLS="$(pwd)"
+if [ "Windows_NT" == "$OS" ]; then
+ DRIVERS_TOOLS="$(cygpath -m "${DRIVERS_TOOLS:?}")"
+fi
+export DRIVERS_TOOLS
+
+export MONGODB_BINARIES="${DRIVERS_TOOLS:?}/mongodb/bin"
+export MONGO_ORCHESTRATION_HOME="${DRIVERS_TOOLS:?}/.evergreen/orchestration"
+export MONGODB_VERSION="${mongodb_version:?}"
+export AUTH
+export TOPOLOGY
+export REQUIRE_API_VERSION
+export ORCHESTRATION_FILE
+
+export PATH="${MONGODB_BINARIES:?}:${PATH:-}"
+
+echo "{ \"releases\": { \"default\": \"${MONGODB_BINARIES:?}\" }}" >"${MONGO_ORCHESTRATION_HOME:?}/orchestration.config"
+./.evergreen/run-orchestration.sh
+
+# Ensure server on port 27017 is the primary server.
+if [[ "${TOPOLOGY:-}" == replica_set ]]; then
+ # Replset members should be on the following ports.
+ declare hosts="localhost:27017,localhost:27018,localhost:27019"
+
+ # Authentication may be required.
+ declare creds
+ if [[ -n "${AUTH:-}" ]]; then
+ creds="bob:pwd123@"
+ else
+ creds=""
+ fi
+
+ declare uri
+ printf -v uri "mongodb://%s%s" "${creds:-}" "${hosts:?}"
+
+ # Raise the priority of the member on port 27017. Others should have priority 1.
+ declare script
+ printf -v script "%s\n%s\n%s\n" \
+ "let c = rs.conf()" \
+ "c.members.find((m) => m.host.includes('27017')).priority = 10" \
+ "rs.reconfig(c)"
+
+ mongosh --quiet "${uri:?}" --eval "${script:?}"
+
+ # Wait up to a minute for member on port 27017 to become primary.
+ wait_for_primary() {
+ for _ in $(seq 60); do
+ if mongosh --quiet "${uri:?}" --eval "quit(rs.hello().primary.includes('27017') ? 0 : 1)"; then
+ return 0
+ else
+ sleep 1
+ fi
+ done
+ echo "Could not set replset member on port 27017 as primary"
+ return 1
+ }
+
+ echo "Waiting for replset member 27017 to become primary..."
+ wait_for_primary
+ echo "Waiting for replset member 27017 to become primary... done."
+fi
+
+# Copy mongocryptd up so other functions can find it later, since we can't share PATHs
+if [ -f "${MONGODB_BINARIES:?}/mongocryptd" ]; then
+ cp "${MONGODB_BINARIES:?}/mongocryptd" ../mongocryptd
+fi
+
+cd ../
+pwd
diff --git a/.evergreen/scripts/test-mongohouse.sh b/.evergreen/scripts/test-mongohouse.sh
new file mode 100755
index 0000000000..b10e0ac6bb
--- /dev/null
+++ b/.evergreen/scripts/test-mongohouse.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o pipefail
+
+echo "Waiting for mongohouse to start..."
+wait_for_mongohouse() {
+ for _ in $(seq 300); do
+ # Exit code 7: "Failed to connect to host".
+ if
+ curl -s -m 1 "localhost:${1:?}"
+ (("$?" != 7))
+ then
+ return 0
+ else
+ sleep 1
+ fi
+ done
+ echo "Could not detect mongohouse on port ${1:?}" 1>&2
+ return 1
+}
+wait_for_mongohouse 27017 || exit
+echo "Waiting for mongohouse to start... done."
+pgrep mongohouse
+
+cd build
+export PREFIX
+PREFIX="$(pwd)/../../mongoc"
+
+# Use LD_LIBRARY_PATH to inform the tests where to find dependencies on Linux.
+# This task only runs on Linux.
+if [ -n "${lib_dir:-}" ]; then
+ export LD_LIBRARY_PATH=".:${PREFIX:?}/${lib_dir:?}/"
+else
+ export LD_LIBRARY_PATH=".:${PREFIX:?}/lib/"
+fi
+
+export MONGOHOUSE_TESTS_PATH
+MONGOHOUSE_TESTS_PATH="$(pwd)/../data/mongohouse"
+
+export RUN_MONGOHOUSE_TESTS=ON
+
+ulimit -c unlimited || true
+
+./src/mongocxx/test/test_mongohouse_specs
diff --git a/.evergreen/test.sh b/.evergreen/scripts/test.sh
similarity index 99%
rename from .evergreen/test.sh
rename to .evergreen/scripts/test.sh
index 54d86a2f98..25bd4ed214 100755
--- a/.evergreen/test.sh
+++ b/.evergreen/scripts/test.sh
@@ -357,7 +357,7 @@ fi
# is true.
if [[ -z "${MONGODB_API_VERSION:-}" ]]; then
echo "Building example projects..."
- .evergreen/build_example_projects.sh
+ .evergreen/scripts/build-example-projects.sh
echo "Building example projects... done."
fi
unset MONGODB_API_VERSION
diff --git a/.evergreen/uninstall_check.sh b/.evergreen/scripts/uninstall_check.sh
similarity index 51%
rename from .evergreen/uninstall_check.sh
rename to .evergreen/scripts/uninstall_check.sh
index 26b7848ebe..56d33ceb09 100755
--- a/.evergreen/uninstall_check.sh
+++ b/.evergreen/scripts/uninstall_check.sh
@@ -1,87 +1,87 @@
#!/usr/bin/env bash
-set -o errexit # Exit the script with error if any of the commands fail
+set -o errexit # Exit the script with error if any of the commands fail
-BUILD_DIR=$(pwd)/build
-INSTALL_DIR=$BUILD_DIR/install
+BUILD_DIR="$(pwd)/build"
+INSTALL_DIR="$BUILD_DIR/install"
-touch $INSTALL_DIR/lib/canary.txt
+touch "$INSTALL_DIR/lib/canary.txt"
-ls -l $INSTALL_DIR/share/mongo-cxx-driver
+ls -l "$INSTALL_DIR/share/mongo-cxx-driver"
-. .evergreen/find_cmake.sh
+. .evergreen/scripts/find-cmake-old.sh
-$CMAKE --build $BUILD_DIR --target uninstall
+"$CMAKE" --build "$BUILD_DIR" --target uninstall
-ls -lR $INSTALL_DIR
+ls -lR "$INSTALL_DIR"
-if test -f $INSTALL_DIR/lib/pkgconfig/libbsoncxx.pc; then
+if test -f "$INSTALL_DIR/lib/pkgconfig/libbsoncxx.pc"; then
echo "libbsoncxx.pc found!"
exit 1
else
echo "libbsoncxx.pc check ok"
fi
-if test ! -f $INSTALL_DIR/lib/canary.txt; then
+if test ! -f "$INSTALL_DIR/lib/canary.txt"; then
echo "canary.txt not found!"
exit 1
else
echo "canary.txt check ok"
fi
-if test ! -d $INSTALL_DIR/lib; then
+if test ! -d "$INSTALL_DIR/lib"; then
echo "$INSTALL_DIR/lib not found!"
exit 1
else
echo "$INSTALL_DIR/lib check ok"
fi
-if test -f $INSTALL_DIR/lib/pkgconfig/libmongocxx.pc; then
+if test -f "$INSTALL_DIR/lib/pkgconfig/libmongocxx.pc"; then
echo "libmongocxx.pc found!"
exit 1
else
echo "libmongocxx.pc check ok"
fi
-if test -f $INSTALL_DIR/include/bsoncxx/v_noabi/bsoncxx/json.hpp; then
+if test -f "$INSTALL_DIR/include/bsoncxx/v_noabi/bsoncxx/json.hpp"; then
echo "bsoncxx/json.hpp found!"
exit 1
else
echo "bsoncxx/json.hpp check ok"
fi
-if test -f $INSTALL_DIR/include/bsoncxx/v_noabi/bsoncxx/types.hpp; then
+if test -f "$INSTALL_DIR/include/bsoncxx/v_noabi/bsoncxx/types.hpp"; then
echo "bsoncxx/types.hpp found!"
exit 1
else
echo "bsoncxx/types.hpp check ok"
fi
-if test -d $INSTALL_DIR/include/bsoncxx; then
+if test -d "$INSTALL_DIR/include/bsoncxx"; then
echo "$INSTALL_DIR/include/bsoncxx found!"
exit 1
else
echo "$INSTALL_DIR/include/bsoncxx check ok"
fi
-if test -f $INSTALL_DIR/include/mongocxx/v_noabi/mongocxx/hint.hpp; then
+if test -f "$INSTALL_DIR/include/mongocxx/v_noabi/mongocxx/hint.hpp"; then
echo "mongocxx/hint.hpp found!"
exit 1
else
echo "mongocxx/hint.hpp check ok"
fi
-if test -f $INSTALL_DIR/include/mongocxx/v_noabi/mongocxx/logger.hpp; then
+if test -f "$INSTALL_DIR/include/mongocxx/v_noabi/mongocxx/logger.hpp"; then
echo "mongocxx/logger.hpp found!"
exit 1
else
echo "mongocxx/logger.hpp check ok"
fi
-if test -d $INSTALL_DIR/include/mongocxx; then
+if test -d "$INSTALL_DIR/include/mongocxx"; then
echo "$INSTALL_DIR/include/mongocxx found!"
exit 1
else
echo "$INSTALL_DIR/include/mongocxx check ok"
fi
-if test -f $INSTALL_DIR/share/mongo-cxx-driver/uninstall.sh; then
+if test -f "$INSTALL_DIR/share/mongo-cxx-driver/uninstall.sh"; then
echo "uninstall.sh found!"
exit 1
else
echo "uninstall.sh check ok"
fi
-if test -d $INSTALL_DIR/share/mongo-cxx-driver; then
+if test -d "$INSTALL_DIR/share/mongo-cxx-driver"; then
echo "$INSTALL_DIR/share/mongo-cxx-driver found!"
exit 1
else
diff --git a/.evergreen/uninstall_check_windows.cmd b/.evergreen/scripts/uninstall_check_windows.cmd
old mode 100644
new mode 100755
similarity index 100%
rename from .evergreen/uninstall_check_windows.cmd
rename to .evergreen/scripts/uninstall_check_windows.cmd
diff --git a/.evergreen/upload-code-coverage.sh b/.evergreen/scripts/upload-code-coverage.sh
similarity index 100%
rename from .evergreen/upload-code-coverage.sh
rename to .evergreen/scripts/upload-code-coverage.sh
diff --git a/.gitattributes b/.gitattributes
index dae507c7ae..1a3a550634 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,6 +1,5 @@
-.evergreen/build_example_projects.sh eol=lf
-.evergreen/compile.sh eol=lf
-.evergreen/install.sh eol=lf
+.evergreen/scripts/build-example-projects.sh eol=lf
+.evergreen/scripts/compile.sh eol=lf
examples/projects/bsoncxx/cmake/shared/build.sh eol=lf
examples/projects/bsoncxx/cmake/static/build.sh eol=lf
examples/projects/bsoncxx/pkg-config/shared/build.sh eol=lf
diff --git a/.mci.yml b/.mci.yml
index 44b0dbd00a..50a5cfe8f1 100644
--- a/.mci.yml
+++ b/.mci.yml
@@ -1,2288 +1,20 @@
-#######################################
-# CXX Driver Config for MCI #
-#######################################
-
exec_timeout_secs: 3600
-#######################################
-# Variables #
-#######################################
-variables:
-
- # If updating mongoc_version_minimum, also update:
- # - LIBBSON_REQUIRED_VERSION and LIBMONGOC_REQUIRED_VERSION in CMakeLists.txt
- # - the version of pkg:github/mongodb/mongo-c-driver in etc/purls.txt
- # - the default value of --c-driver-build-ref in etc/make_release.py
- # Only LIBMONGOC_DOWNLOAD_VERSION needs to be updated when pinning to an unreleased commit.
- mongoc_version_minimum: &mongoc_version_minimum "1.28.0"
-
- integration_matrix:
- integration_matrix_tasks_single: &integration_matrix_tasks_single
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- integration_matrix_tasks_replica: &integration_matrix_tasks_replica
- tasks:
- - name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- integration_matrix_tasks_sharded: &integration_matrix_tasks_sharded
- tasks:
- - name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- integration_matrix_auth_tasks_single: &integration_matrix_auth_tasks_single
- tasks:
- - name: compile_and_test_auth_with_shared_libs
- integration_matrix_versioned_api_tasks_single: &integration_matrix_versioned_api_tasks_single
- tasks:
- - name: test_versioned_api
- - name: test_versioned_api_accept_version_two
- # "Drivers MUST run all tests with mongocryptd on at least one platform for all tested server versions (4.2+)."
- integration_matrix_mongocryptd_tasks: &integration_matrix_mongocryptd_tasks
- tasks:
- - name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- - name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- integration_matrix_expansions_linux: &integration_matrix_expansions_linux
- build_type: "Debug"
- ENABLE_CODE_COVERAGE: ON
- integration_matrix_expansions_windows_vs2017: &integration_matrix_expansions_windows_vs2017
- build_type: "Debug" # Same for Windows and Linux
- generator: Visual Studio 15 2017
- platform: x64
- example_projects_cxx_standard: 17
- integration_matrix_expansions_windows_vs2019: &integration_matrix_expansions_windows_vs2019
- build_type: "Debug" # Same for Windows and Linux
- generator: Visual Studio 16 2019
- platform: x64
- example_projects_cxx_standard: 17
-
-#######################################
-# Functions #
-#######################################
-
-functions:
- "abi-compliance-check":
- - command: subprocess.exec
- type: setup
- params:
- binary: bash
- args: [-c, mongo-cxx-driver/.evergreen/abi-compliance-check-setup.sh]
- - command: subprocess.exec
- type: test
- params:
- binary: bash
- args: [-c, mongo-cxx-driver/.evergreen/abi-compliance-check-test.sh]
- - command: s3.put
- type: system
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- bucket: mciuploads
- content_type: text/html
- display_name: "ABI Compliance Check (Stable): "
- local_files_include_filter: cxx-abi/compat_reports/**/compat_report.html
- permissions: public-read
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/abi/
- - command: s3.put
- type: system
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- bucket: mciuploads
- content_type: text/plain
- display_name: "ABI Compliance Check (Stable): "
- local_files_include_filter: cxx-abi/logs/**/log.txt
- permissions: public-read
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/abi/
- - command: s3.put
- type: system
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- bucket: mciuploads
- content_type: text/html
- display_name: "ABI Compliance Check (Unstable): "
- local_files_include_filter: cxx-noabi/compat_reports/**/compat_report.html
- permissions: public-read
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/noabi/
- - command: s3.put
- type: system
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- bucket: mciuploads
- content_type: text/plain
- display_name: "ABI Compliance Check (Unstable): "
- local_files_include_filter: cxx-noabi/logs/**/log.txt
- permissions: public-read
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abi-compliance-check/noabi/
-
- "abidiff":
- - command: subprocess.exec
- type: setup
- params:
- binary: bash
- args: [-c, mongo-cxx-driver/.evergreen/abidiff-setup.sh]
- - command: subprocess.exec
- type: test
- params:
- binary: bash
- args: [-c, mongo-cxx-driver/.evergreen/abidiff-test.sh]
- - command: s3.put
- type: system
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- bucket: mciuploads
- content_type: text/plain
- display_name: "abidiff (Stable): "
- local_files_include_filter: cxx-abi/*.txt
- permissions: public-read
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abidiff/abi/
- - command: s3.put
- type: system
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- bucket: mciuploads
- content_type: text/plain
- display_name: "abidiff (Unstable): "
- local_files_include_filter: cxx-noabi/*.txt
- permissions: public-read
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/abidiff/noabi/
-
- "abi-prohibited-symbols":
- - command: subprocess.exec
- type: test
- params:
- binary: bash
- args: [-c, mongo-cxx-driver/.evergreen/abi-prohibited-symbols-test.sh]
-
- "setup":
- - command: shell.exec
- params:
- shell: bash
- script: |
- set -o errexit
- set -o pipefail
- rm -rf "mongo-cxx-driver"
- rm -fr "mongo-c-driver"
- rm -fr mongod
- rm -fr drivers-evergreen-tools
- - command: git.get_project
- params:
- directory: "mongo-cxx-driver"
- - command: shell.exec
- params:
- shell: bash
- working_dir: "."
- script: |
- set -o errexit
- set -o pipefail
- cc --version || true
- c++ --version || true
- gcc --version || true
- g++ --version || true
- clang --version || true
- cmake --version || true
- openssl version || true
-
- "build_mongohouse":
- command: shell.exec
- params:
- shell: bash
- script: |
- if [ ! -d "drivers-evergreen-tools" ]; then
- git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git
- fi
- cd drivers-evergreen-tools
- export DRIVERS_TOOLS=$(pwd)
-
- .evergreen/atlas_data_lake/pull-mongohouse-image.sh
-
- "run_mongohouse":
- command: shell.exec
- params:
- shell: bash
- script: |
- cd drivers-evergreen-tools
- export DRIVERS_TOOLS=$(pwd)
-
- .evergreen/atlas_data_lake/run-mongohouse-image.sh
-
- "test_mongohouse":
- command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: |
- echo "Waiting for mongohouse to start..."
- wait_for_mongohouse() {
- for _ in $(seq 300); do
- # Exit code 7: "Failed to connect to host".
- if curl -s -m 1 localhost:$1; (("$?" != 7)); then
- return 0
- else
- sleep 1
- fi
- done
- echo "Could not detect mongohouse on port $1" 1>&2
- return 1
- }
- wait_for_mongohouse 27017 || exit
- echo "Waiting for mongohouse to start... done."
- ps aux | grep mongohouse
-
- cd build
- export PREFIX=$(pwd)/../../mongoc
-
- # Use LD_LIBRARY_PATH to inform the tests where to find dependencies on Linux.
- # This task only runs on Linux.
- if [ -n "${lib_dir}" ]; then
- export LD_LIBRARY_PATH=.:$PREFIX/${lib_dir}/
- else
- export LD_LIBRARY_PATH=.:$PREFIX/lib/
- fi
-
- export MONGOHOUSE_TESTS_PATH="$(pwd)/../data/mongohouse"
- export RUN_MONGOHOUSE_TESTS=ON
-
- ulimit -c unlimited || true
-
- ./src/mongocxx/test/test_mongohouse_specs
-
- "start_mongod":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "."
- script: |
- set -o errexit
- set -o pipefail
- if [ ! -d "drivers-evergreen-tools" ]; then
- git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git
- fi
- cd drivers-evergreen-tools
- # The legacy shell is only present in server 5.0 builds and earlier,
- # but there is no 5.0 build for RHEL9, so we have to avoid it
- if [[ "${build_variant}" =~ "rhel9" ]]; then
- export SKIP_LEGACY_SHELL=1
- fi
- export DRIVERS_TOOLS=$(pwd)
- if [ "Windows_NT" == "$OS" ]; then
- export DRIVERS_TOOLS=$(cygpath -m $DRIVERS_TOOLS)
- fi
- export MONGODB_BINARIES=$DRIVERS_TOOLS/mongodb/bin
- export MONGO_ORCHESTRATION_HOME=$DRIVERS_TOOLS/.evergreen/orchestration
- export MONGODB_VERSION=${mongodb_version}
- export AUTH=${AUTH}
- export TOPOLOGY=${TOPOLOGY|server}
- export REQUIRE_API_VERSION=${REQUIRE_API_VERSION}
- export ORCHESTRATION_FILE=${ORCHESTRATION_FILE}
- export PATH="$MONGODB_BINARIES:$PATH"
-
- echo "{ \"releases\": { \"default\": \"$MONGODB_BINARIES\" }}" > $MONGO_ORCHESTRATION_HOME/orchestration.config
- ./.evergreen/run-orchestration.sh
-
- # Ensure server on port 27017 is the primary server.
- if [[ "$TOPOLOGY" == replica_set ]]; then
- # Replset members should be on the following ports.
- declare hosts="localhost:27017,localhost:27018,localhost:27019"
-
- # Authentication may be required.
- declare creds
- if [[ -n "$AUTH" ]]; then
- creds="bob:pwd123@"
- else
- creds=""
- fi
-
- declare uri
- printf -v uri "mongodb://%s%s" "$creds" "$hosts"
-
- # Raise the priority of the member on port 27017. Others should have priority 1.
- declare script
- printf -v script "%s\n%s\n%s\n" \
- "let c = rs.conf()" \
- "c.members.find((m) => m.host.includes('27017')).priority = 10" \
- "rs.reconfig(c)"
-
- mongosh --quiet "$uri" --eval "$script"
-
- # Wait up to a minute for member on port 27017 to become primary.
- wait_for_primary() {
- for _ in $(seq 60); do
- if mongosh --quiet "$uri" --eval "quit(rs.hello().primary.includes('27017') ? 0 : 1)"; then
- return 0
- else
- sleep 1
- fi
- done
- echo "Could not set replset member on port 27017 as primary"
- return 1
- }
- echo "Waiting for replset member 27017 to become primary..."
- wait_for_primary
- echo "Waiting for replset member 27017 to become primary... done."
- fi
-
- # Copy mongocryptd up so other functions can find it later, since we can't share PATHs
- if [ -f $MONGODB_BINARIES/mongocryptd ]; then
- cp $MONGODB_BINARIES/mongocryptd ../mongocryptd
- fi
-
- cd ../
- pwd
- - command: expansions.update
- params:
- type: setup
- file: drivers-evergreen-tools/mo-expansion.yml
-
-
- "stop_mongod":
- command: subprocess.exec
- params:
- binary: bash
- args:
- - -c
- - |
- set -o errexit
- set -o pipefail
- if cd drivers-evergreen-tools/.evergreen/orchestration 2>/dev/null; then
- . ../venv-utils.sh
- if venvactivate venv; then
- mongo-orchestration stop
- fi
- fi
-
- "install_c_driver":
- - command: expansions.update
- type: setup
- params:
- updates:
- - key: mongoc_version_minimum
- value: *mongoc_version_minimum
- - command: shell.exec
- type: setup
- params:
- shell: bash
- add_expansions_to_env: true
- script: mongo-cxx-driver/.evergreen/install_c_driver.sh
-
- # fetch_c_driver_source may be used to fetch the C driver source without installing the C driver.
- # This can be used when only CI scripts are needed.
- "fetch_c_driver_source":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "."
- script: |
- set -o errexit
- set -o pipefail
- git clone --depth 1 https://github.com/mongodb/mongo-c-driver mongoc
-
- "lint":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: |
- set -o errexit
- set -o pipefail
- python etc/clang_format.py lint
-
- "clang-tidy":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- include_expansions_in_env:
- - distro_id
- env:
- CC: ${cc_compiler}
- CXX: ${cxx_compiler}
- script: ./etc/run-clang-tidy.sh
-
- "clone_drivers-evergreen-tools":
- - command: shell.exec
- params:
- shell: bash
- script: |-
- set -o errexit
- if [ ! -d "drivers-evergreen-tools" ]; then
- git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git --depth=1
- fi
- echo "DRIVERS_TOOLS: $(pwd)/drivers-evergreen-tools" > det-expansion.yml
- # Set DRIVERS_TOOLS expansion.
- - command: expansions.update
- params:
- file: det-expansion.yml
- "run_kms_servers":
- - command: shell.exec
- params:
- shell: bash
- script: |-
- set -o errexit
- echo "Preparing CSFLE venv environment..."
- if [[ "${distro_id}" =~ windows-64-vs2015-* ]]; then
- # Python: ImportError: DLL load failed while importing _rust: The specified procedure could not be found.
- echo "Preparing CSFLE venv environment... skipped."
- exit 0
- fi
- cd ./drivers-evergreen-tools/.evergreen/csfle
- # This function ensures future invocations of activate-kmstlsvenv.sh conducted in
- # parallel do not race to setup a venv environment; it has already been prepared.
- # This primarily addresses the situation where the "test" and "run_kms_servers"
- # functions invoke 'activate-kmstlsvenv.sh' simultaneously.
- . ./activate-kmstlsvenv.sh && deactivate
- echo "Preparing CSFLE venv environment... done."
- - command: shell.exec
- params:
- background: true
- shell: bash
- script: |-
- set -o errexit
- echo "Starting mock KMS servers..."
- if [[ "${distro_id}" =~ windows-64-vs2015-* ]]; then
- # Python: ImportError: DLL load failed while importing _rust: The specified procedure could not be found.
- echo "Starting mock KMS servers... skipped."
- exit 0
- fi
- cd ./drivers-evergreen-tools/.evergreen/csfle
- . ./activate-kmstlsvenv.sh
- python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/server.pem --port 8999 &
- python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/expired.pem --port 9000 &
- python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/wrong-host.pem --port 9001 &
- python -u kms_http_server.py --ca_file ../x509gen/ca.pem --cert_file ../x509gen/server.pem --port 9002 --require_client_cert &
- python -u kms_kmip_server.py &
- echo "Starting mock KMS servers... done."
-
- "compile":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- include_expansions_in_env:
- - branch_name
- - build_type
- - BSONCXX_POLYFILL
- - COMPILE_MACRO_GUARD_TESTS
- - distro_id
- - ENABLE_CODE_COVERAGE
- - ENABLE_TESTS
- - generator
- - platform
- - REQUIRED_CXX_STANDARD
- - RUN_DISTCHECK
- - USE_SANITIZER_ASAN
- - USE_SANITIZER_UBSAN
- - USE_STATIC_LIBS
- env:
- CC: ${cc_compiler}
- CXX: ${cxx_compiler}
- script: .evergreen/compile.sh
-
- "compile_benchmarks":
- - command: shell.exec
- type: setup
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: |
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(pwd)/../mongoc" -DCMAKE_CXX_STANDARD=20
- cmake --build build --target microbenchmarks --parallel 64
-
- "test":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- include_expansions_in_env:
- - build_type
- - CRYPT_SHARED_LIB_PATH # Set by run-orchestration.sh in "start_mongod".
- - cse_aws_access_key_id
- - cse_aws_secret_access_key
- - cse_azure_client_id
- - cse_azure_client_secret
- - cse_azure_tenant_id
- - cse_gcp_email
- - cse_gcp_privatekey
- - disable_slow_tests
- - distro_id
- - example_projects_cc
- - example_projects_cxx
- - example_projects_cxx_standard
- - example_projects_cxxflags
- - example_projects_ldflags
- - generator
- - lib_dir
- - MONGOCXX_TEST_TOPOLOGY
- - MONGODB_API_VERSION
- - platform
- - TEST_WITH_ASAN
- - TEST_WITH_UBSAN
- - TEST_WITH_VALGRIND
- - use_mongocryptd
- - USE_STATIC_LIBS
- script: .evergreen/test.sh
-
- "test auth":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: |
-
- export MONGOC_INSTALL_PREFIX=$(pwd)/../mongoc
- export MONGOCXX_INSTALL_PREFIX=$(pwd)/build/install
- export LIB_DIR=${lib_dir}
- export BUILD_TYPE=${build_type}
- export BUILD_DIR=$(pwd)/build
- export URI="mongodb://bob:pwd123@localhost"
- ./.evergreen/connect.sh
-
- "test atlas connectivity":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- silent: true
- script: |
-
- export MONGOC_INSTALL_PREFIX=$(pwd)/../mongoc
- export MONGOCXX_INSTALL_PREFIX=$(pwd)/build/install
- export LIB_DIR=${lib_dir}
- export BUILD_TYPE=${build_type}
- export BUILD_DIR=$(pwd)/build
-
- # The atlas_serverless_uri expansion is set in the Evergreen project settings.
- export URI="${atlas_serverless_uri}"
-
- ./.evergreen/connect.sh
-
- "backtrace":
- - command: shell.exec
- params:
- working_dir: "mongo-cxx-driver"
- script: |
- ./etc/debug-core-evergreen.sh
- "upload working dir":
- - command: archive.targz_pack
- params:
- target: "working-dir.tar.gz"
- source_dir: "mongo-cxx-driver"
- include:
- - "./**"
- - command: s3.put
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- local_file: working-dir.tar.gz
- remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/artifacts/${task_id}-${execution}-working-dir.tar.gz
- bucket: mciuploads
- permissions: public-read
- content_type: ${content_type|application/x-gzip}
- display_name: "working-dir.tar.gz"
+command_type: system
+stepback: true
+pre_error_fails_task: true
+post_error_fails_task: false
- "upload mongo orchestration artifacts":
- - command: subprocess.exec
- params:
- binary: bash
- args:
- - -c
- - |
- set -o errexit
- for log in $(find . -name '*.log'); do
- tar rf mongodb-logs.tar "$log"
- done
- if [[ -f mongodb-logs.tar ]]; then
- gzip mongodb-logs.tar
- fi
- - command: s3.put
- params:
- optional: true
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- local_file: mongodb-logs.tar.gz
- remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/logs/${task_id}-${execution}-mongodb-logs.tar.gz
- bucket: mciuploads
- permissions: public-read
- content_type: ${content_type|application/x-gzip}
- display_name: "mongodb-logs.tar.gz"
-
- "upload code coverage":
- - command: subprocess.exec
- params:
- binary: bash
- working_dir: "mongo-cxx-driver"
- args: [-c, .evergreen/upload-code-coverage.sh]
- include_expansions_in_env: [codecov_token]
-
- "docker-image-build":
- - command: shell.exec
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: |
- set -o errexit
- set -o pipefail
- set -x
- echo "Building Alpine Docker image"
- make -C extras/docker/alpine3.19 nocachebuild test
- echo "Building Debian Docker image"
- make -C extras/docker/bookworm nocachebuild test
- echo "Building Red Hat UBI Docker image"
- make -C extras/docker/redhat-ubi-9.4 nocachebuild test
- echo "Building Ubuntu Docker image"
- make -C extras/docker/noble nocachebuild test
-
- "run benchmarks":
- - command: shell.exec
- type: setup
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: ./etc/microbenchmark-test-data.sh
- - command: shell.exec
- type: test
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: ./build/benchmark/microbenchmarks all
- - command: perf.send
- params:
- name: perf
- file: mongo-cxx-driver/results.json
-
- "run scan build":
- - command: subprocess.exec
- type: test
- params:
- binary: bash
- working_dir: "mongo-cxx-driver"
- add_expansions_to_env: true
- redirect_standard_error_to_output: true
- args: [-c, .evergreen/compile-scan-build.sh]
-
- "upload scan artifacts":
- - command: subprocess.exec
- type: test
- params:
- working_dir: "mongo-cxx-driver"
- binary: bash
- args:
- - -c
- - |
- set -o errexit
- if find scan -name \*.html | grep -q html; then
- (cd scan && find . -name index.html -exec echo "{}" \;) >> scan.html
- else
- echo "No issues found" > scan.html
- fi
- - command: subprocess.exec
- params:
- silent: true
- working_dir: mongo-cxx-driver
- binary: bash
- env:
- AWS_ACCESS_KEY_ID: ${aws_key}
- AWS_SECRET_ACCESS_KEY: ${aws_secret}
- args:
- - -c
- - aws s3 cp scan s3://mciuploads/mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/scan/ --recursive --acl public-read --region us-east-1
- - command: s3.put
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/scan/index.html
- bucket: mciuploads
- permissions: public-read
- local_file: mongo-cxx-driver/scan.html
- content_type: text/html
- display_name: Scan Build Report
-
- "check augmented sbom":
- - command: subprocess.exec
- type: test
- params:
- working_dir: "mongo-cxx-driver"
- binary: bash
- include_expansions_in_env:
- - ARTIFACTORY_USER
- - ARTIFACTORY_PASSWORD
- - SILK_CLIENT_ID
- - SILK_CLIENT_SECRET
- args: [-c, .evergreen/check-augmented-sbom.sh]
-
- "upload augmented sbom":
- - command: s3.put
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/silk/augmented.sbom.json
- bucket: mciuploads
- permissions: public-read
- local_file: mongo-cxx-driver/etc/augmented.sbom.json.new
- content_type: application/json
- display_name: Augmented SBOM
- - command: s3.put
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- remote_file: mongo-cxx-driver/${build_variant}/${revision}/${version_id}/${build_id}/silk/augmented.sbom.json.diff
- bucket: mciuploads
- permissions: public-read
- local_file: mongo-cxx-driver/diff.txt
- content_type: application/json
- display_name: Augmented SBOM (Diff)
-
-#######################################
-# Post Task #
-#######################################
+include:
+ - filename: .evergreen/generated_configs/functions.yml
+ - filename: .evergreen/generated_configs/tasks.yml
+ - filename: .evergreen/generated_configs/task_groups.yml
+ - filename: .evergreen/generated_configs/variants.yml
post:
- - func: "stop_mongod"
- - func: "backtrace"
- # Workaround for CXX-2040
- # - func: "upload working dir"
- - func: "upload mongo orchestration artifacts"
- - func: "upload code coverage"
-
-#######################################
-# Tasks #
-#######################################
-
-tasks:
- - name: abi-compliance-check
- tags: ["abi-stability", "abi-compliance-check"]
- run_on: "ubuntu2204-large"
- commands:
- - func: "abi-compliance-check"
- - name: abidiff
- tags: ["abi-stability", "abidiff"]
- run_on: "ubuntu2204-large"
- commands:
- - func: "abidiff"
- - name: abi-prohibited-symbols
- tags: ["abi-stability", "abi-prohibited-symbols"]
- run_on: "ubuntu2204-large"
- commands:
- - func: "abi-prohibited-symbols"
-
- - name: lint
- run_on: ubuntu1804-large
- commands:
- - func: "setup"
- - func: "lint"
-
- - name: clang-tidy
- commands:
- - func: "setup"
- - func: "install_c_driver"
- - func: "clang-tidy"
-
- - name: compile_and_test_with_shared_libs
- commands:
- - func: "setup"
- - func: "start_mongod"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- RUN_DISTCHECK: 1
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- # Call "install_c_driver" before "test" to build static C driver libraries. Example projects require static C driver libraries.
- - func: "install_c_driver"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: single
-
- - name: compile_and_test_with_shared_libs_extra_alignment
- commands:
- - func: "setup"
- - func: "start_mongod"
- - func: "fetch_c_driver_source"
- vars:
- BSON_EXTRA_ALIGNMENT: 1
- - func: "compile"
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "install_c_driver"
- vars:
- BSON_EXTRA_ALIGNMENT: 1
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: single
-
- - name: compile_and_test_with_shared_libs_cxx20
- commands:
- - func: "setup"
- - func: "start_mongod"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- RUN_DISTCHECK: 1
- REQUIRED_CXX_STANDARD: 20
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "install_c_driver"
- - func: "test"
- vars:
- example_projects_cxx_standard: 20
- MONGOCXX_TEST_TOPOLOGY: single
- REQUIRED_CXX_STANDARD: 20
-
- - name: compile_and_test_with_shared_libs_extra_alignment_cxx20
- commands:
- - func: "setup"
- - func: "start_mongod"
- - func: "fetch_c_driver_source"
- vars:
- BSON_EXTRA_ALIGNMENT: 1
- - func: "compile"
- vars:
- REQUIRED_CXX_STANDARD: 20
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "install_c_driver"
- vars:
- BSON_EXTRA_ALIGNMENT: 1
- - func: "test"
- vars:
- example_projects_cxx_standard: 20
- MONGOCXX_TEST_TOPOLOGY: single
- REQUIRED_CXX_STANDARD: 20
-
- - name: compile_with_shared_libs
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "compile"
-
- - name: compile_without_tests
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- ENABLE_TESTS: OFF
-
- - name: compile_and_run_benchmarks
- commands:
- - func: "setup"
- - func: "start_mongod"
- - func: "fetch_c_driver_source"
- - func: "compile_benchmarks"
- - func: "run benchmarks"
-
- - name: compile_macro_guard_tests
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- COMPILE_MACRO_GUARD_TESTS: ON
-
- - name: compile_and_test_auth_with_shared_libs
- commands:
- - func: "setup"
- - func: "start_mongod"
- vars:
- AUTH: auth
- - func: "fetch_c_driver_source"
- - func: "compile"
- - func: "test auth"
- - func: "test atlas connectivity"
-
- - name: compile_and_test_with_static_libs
- commands:
- - func: "setup"
- - func: "start_mongod"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- USE_STATIC_LIBS: 1
- RUN_DISTCHECK: 1
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "install_c_driver"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: single
- USE_STATIC_LIBS: 1
-
- - name: compile_and_test_with_static_libs_extra_alignment
- commands:
- - func: "setup"
- - func: "start_mongod"
- - func: "fetch_c_driver_source"
- vars:
- BSON_EXTRA_ALIGNMENT: 1
- - func: "compile"
- vars:
- USE_STATIC_LIBS: 1
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "install_c_driver"
- vars:
- BSON_EXTRA_ALIGNMENT: 1
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: single
- USE_STATIC_LIBS: 1
-
- - name: compile_and_test_with_shared_libs_replica_set
- commands:
- - func: "setup"
- - func: "start_mongod"
- vars:
- TOPOLOGY: "replica_set"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- RUN_DISTCHECK: 1
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "install_c_driver"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: replica
-
- - name: compile_and_test_with_shared_libs_sharded_cluster
- commands:
- - func: "setup"
- - func: "start_mongod"
- vars:
- TOPOLOGY: "sharded_cluster"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- RUN_DISTCHECK: 1
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "install_c_driver"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: sharded
-
- # Auto downloading the C driver in the C++ build does not currently include
- # support for libmongocrypt, therefore it is not configured with
- # -DENABLE_CLIENT_SIDE_ENCRYPTION=ON. For now, CSFLE tests will need to have
- # a manually configured C driver, hence the need to seperate this task.
- - name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- commands:
- - func: "setup"
- - func: "start_mongod"
- vars:
- TOPOLOGY: "replica_set"
- - func: "install_c_driver"
- - func: "compile"
- vars:
- RUN_DISTCHECK: 1
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: replica
-
- - name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- commands:
- - func: "setup"
- - func: "start_mongod"
- vars:
- TOPOLOGY: "sharded_cluster"
- - func: "install_c_driver"
- - func: "compile"
- vars:
- RUN_DISTCHECK: 1
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: sharded
-
- - name: uninstall_check
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- ENABLE_TESTS: OFF
- - command: shell.exec
- type: test
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: |-
- set -o errexit
- ./.evergreen/uninstall_check.sh
-
- - name: uninstall_check_windows
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "compile"
- vars:
- ENABLE_TESTS: OFF
- - command: shell.exec
- type: test
- params:
- shell: bash
- working_dir: "mongo-cxx-driver"
- script: |-
- set -o errexit
- cmd.exe /c .\\.evergreen\\uninstall_check_windows.cmd
-
- - name: build_example_with_add_subdirectory
- commands:
- - func: "setup"
- - func: "start_mongod"
- - command: shell.exec
- type: test
- params:
- working_dir: "mongo-cxx-driver"
- shell: bash
- script: |-
- set -o errexit
- cd examples/add_subdirectory
- [ -d mongo-c-driver ] || git clone --depth 1 https://github.com/mongodb/mongo-c-driver
- rsync -aq --exclude='examples/add_subdirectory' $(readlink -f ../..) .
- [ -d build ] || mkdir build
- . ./mongo-c-driver/.evergreen/scripts/find-cmake-latest.sh
- export cmake_binary
- cmake_binary="$(find_cmake_latest)"
- # Use ccache if available.
- . ./mongo-c-driver/.evergreen/scripts/find-ccache.sh
- find_ccache_and_export_vars "$(pwd)" || true
- command -v "$cmake_binary"
- "$cmake_binary" -S . -B build -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF
- "$cmake_binary" --build build
- ./build/hello_mongocxx
-
- - name: debian-package-build
- run_on: debian12-latest-small
- commands:
- - func: "setup"
- - command: shell.exec
- type: test
- params:
- working_dir: "mongo-cxx-driver"
- shell: bash
- script: |-
- set -o errexit
- export IS_PATCH="${is_patch}"
- .evergreen/debian_package_build.sh
- - command: s3.put
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- local_file: deb.tar.gz
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages.tar.gz
- bucket: mciuploads
- permissions: public-read
- content_type: ${content_type|application/x-gzip}
- display_name: "deb.tar.gz"
-
- - name: debian-package-build-mnmlstc
- run_on: debian12-latest-small
- commands:
- - func: "setup"
- - command: shell.exec
- type: test
- params:
- working_dir: "mongo-cxx-driver"
- shell: bash
- script: |-
- set -o errexit
- export IS_PATCH="${is_patch}"
- export DEB_BUILD_PROFILES="pkg.mongo-cxx-driver.mnmlstc"
- .evergreen/debian_package_build.sh
- - command: s3.put
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- local_file: deb.tar.gz
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages-mnmlstc.tar.gz
- bucket: mciuploads
- permissions: public-read
- content_type: ${content_type|application/x-gzip}
- display_name: "deb.tar.gz"
-
- - name: rpm-package-build
- run_on: rhel92-arm64-small
- commands:
- - func: "setup"
- - command: shell.exec
- type: test
- params:
- working_dir: "mongo-cxx-driver"
- shell: bash
- script: |-
- set -o errexit
- .evergreen/build_snapshot_rpm.sh
- - command: s3.put
- params:
- aws_key: ${aws_key}
- aws_secret: ${aws_secret}
- remote_file: mongo-cxx-driver/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/rpm-packages.tar.gz
- bucket: mciuploads
- permissions: public-read
- local_file: rpm.tar.gz
- content_type: ${content_type|application/x-gzip}
-
-
- - name: test_mongohouse
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "compile"
- - func: "build_mongohouse"
- - func: "run_mongohouse"
- - func: "test_mongohouse"
-
- - name: test_versioned_api
- commands:
- - func: "setup"
- - func: "start_mongod"
- vars:
- REQUIRE_API_VERSION: true
- # Authentication with versioned API should already be tested
- # in the C driver.
- AUTH: noauth
- - func: "fetch_c_driver_source"
- - func: "compile"
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: single
- MONGODB_API_VERSION: 1
-
- - name: test_versioned_api_accept_version_two
- commands:
- - func: "setup"
- - func: "start_mongod"
- vars:
- ORCHESTRATION_FILE: versioned-api-testing.json
- AUTH: noauth
- - func: "fetch_c_driver_source"
- - func: "compile"
- - func: "clone_drivers-evergreen-tools"
- - func: "run_kms_servers"
- - func: "test"
- vars:
- MONGOCXX_TEST_TOPOLOGY: single
-
- - name: docker_build_arm
- run_on:
- - ubuntu2204-arm64-small
- commands:
- - func: "setup"
- - func: "docker-image-build"
-
- - name: docker_build
- run_on:
- - ubuntu2204-small
- commands:
- - func: "setup"
- - func: "docker-image-build"
-
- - name: test_search_index_helpers
- commands:
- - func: "install_c_driver"
- - func: "compile"
- - command: shell.exec
- params:
- shell: bash
- working_dir: mongo-cxx-driver
- script: |
- export MONGODB_URI=${MONGODB_URI}
-
- if [ -n "${lib_dir}" ]; then
- export LD_LIBRARY_PATH=$(pwd)/../mongoc/${lib_dir}/
- else
- export LD_LIBRARY_PATH=$(pwd)/../mongoc/lib/
- fi
-
- ./build/src/mongocxx/test/test_driver "atlas search indexes prose tests"
-
- - name: scan-build-ubuntu2204-std11-mnmlstc
- run_on: ubuntu2204-large
- tags: [scan-build-matrix]
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "run scan build"
- vars:
- CXX_STANDARD: 11
- BSONCXX_POLYFILL: mnmlstc
- - func: "upload scan artifacts"
-
- - name: scan-build-ubuntu2204-std11-boost
- run_on: ubuntu2204-large
- tags: [scan-build-matrix]
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "run scan build"
- vars:
- CXX_STANDARD: 11
- BSONCXX_POLYFILL: boost
- - func: "upload scan artifacts"
-
- - name: scan-build-ubuntu2204-std11-impls
- run_on: ubuntu2204-large
- tags: [scan-build-matrix]
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "run scan build"
- vars:
- CXX_STANDARD: 11
- BSONCXX_POLYFILL: impls
- - func: "upload scan artifacts"
-
- - name: scan-build-ubuntu2204-std14-impls
- run_on: ubuntu2204-large
- tags: [scan-build-matrix]
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "run scan build"
- vars:
- CXX_STANDARD: 14
- BSONCXX_POLYFILL: impls
- - func: "upload scan artifacts"
-
- - name: scan-build-ubuntu2204-std17
- run_on: ubuntu2204-large
- tags: [scan-build-matrix]
- commands:
- - func: "setup"
- - func: "fetch_c_driver_source"
- - func: "run scan build"
- vars:
- CXX_STANDARD: 17
- BSONCXX_POLYFILL: std
- - func: "upload scan artifacts"
-
- - name: silk-check-augmented-sbom
- run_on: rhel8-latest-small
- tags: [silk]
- commands:
- - func: "setup"
- - func: "check augmented sbom"
- - func: "upload augmented sbom"
-
-task_groups:
- - name: tg-abi-stability
- max_hosts: -1
- setup_task_can_fail_task: true
- setup_task:
- - command: git.get_project
- params:
- directory: "mongo-cxx-driver"
- - func: install_c_driver
- - command: subprocess.exec
- params:
- binary: bash
- args: [-c, mongo-cxx-driver/.evergreen/abi-stability-setup.sh]
- include_expansions_in_env: [cxx_standard]
- tasks: [".abi-stability"]
- teardown_task_can_fail_task: true
- teardown_task:
- - command: subprocess.exec
- params:
- binary: bash
- args: [-c, rm -rf *]
-
- - name: test_atlas_task_group_search_indexes_7.0
- setup_group:
- - func: "setup"
- - func: "clone_drivers-evergreen-tools"
- - command: subprocess.exec
- params:
- working_dir: mongo-cxx-driver
- binary: bash
- add_expansions_to_env: true
- env:
- MONGODB_VERSION: '7.0'
- args: [-c, "${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh"]
- - command: expansions.update
- # Expected to set MONGODB_URI expansion.
- params:
- file: mongo-cxx-driver/atlas-expansion.yml
- teardown_group:
- - command: subprocess.exec
- params:
- working_dir: mongo-cxx-driver
- binary: bash
- add_expansions_to_env: true
- args: [-c, "${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh"]
- setup_group_can_fail_task: true
- setup_group_timeout_secs: 1800
- tasks:
- - test_search_index_helpers
-
- - name: test_atlas_task_group_search_indexes_8.0
- setup_group:
- - func: "setup"
- - func: "clone_drivers-evergreen-tools"
- - command: subprocess.exec
- params:
- working_dir: mongo-cxx-driver
- binary: bash
- add_expansions_to_env: true
- env:
- MONGODB_VERSION: '8.0'
- args: [-c, "${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh"]
- - command: expansions.update
- # Expected to set MONGODB_URI expansion.
- params:
- file: mongo-cxx-driver/atlas-expansion.yml
- teardown_group:
- - command: subprocess.exec
- params:
- working_dir: mongo-cxx-driver
- binary: bash
- add_expansions_to_env: true
- args: [-c, "${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh"]
- setup_group_can_fail_task: true
- setup_group_timeout_secs: 1800
- tasks:
- - test_search_index_helpers
-
-
-#######################################
-# Buildvariants #
-#######################################
-
-buildvariants:
- ##########################
- # ABI Stability Checks #
- ##########################
- - name: abi-stability-polyfill
- display_name: "ABI Stability Checks (polyfill)"
- expansions:
- cxx_standard: 11 # Use a polyfill library.
- tasks:
- - "tg-abi-stability"
- display_tasks:
- - name: "ABI Stability Checks (polyfill)"
- execution_tasks: [".abi-stability"]
-
- - name: abi-stability-stdlib
- display_name: "ABI Stability Checks (stdlib)"
- expansions:
- cxx_standard: 17 # Use the stdlib.
- tasks:
- - "tg-abi-stability"
- display_tasks:
- - name: "ABI Stability Checks (stdlib)"
- execution_tasks: [".abi-stability"]
-
- #######################################
- # Standard MongoDB Integration Tests #
- #######################################
- - name: integration-ubuntu2004-latest-single
- display_name: "Ubuntu 20.04 Debug (MongoDB Latest)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu2004-8.0-single
- display_name: "Ubuntu 20.04 Debug (MongoDB 8.0)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "8.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu2004-7.0-single
- display_name: "Ubuntu 20.04 Debug (MongoDB 7.0)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "7.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu1804-6.0-single
- display_name: "Ubuntu 18.04 Debug (MongoDB 6.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "6.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu1804-5.0-single
- display_name: "Ubuntu 18.04 Debug (MongoDB 5.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "5.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu1804-4.4-single
- display_name: "Ubuntu 18.04 Debug (MongoDB 4.4)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.4"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu1804-4.2-single
- display_name: "Ubuntu 18.04 Debug (MongoDB 4.2)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.2"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu1804-4.0-single
- display_name: "Ubuntu 18.04 Debug (MongoDB 4.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-latest-single
- display_name: "Windows (VS 2019) Debug (MongoDB Latest)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-8.0-single
- display_name: "Windows (VS 2019) Debug (MongoDB 8.0)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "8.0"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-7.0-single
- display_name: "Windows (VS 2019) Debug (MongoDB 7.0)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "7.0"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-6.0-single
- display_name: "Windows (VS 2019) Debug (MongoDB 6.0)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "6.0"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-5.0-single
- display_name: "Windows (VS 2019) Debug (MongoDB 5.0)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "5.0"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-4.4-single
- display_name: "Windows (VS 2019) Debug (MongoDB 4.4)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "4.4"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-4.2-single
- display_name: "Windows (VS 2019) Debug (MongoDB 4.2)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "4.2"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-vs2019-4.0-single
- display_name: "Windows (VS 2019) Debug (MongoDB 4.0)"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "4.0"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_tasks_single
-
- - name: integration-ubuntu2004-latest-replica
- display_name: "Ubuntu 20.04 Debug replica set (MongoDB Latest)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu2004-8.0-replica
- display_name: "Ubuntu 20.04 Debug replica set (MongoDB 8.0)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "8.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu2004-7.0-replica
- display_name: "Ubuntu 20.04 Debug replica set (MongoDB 7.0)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "7.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu1804-6.0-replica
- display_name: "Ubuntu 18.04 Debug replica set (MongoDB 6.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "6.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu1804-5.0-replica
- display_name: "Ubuntu 18.04 Debug replica set (MongoDB 5.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "5.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu1804-4.4-replica
- display_name: "Ubuntu 18.04 Debug replica set (MongoDB 4.4)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.4"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu1804-4.2-replica
- display_name: "Ubuntu 18.04 Debug replica set (MongoDB 4.2)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.2"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu1804-4.0-replica
- display_name: "Ubuntu 18.04 Debug replica set (MongoDB 4.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_replica
-
- - name: integration-ubuntu2004-latest-sharded
- display_name: "Ubuntu 20.04 Debug sharded cluster (MongoDB Latest)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-ubuntu2004-8.0-sharded
- display_name: "Ubuntu 20.04 Debug sharded cluster (MongoDB 8.0)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "8.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-ubuntu2004-7.0-sharded
- display_name: "Ubuntu 20.04 Debug sharded cluster (MongoDB 7.0)"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "7.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-ubuntu1804-6.0-sharded
- display_name: "Ubuntu 18.04 Debug sharded cluster (MongoDB 6.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "6.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-ubuntu1804-5.0-sharded
- display_name: "Ubuntu 18.04 Debug sharded cluster (MongoDB 5.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "5.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-ubuntu1804-4.4-sharded
- display_name: "Ubuntu 18.04 Debug sharded cluster (MongoDB 4.4)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.4"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-ubuntu1804-4.2-sharded
- display_name: "Ubuntu 18.04 Debug sharded cluster (MongoDB 4.2)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.2"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-ubuntu1804-4.0-sharded
- display_name: "Ubuntu 18.04 Debug sharded cluster (MongoDB 4.0)"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.0"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_tasks_sharded
-
- - name: integration-auth-ubuntu2004-latest-single
- display_name: "Ubuntu 20.04 Debug Latest Auth"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_auth_tasks_single
-
- - name: integration-auth-vs2017-latest-single
- display_name: "Windows (VS 2017) Debug Latest Auth"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_windows_vs2017
- <<: *integration_matrix_auth_tasks_single
-
- - name: integration-auth-vs2019-latest-single
- display_name: "Windows (VS 2019) Debug Latest Auth"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_auth_tasks_single
-
- - name: integration-versioned-api-ubuntu2004-latest-single
- display_name: "Ubuntu 20.04 Debug Latest Versioned API"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_versioned_api_tasks_single
-
- - name: integration-versioned-api-vs2019-latest-single
- display_name: "Windows (VS 2019) Debug Latest Versioned API"
- run_on: windows-vsCurrent-large
- expansions:
- mongodb_version: "latest"
- <<: *integration_matrix_expansions_windows_vs2019
- <<: *integration_matrix_versioned_api_tasks_single
-
- - name: integration-mongocryptd-ubuntu2004-latest
- display_name: "Ubuntu 20.04 Debug (MongoDB Latest) with mongocryptd"
- run_on: ubuntu2004-large
- expansions:
- mongodb_version: "latest"
- use_mongocryptd: true
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_mongocryptd_tasks
-
- - name: integration-mongocryptd-ubuntu1804-5.0
- display_name: "Ubuntu 18.04 Debug (MongoDB 5.0) with mongocryptd"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "5.0"
- use_mongocryptd: true
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_mongocryptd_tasks
-
- - name: integration-mongocryptd-ubuntu1804-4.4
- display_name: "Ubuntu 18.04 Debug (MongoDB 4.4) with mongocryptd"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.4"
- use_mongocryptd: true
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_mongocryptd_tasks
-
- - name: integration-mongocryptd-ubuntu1804-4.2
- display_name: "Ubuntu 18.04 Debug (MongoDB 4.2) with mongocryptd"
- run_on: ubuntu1804-large
- expansions:
- mongodb_version: "4.2"
- use_mongocryptd: true
- <<: *integration_matrix_expansions_linux
- <<: *integration_matrix_mongocryptd_tasks
-
- #######################################
- # Linux Buildvariants #
- #######################################
- - name: docker-builder
- display_name: "Docker builder"
- tasks:
- - name: docker_build
- - name: docker_build_arm
-
- - name: rhel9-release-latest
- display_name: "RHEL 9 Release (MongoDB Latest)"
- expansions:
- build_type: "Release"
- mongodb_version: "latest"
- lib_dir: "lib64"
- run_on:
- - rhel90-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_cxx20
- - name: compile_and_test_with_shared_libs_extra_alignment_cxx20
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- - name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- - name: build_example_with_add_subdirectory
-
- - name: benchmarks-rhel9
- display_name: "Benchmarks (RHEL 9.2)"
- expansions:
- mongodb_version: "v6.0-perf"
- run_on: rhel90-dbx-perf-large
- tasks:
- - name: compile_and_run_benchmarks
-
- - name: arm-rhel9-release-latest
- display_name: "arm64 RHEL 9 Release (MongoDB Latest)"
- expansions:
- build_type: "Release"
- mongodb_version: "latest"
- lib_dir: "lib64"
- run_on:
- - rhel90-arm64-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_cxx20
- - name: compile_and_test_with_shared_libs_extra_alignment_cxx20
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- - name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- - name: build_example_with_add_subdirectory
-
- - name: debian12-release-latest
- display_name: "Debian 12 Release (MongoDB Latest)"
- expansions:
- build_type: "Release"
- mongodb_version: "latest"
- run_on:
- - debian12-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_cxx20
- - name: compile_and_test_with_shared_libs_extra_alignment_cxx20
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- - name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- - name: build_example_with_add_subdirectory
- - name: uninstall_check
-
- - name: debian11-release-50
- display_name: "Debian 11 Release (MongoDB 5.0)"
- expansions:
- build_type: "Release"
- mongodb_version: "5.0"
- run_on:
- - debian11-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_cxx20
- - name: compile_and_test_with_shared_libs_extra_alignment_cxx20
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set
- - name: compile_and_test_with_shared_libs_sharded_cluster
- - name: build_example_with_add_subdirectory
- - name: uninstall_check
-
- - name: debian10-release-50
- display_name: "Debian 10 Release (MongoDB 5.0)"
- expansions:
- build_type: "Release"
- mongodb_version: "5.0"
- run_on:
- - debian10-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set
- - name: compile_and_test_with_shared_libs_sharded_cluster
- - name: build_example_with_add_subdirectory
- - name: uninstall_check
-
- - name: ubuntu2004-release-latest
- display_name: "Ubuntu 20.04 Release (MongoDB Latest)"
- expansions:
- build_type: "Release"
- mongodb_version: "latest"
- run_on:
- - ubuntu2004-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- - name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- - name: build_example_with_add_subdirectory
- - name: uninstall_check
-
- - name: ubuntu2004-release-50
- display_name: "Ubuntu 20.04 Release (MongoDB 5.0)"
- expansions:
- build_type: "Release"
- mongodb_version: "5.0"
- run_on:
- - ubuntu2004-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set
- - name: compile_and_test_with_shared_libs_sharded_cluster
- - name: build_example_with_add_subdirectory
- - name: uninstall_check
-
- - name: ubuntu1804-release-50
- display_name: "Ubuntu 18.04 Release (MongoDB 5.0)"
- expansions:
- build_type: "Release"
- mongodb_version: "5.0"
- run_on:
- - ubuntu1804-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
- - name: compile_and_test_with_shared_libs_replica_set
- - name: compile_and_test_with_shared_libs_sharded_cluster
- - name: build_example_with_add_subdirectory
- - name: uninstall_check
-
- - name: ubuntu2004-debug-valgrind-latest
- display_name: "Valgrind Ubuntu 20.04 Debug (MongoDB Latest)"
- expansions:
- build_type: "Debug"
- TEST_WITH_VALGRIND: "ON"
- mongodb_version: "latest"
- disable_slow_tests: 1
- use_mongocryptd: true # false positives arise from the crypt_shared library
- run_on:
- - ubuntu2004-build
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: ubuntu1804-debug-valgrind-50
- display_name: "Valgrind Ubuntu 18.04 Debug (MongoDB 5.0)"
- expansions:
- build_type: "Debug"
- TEST_WITH_VALGRIND: "ON"
- mongodb_version: "5.0"
- disable_slow_tests: 1
- use_mongocryptd: true
- run_on:
- - ubuntu1804-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: ubuntu2004-debug-asan-latest
- display_name: "ASAN Ubuntu 20.04 Debug (MongoDB Latest)"
- expansions:
- build_type: "Debug"
- cc_compiler: clang
- cxx_compiler: clang++
- USE_SANITIZER_ASAN: ON
- TEST_WITH_ASAN: "ON"
- mongodb_version: "latest"
- example_projects_cc: clang
- example_projects_cxx: clang++
- example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
- example_projects_ldflags: -fsanitize=address
- run_on:
- - ubuntu2004-build
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: ubuntu1804-debug-asan-50
- display_name: "ASAN Ubuntu 18.04 Debug (MongoDB 5.0)"
- expansions:
- build_type: "Debug"
- cc_compiler: clang
- cxx_compiler: clang++
- USE_SANITIZER_ASAN: ON
- TEST_WITH_ASAN: "ON"
- mongodb_version: "5.0"
- example_projects_cc: clang
- example_projects_cxx: clang++
- example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=address -fno-omit-frame-pointer
- example_projects_ldflags: -fsanitize=address
- run_on:
- - ubuntu1804-large
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: ubuntu2004-debug-ubsan-latest
- display_name: "UBSAN Ubuntu 20.04 Debug (MongoDB Latest)"
- expansions:
- build_type: "Debug"
- cc_compiler: clang
- cxx_compiler: clang++
- USE_SANITIZER_UBSAN: ON
- TEST_WITH_UBSAN: "ON"
- mongodb_version: "latest"
- example_projects_cc: clang
- example_projects_cxx: clang++
- example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer
- example_projects_ldflags: -fsanitize=undefined -fno-sanitize-recover=undefined
- run_on:
- - ubuntu2004-build
- tasks:
- # We currently don't run UBSAN on the shared library due to issues with UBSAN reporting
- # numerous false positive instances of undefined behavior in the mock tests, when the
- # driver invokes mock callback functions that have libmongoc types in the callback
- # signature.
- - name: compile_and_test_with_static_libs
-
- - name: ubuntu1804-debug-ubsan-50
- display_name: "UBSAN Ubuntu 18.04 Debug (MongoDB 5.0)"
- expansions:
- build_type: "Debug"
- cc_compiler: clang
- cxx_compiler: clang++
- USE_SANITIZER_UBSAN: ON
- TEST_WITH_UBSAN: "ON"
- mongodb_version: "5.0"
- example_projects_cc: clang
- example_projects_cxx: clang++
- example_projects_cxxflags: -D_GLIBCXX_USE_CXX11_ABI=0 -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer
- example_projects_ldflags: -fsanitize=undefined -fno-sanitize-recover=undefined
- run_on:
- - ubuntu1804-large
- tasks:
- # We currently don't run UBSAN on the shared library due to issues with UBSAN reporting
- # numerous false positive instances of undefined behavior in the mock tests, when the
- # driver invokes mock callback functions that have libmongoc types in the callback
- # signature.
- - name: compile_and_test_with_static_libs
-
- - name: ubuntu2004-debug
- display_name: "Ubuntu 20.04 Debug (MongoDB Latest) (Extra)"
- expansions:
- build_type: "Debug"
- mongodb_version: "latest"
- run_on:
- - ubuntu2004-build
- tasks:
- - name: compile_without_tests
- - name: compile_macro_guard_tests
-
- - name: atlas-search-indexes-7.0
- display_name: "Atlas Search Indexes (7.0)"
- expansions:
- build_type: "Debug"
- run_on:
- - ubuntu2004-build
- tasks:
- - name: test_atlas_task_group_search_indexes_7.0
-
- - name: atlas-search-indexes-8.0
- display_name: "Atlas Search Indexes (8.0)"
- expansions:
- build_type: "Debug"
- run_on:
- - ubuntu2004-build
- tasks:
- - name: test_atlas_task_group_search_indexes_8.0
-
- - name: ubuntu2004-debug-gcc
- display_name: "Ubuntu 20.04 Debug (GCC)"
- expansions:
- build_type: "Debug"
- mongodb_version: "latest"
- cc_compiler: gcc
- cxx_compiler: g++
- run_on:
- - ubuntu2004-large
- tasks:
- - name: compile_without_tests
- - name: compile_macro_guard_tests
-
- - name: ubuntu2004-debug-clang
- display_name: "Ubuntu 20.04 Debug (Clang)"
- expansions:
- build_type: "Debug"
- mongodb_version: "latest"
- cc_compiler: clang
- cxx_compiler: clang++
- run_on:
- - ubuntu2004-large
- tasks:
- - name: clang-tidy
- - name: compile_without_tests
- - name: compile_macro_guard_tests
-
- - name: mongohouse-ubuntu
- display_name: "Mongohouse Test"
- expansions:
- build_type: "Release"
- run_on: ubuntu2204-small
- tasks:
- - name: test_mongohouse
-
- - name: zseries-rhel83-latest
- display_name: "zSeries RHEL 8.3 (MongoDB Latest)"
- patchable: false
- batchtime: 1440 # 1 day
- expansions:
- build_type: "Release"
- mongodb_version: "latest"
- cmake: "cmake"
- lib_dir: "lib64"
- run_on:
- - rhel83-zseries-large
- tasks:
- - name: compile_with_shared_libs
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: zseries-rhel83-60
- display_name: "zSeries RHEL 8.3 (MongoDB 6.0)"
- patchable: false
- batchtime: 1440 # 1 day
- expansions:
- build_type: "Release"
- mongodb_version: "6.0"
- cmake: "cmake"
- lib_dir: "lib64"
- run_on:
- - rhel83-zseries-large
- tasks:
- - name: compile_with_shared_libs
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: zseries-rhel83-50
- display_name: "zSeries RHEL 8.3 (MongoDB 5.0)"
- patchable: false
- batchtime: 1440 # 1 day
- expansions:
- build_type: "Release"
- mongodb_version: "5.0"
- cmake: "cmake"
- lib_dir: "lib64"
- run_on:
- - rhel83-zseries-large
- tasks:
- - name: compile_with_shared_libs
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: power8-rhel81-latest
- display_name: "ppc64le RHEL 8.1 (MongoDB Latest)"
- patchable: false
- batchtime: 1440 # 1 day
- expansions:
- build_type: "Release"
- mongodb_version: "latest"
- cmake: "cmake"
- lib_dir: "lib64"
- run_on:
- - rhel81-power8-large
- tasks:
- - name: compile_with_shared_libs
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: power8-rhel81-50
- display_name: "ppc64le RHEL 8.1 (MongoDB 5.0)"
- patchable: false
- batchtime: 1440 # 1 day
- expansions:
- build_type: "Release"
- mongodb_version: "5.0"
- cmake: "cmake"
- lib_dir: "lib64"
- run_on:
- - rhel81-power8-large
- tasks:
- - name: compile_with_shared_libs
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: arm-ubuntu2004-latest
- display_name: "arm64 Ubuntu 20.04 (MongoDB Latest)"
- batchtime: 1440 # 1 day
- expansions:
- build_type: "Release"
- mongodb_version: "latest"
- run_on:
- - ubuntu2004-arm64-build
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: arm-ubuntu1804-50
- display_name: "arm64 Ubuntu 18.04 (MongoDB 5.0)"
- batchtime: 1440 # 1 day
- expansions:
- build_type: "Release"
- mongodb_version: "5.0"
- run_on:
- - ubuntu1804-arm64-build
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- #######################################
- # Mac and Windows #
- #######################################
- - name: macos-1100-latest
- display_name: "MacOS 11.0 Release (Boost) (MongoDB Latest)"
- expansions:
- build_type: "Release"
- BSONCXX_POLYFILL: "boost"
- mongodb_version: "latest"
- run_on:
- - macos-1100
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: macos-1100-50
- display_name: "MacOS 11.0 Release (Boost) (MongoDB 5.0)"
- expansions:
- build_type: "Release"
- BSONCXX_POLYFILL: "boost"
- mongodb_version: "5.0"
- run_on:
- - macos-1100
- tasks:
- - name: compile_and_test_with_shared_libs
- - name: compile_and_test_with_shared_libs_extra_alignment
- - name: compile_and_test_with_static_libs
- - name: compile_and_test_with_static_libs_extra_alignment
-
- - name: macos-1100-versioned-api
- display_name: "MacOS 11.0 Release Versioned API"
- expansions:
- build_type: "Release"
- BSONCXX_POLYFILL: "boost"
- mongodb_version: "latest"
- run_on:
- - macos-1100
- tasks:
- - name: test_versioned_api
- - name: test_versioned_api_accept_version_two
-
- - name: windows-2k8-release
- display_name: "Windows (VS 2015) Release (MongoDB 4.2)"
- expansions:
- build_type: "Release"
- mongodb_version: "4.2"
- generator: Visual Studio 14 2015
- platform: x64
- run_on:
- - windows-64-vs2015-compile
- tasks:
- - name: compile_without_tests
- - name: uninstall_check_windows
-
- - name: windows-2k8-debug
- display_name: "Windows (VS 2015) Debug Static (MongoDB 4.2)"
- expansions:
- build_type: "Debug"
- mongodb_version: "4.2"
- generator: Visual Studio 14 2015
- platform: x64
- run_on:
- - windows-64-vs2015-compile
- tasks:
- - name: compile_without_tests
- - name: uninstall_check_windows
-
- - name: windows-msvc2015-debug
- display_name: "Windows (VS 2015) Debug (MongoDB 4.2)"
- expansions:
- build_type: "Debug"
- generator: Visual Studio 14 2015
- platform: x64
- mongodb_version: "4.2"
- run_on:
- - windows-64-vs2015-compile
- tasks:
- - name: compile_without_tests
- - name: uninstall_check_windows
-
- - name: packaging
- display_name: Linux Distro Packaging
- tasks:
- - name: debian-package-build
- - name: debian-package-build-mnmlstc
- - name: rpm-package-build
-
- - name: lint
- display_name: Lint
- tasks: [lint]
-
- - name: scan-build-matrix
- display_name: scan-build-matrix
- tasks:
- - name: .scan-build-matrix
-
- - name: silk
- display_name: silk
- tasks:
- - name: .silk
-
- - name: rhel79-compile
- display_name: "RHEL 7.9 (gcc 4.8.5)"
- expansions:
- build_type: "Release"
- BSONCXX_POLYFILL: impls
- run_on:
- - rhel79-large
- tasks:
- - name: compile_without_tests
+ - func: "stop_mongod"
+ - func: "backtrace"
+ # Workaround for CXX-2040
+ # - func: "upload working dir"
+ - func: "upload mongo orchestration artifacts"
+ - func: "upload code coverage"
diff --git a/etc/clang_format.py b/etc/clang_format.py
old mode 100644
new mode 100755
index 627d83a241..f25ea234e9
--- a/etc/clang_format.py
+++ b/etc/clang_format.py
@@ -1,4 +1,10 @@
#!/usr/bin/env python
+
+# /// script
+# requires-python = "<3.0"
+# dependencies = []
+# ///
+
"""
A script that provides:
1. Ability to grab binaries where possible from LLVM.
@@ -852,6 +858,10 @@ def usage():
def main():
"""Main entry point
"""
+
+ # Python 3 is not supported by this script.
+ assert sys.version_info.major < 3
+
parser = OptionParser()
parser.add_option("-c", "--clang-format", type="string", dest="clang_format")
diff --git a/etc/debug-core-evergreen.sh b/etc/debug-core-evergreen.sh
index 65481fa7cf..37859436ea 100755
--- a/etc/debug-core-evergreen.sh
+++ b/etc/debug-core-evergreen.sh
@@ -1,8 +1,11 @@
#!/usr/bin/env bash
-if ! which gdb > /dev/null; then
- echo "gdb not found. Will not search for core files"
- exit 0
+set -o errexit
+set -o pipefail
+
+if ! which gdb >/dev/null; then
+ echo "gdb not found. Will not search for core files"
+ exit 0
fi
echo "Debugging core files"
@@ -11,13 +14,13 @@ cd build
shopt -s nullglob
for i in *.core; do
- echo $i
- # find out which executable corresponds to the core dump
- # file produces a string like:
- # ./core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './a.out'
- binary_path=$(file $i | awk '{print $NF}'| awk -F "'" '{print $2}')
- echo "core dump produced by ${binary_path}"
- echo "backtrace full" | gdb -q $binary_path $i
+ echo "${i:?}"
+ # find out which executable corresponds to the core dump
+ # file produces a string like:
+ # ./core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './a.out'
+ binary_path="$(file "${i:?}" | awk '{print $NF}' | awk -F "'" '{print $2}')"
+ echo "core dump produced by ${binary_path:?}"
+ echo "backtrace full" | gdb -q "${binary_path:?}" "${i:?}"
done
cd ..
diff --git a/etc/make_release.py b/etc/make_release.py
index 9972ad02c9..f2802bfe73 100755
--- a/etc/make_release.py
+++ b/etc/make_release.py
@@ -407,7 +407,7 @@ def build_c_driver(c_driver_build_ref, quiet):
env = os.environ.copy()
env['mongoc_version'] = c_driver_build_ref
- run_shell_script('./.evergreen/install_c_driver.sh', env=env)
+ run_shell_script('./.evergreen/scripts/install_c_driver.sh', env=env)
if not quiet:
click.echo('Build of C Driver version "{}" was successful.'.format(c_driver_build_ref))
@@ -438,7 +438,7 @@ def build_distribution(release_tag, release_version, c_driver_dir, quiet, skip_d
click.echo('Clear ./build with "git clean -xdf ./build"', err=True)
return None
- run_shell_script('. .evergreen/find_cmake.sh;'
+ run_shell_script('. .evergreen/scripts/find-cmake-old.sh;'
'cd build;'
'echo ' + release_version + ' > VERSION_CURRENT;'
'${CMAKE} -DCMAKE_BUILD_TYPE=Release '
diff --git a/etc/microbenchmark-test-data.sh b/etc/microbenchmark-test-data.sh
index 9e9dce2151..a5c64e0eda 100755
--- a/etc/microbenchmark-test-data.sh
+++ b/etc/microbenchmark-test-data.sh
@@ -7,16 +7,16 @@ set -o errexit
set -o nounset
if [ ! -d ".git" ]; then
- echo "$0: This script must be run from the root of the repository" >&2
- exit 1
+ echo "$0: This script must be run from the root of the repository" >&2
+ exit 1
fi
-tmpdir=`perl -MFile::Temp=tempdir -wle 'print tempdir(TMPDIR => 1, CLEANUP => 0)'`
+tmpdir=$(perl -MFile::Temp=tempdir -wle 'print tempdir(TMPDIR => 1, CLEANUP => 0)')
curl -sL https://github.com/mongodb-labs/driver-performance-test-data/archive/master.zip -o "$tmpdir/data.zip"
-unzip -d "$tmpdir" "$tmpdir/data.zip" > /dev/null
+unzip -d "$tmpdir" "$tmpdir/data.zip" >/dev/null
mkdir -p data/benchmark
-pushd "$tmpdir/driver-performance-test-data-master" > /dev/null
+pushd "$tmpdir/driver-performance-test-data-master" >/dev/null
tar xf extended_bson.tgz
tar xf parallel.tgz
@@ -27,6 +27,6 @@ rm parallel.tgz
rm single_and_multi_document.tgz
rm README.md
-popd > /dev/null
+popd >/dev/null
rsync -ah "$tmpdir/driver-performance-test-data-master/" data/benchmark
-rm -rf "$tmpdir"
\ No newline at end of file
+rm -rf "$tmpdir"
diff --git a/etc/releasing.md b/etc/releasing.md
index b2e50131d9..f58a17e614 100644
--- a/etc/releasing.md
+++ b/etc/releasing.md
@@ -105,9 +105,9 @@ Ensure there are no new or unexpected task failures.
### Minimum Required MongoDB C Driver Version
-Ensure `mongoc_version_minimum` and related values are updated for the latest minimum required C Driver release.
+Ensure `MONGOC_VERSION_MINIMUM` and related values are updated for the latest minimum required C Driver release.
-See the comment accompanying `mongoc_version_minimum` for a list of other sources to update.
+See the comment accompanying `MONGOC_VERSION_MINIMUM` for a list of other sources to update.
### Coverity
@@ -296,13 +296,17 @@ git clone -o upstream git@github.com:mongodb/mongo-cxx-driver.git mongo-cxx-driv
cd mongo-cxx-driver-release
```
-Create and activate a fresh Python 3 virtual environment with required packages installed:
+Create and activate a fresh Python 3 virtual environment with required packages installed using [uv](https://docs.astral.sh/uv/getting-started/installation/):
```bash
+# Outside the mongo-cxx-driver-release directory!
+export UV_PROJECT_ENVIRONMENT="$HOME/mongo-cxx-driver-release-venv"
-python3 -m venv ~/mongo-cxx-driver-release-venv # Outside the mongo-cxx-driver-release directory!
-source ~/mongo-cxx-driver-release-venv/bin/activate
-pip install -r etc/requirements.txt
+# Install required packages into a new virtual environment.
+uv sync --frozen
+
+# Activate the virtual environment.
+source "$UV_PROJECT_ENVIRONMENT/bin/activate"
```
### Create a Release Tag...
diff --git a/etc/requirements.txt b/etc/requirements.txt
deleted file mode 100644
index 83c495288c..0000000000
--- a/etc/requirements.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-beautifulsoup4==4.12.3 # etc/patch-apidocs-index-pages.py.
-click==8.1.7 # etc/make_release.py
-cryptography==42.0.7 # etc/make_release.py (PyJWT)
-GitPython==3.1.43 # etc/make_release.py
-jira==3.5.2 # etc/make_release.py
-PyGithub==2.3.0 # etc/make_release.py
-
-# Dependencies of required packages above.
-certifi==2024.7.4
-cffi==1.16.0
-charset-normalizer==3.3.2
-defusedxml==0.7.1
-Deprecated==1.2.14
-gitdb==4.0.11
-idna==3.7
-oauthlib==3.2.2
-packaging==24.1
-pycparser==2.22
-PyJWT==2.8.0
-PyNaCl==1.5.0
-requests==2.32.3
-requests-oauthlib==2.0.0
-requests-toolbelt==1.0.0
-smmap==5.0.1
-soupsieve==2.5
-typing_extensions==4.12.2
-urllib3==2.2.2
-wrapt==1.16.0
diff --git a/etc/run-clang-tidy.sh b/etc/run-clang-tidy.sh
index e0a963c4f6..28fc8c0323 100755
--- a/etc/run-clang-tidy.sh
+++ b/etc/run-clang-tidy.sh
@@ -3,6 +3,9 @@
set -o errexit
set -o pipefail
+export CC="${cc_compiler:?}"
+export CXX="${cxx_compiler:?}"
+
if [[ "${distro_id:?}" != ubuntu* ]]; then
echo "run-clang-tidy.sh expects to be run on an Ubuntu distro!" 1>&2
exit 1
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000000..2c8b3e7b39
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,28 @@
+[project]
+name = "mongo-cxx-driver"
+version = "0.1.0"
+description = "For development only."
+requires-python = ">=3.10"
+dependencies = []
+
+[dependency-groups]
+dev = [
+ # .evergreen/config_generator/generate.py
+ "packaging>=14.0",
+ "pydantic>=2.7",
+ "shrub-py>=3.3.1",
+
+ # etc/make_release.py
+ "click>=6.0",
+ "gitpython>=3.1",
+ "jira>=3.1",
+ "looseversion>=1.3",
+ "pygithub>=2.0",
+
+ # etc/patch-apidocs-current-redirects.py
+ "packaging>=14.0",
+
+ # etc/patch-apidocs-index-pages.py
+ "beautifulsoup4>=4.12",
+ "packaging>=14.0",
+]
diff --git a/uv.lock b/uv.lock
new file mode 100644
index 0000000000..8cec220568
--- /dev/null
+++ b/uv.lock
@@ -0,0 +1,763 @@
+version = 1
+requires-python = ">=3.10"
+resolution-markers = [
+ "python_full_version < '3.13'",
+ "python_full_version >= '3.13'",
+]
+
+[[package]]
+name = "annotated-types"
+version = "0.7.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 },
+]
+
+[[package]]
+name = "beautifulsoup4"
+version = "4.12.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "soupsieve" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 },
+]
+
+[[package]]
+name = "certifi"
+version = "2024.8.30"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", size = 168507 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321 },
+]
+
+[[package]]
+name = "cffi"
+version = "1.17.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pycparser" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/90/07/f44ca684db4e4f08a3fdc6eeb9a0d15dc6883efc7b8c90357fdbf74e186c/cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", size = 182191 },
+ { url = "https://files.pythonhosted.org/packages/08/fd/cc2fedbd887223f9f5d170c96e57cbf655df9831a6546c1727ae13fa977a/cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", size = 178592 },
+ { url = "https://files.pythonhosted.org/packages/de/cc/4635c320081c78d6ffc2cab0a76025b691a91204f4aa317d568ff9280a2d/cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", size = 426024 },
+ { url = "https://files.pythonhosted.org/packages/b6/7b/3b2b250f3aab91abe5f8a51ada1b717935fdaec53f790ad4100fe2ec64d1/cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", size = 448188 },
+ { url = "https://files.pythonhosted.org/packages/d3/48/1b9283ebbf0ec065148d8de05d647a986c5f22586b18120020452fff8f5d/cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", size = 455571 },
+ { url = "https://files.pythonhosted.org/packages/40/87/3b8452525437b40f39ca7ff70276679772ee7e8b394934ff60e63b7b090c/cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", size = 436687 },
+ { url = "https://files.pythonhosted.org/packages/8d/fb/4da72871d177d63649ac449aec2e8a29efe0274035880c7af59101ca2232/cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", size = 446211 },
+ { url = "https://files.pythonhosted.org/packages/ab/a0/62f00bcb411332106c02b663b26f3545a9ef136f80d5df746c05878f8c4b/cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", size = 461325 },
+ { url = "https://files.pythonhosted.org/packages/36/83/76127035ed2e7e27b0787604d99da630ac3123bfb02d8e80c633f218a11d/cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", size = 438784 },
+ { url = "https://files.pythonhosted.org/packages/21/81/a6cd025db2f08ac88b901b745c163d884641909641f9b826e8cb87645942/cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", size = 461564 },
+ { url = "https://files.pythonhosted.org/packages/f8/fe/4d41c2f200c4a457933dbd98d3cf4e911870877bd94d9656cc0fcb390681/cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", size = 171804 },
+ { url = "https://files.pythonhosted.org/packages/d1/b6/0b0f5ab93b0df4acc49cae758c81fe4e5ef26c3ae2e10cc69249dfd8b3ab/cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", size = 181299 },
+ { url = "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", size = 182264 },
+ { url = "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", size = 178651 },
+ { url = "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", size = 445259 },
+ { url = "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", size = 469200 },
+ { url = "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", size = 477235 },
+ { url = "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", size = 459721 },
+ { url = "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", size = 467242 },
+ { url = "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", size = 477999 },
+ { url = "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", size = 454242 },
+ { url = "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", size = 478604 },
+ { url = "https://files.pythonhosted.org/packages/34/33/e1b8a1ba29025adbdcda5fb3a36f94c03d771c1b7b12f726ff7fef2ebe36/cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", size = 171727 },
+ { url = "https://files.pythonhosted.org/packages/3d/97/50228be003bb2802627d28ec0627837ac0bf35c90cf769812056f235b2d1/cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", size = 181400 },
+ { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 },
+ { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 },
+ { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 },
+ { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850 },
+ { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729 },
+ { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256 },
+ { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 },
+ { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 },
+ { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 },
+ { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448 },
+ { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976 },
+ { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 },
+ { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 },
+ { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 },
+ { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 },
+ { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 },
+ { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 },
+ { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 },
+ { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 },
+ { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 },
+ { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 },
+ { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 },
+]
+
+[[package]]
+name = "charset-normalizer"
+version = "3.4.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/69/8b/825cc84cf13a28bfbcba7c416ec22bf85a9584971be15b21dd8300c65b7f/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", size = 196363 },
+ { url = "https://files.pythonhosted.org/packages/23/81/d7eef6a99e42c77f444fdd7bc894b0ceca6c3a95c51239e74a722039521c/charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", size = 125639 },
+ { url = "https://files.pythonhosted.org/packages/21/67/b4564d81f48042f520c948abac7079356e94b30cb8ffb22e747532cf469d/charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", size = 120451 },
+ { url = "https://files.pythonhosted.org/packages/c2/72/12a7f0943dd71fb5b4e7b55c41327ac0a1663046a868ee4d0d8e9c369b85/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", size = 140041 },
+ { url = "https://files.pythonhosted.org/packages/67/56/fa28c2c3e31217c4c52158537a2cf5d98a6c1e89d31faf476c89391cd16b/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", size = 150333 },
+ { url = "https://files.pythonhosted.org/packages/f9/d2/466a9be1f32d89eb1554cf84073a5ed9262047acee1ab39cbaefc19635d2/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", size = 142921 },
+ { url = "https://files.pythonhosted.org/packages/f8/01/344ec40cf5d85c1da3c1f57566c59e0c9b56bcc5566c08804a95a6cc8257/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", size = 144785 },
+ { url = "https://files.pythonhosted.org/packages/73/8b/2102692cb6d7e9f03b9a33a710e0164cadfce312872e3efc7cfe22ed26b4/charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", size = 146631 },
+ { url = "https://files.pythonhosted.org/packages/d8/96/cc2c1b5d994119ce9f088a9a0c3ebd489d360a2eb058e2c8049f27092847/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", size = 140867 },
+ { url = "https://files.pythonhosted.org/packages/c9/27/cde291783715b8ec30a61c810d0120411844bc4c23b50189b81188b273db/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", size = 149273 },
+ { url = "https://files.pythonhosted.org/packages/3a/a4/8633b0fc1a2d1834d5393dafecce4a1cc56727bfd82b4dc18fc92f0d3cc3/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", size = 152437 },
+ { url = "https://files.pythonhosted.org/packages/64/ea/69af161062166b5975ccbb0961fd2384853190c70786f288684490913bf5/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", size = 150087 },
+ { url = "https://files.pythonhosted.org/packages/3b/fd/e60a9d9fd967f4ad5a92810138192f825d77b4fa2a557990fd575a47695b/charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", size = 145142 },
+ { url = "https://files.pythonhosted.org/packages/6d/02/8cb0988a1e49ac9ce2eed1e07b77ff118f2923e9ebd0ede41ba85f2dcb04/charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", size = 94701 },
+ { url = "https://files.pythonhosted.org/packages/d6/20/f1d4670a8a723c46be695dff449d86d6092916f9e99c53051954ee33a1bc/charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", size = 102191 },
+ { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 },
+ { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 },
+ { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 },
+ { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 },
+ { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 },
+ { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 },
+ { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 },
+ { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 },
+ { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 },
+ { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 },
+ { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 },
+ { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 },
+ { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 },
+ { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 },
+ { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 },
+ { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 },
+ { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 },
+ { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 },
+ { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 },
+ { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 },
+ { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 },
+ { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 },
+ { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 },
+ { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 },
+ { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 },
+ { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 },
+ { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 },
+ { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 },
+ { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 },
+ { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 },
+ { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 },
+ { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 },
+ { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 },
+ { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 },
+ { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 },
+ { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 },
+ { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 },
+ { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 },
+ { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 },
+ { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 },
+ { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 },
+ { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 },
+ { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 },
+ { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 },
+ { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 },
+ { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 },
+]
+
+[[package]]
+name = "click"
+version = "8.1.7"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "colorama", marker = "platform_system == 'Windows'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 },
+]
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
+]
+
+[[package]]
+name = "croniter"
+version = "1.4.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "python-dateutil" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/96/56/f8500161d9ab57ea5ad29c203b85989f87af13a367b3178ade0cd34d8d3a/croniter-1.4.1.tar.gz", hash = "sha256:1a6df60eacec3b7a0aa52a8f2ef251ae3dd2a7c7c8b9874e73e791636d55a361", size = 42301 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f2/91/e5ae454da8200c6eb6cf94ca05d799b51e2cb2cc458a7737aebc0c5a21bb/croniter-1.4.1-py2.py3-none-any.whl", hash = "sha256:9595da48af37ea06ec3a9f899738f1b2c1c13da3c38cea606ef7cd03ea421128", size = 19579 },
+]
+
+[[package]]
+name = "cryptography"
+version = "43.0.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", size = 686989 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1f/f3/01fdf26701a26f4b4dbc337a26883ad5bccaa6f1bbbdd29cd89e22f18a1c/cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e", size = 6225303 },
+ { url = "https://files.pythonhosted.org/packages/a3/01/4896f3d1b392025d4fcbecf40fdea92d3df8662123f6835d0af828d148fd/cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e", size = 3760905 },
+ { url = "https://files.pythonhosted.org/packages/0a/be/f9a1f673f0ed4b7f6c643164e513dbad28dd4f2dcdf5715004f172ef24b6/cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f", size = 3977271 },
+ { url = "https://files.pythonhosted.org/packages/4e/49/80c3a7b5514d1b416d7350830e8c422a4d667b6d9b16a9392ebfd4a5388a/cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6", size = 3746606 },
+ { url = "https://files.pythonhosted.org/packages/0e/16/a28ddf78ac6e7e3f25ebcef69ab15c2c6be5ff9743dd0709a69a4f968472/cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18", size = 3986484 },
+ { url = "https://files.pythonhosted.org/packages/01/f5/69ae8da70c19864a32b0315049866c4d411cce423ec169993d0434218762/cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd", size = 3852131 },
+ { url = "https://files.pythonhosted.org/packages/fd/db/e74911d95c040f9afd3612b1f732e52b3e517cb80de8bf183be0b7d413c6/cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73", size = 4075647 },
+ { url = "https://files.pythonhosted.org/packages/56/48/7b6b190f1462818b324e674fa20d1d5ef3e24f2328675b9b16189cbf0b3c/cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2", size = 2623873 },
+ { url = "https://files.pythonhosted.org/packages/eb/b1/0ebff61a004f7f89e7b65ca95f2f2375679d43d0290672f7713ee3162aff/cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd", size = 3068039 },
+ { url = "https://files.pythonhosted.org/packages/30/d5/c8b32c047e2e81dd172138f772e81d852c51f0f2ad2ae8a24f1122e9e9a7/cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984", size = 6222984 },
+ { url = "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", size = 3762968 },
+ { url = "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", size = 3977754 },
+ { url = "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", size = 3749458 },
+ { url = "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", size = 3988220 },
+ { url = "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", size = 3853898 },
+ { url = "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", size = 4076592 },
+ { url = "https://files.pythonhosted.org/packages/81/1e/ffcc41b3cebd64ca90b28fd58141c5f68c83d48563c88333ab660e002cd3/cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995", size = 2623145 },
+ { url = "https://files.pythonhosted.org/packages/87/5c/3dab83cc4aba1f4b0e733e3f0c3e7d4386440d660ba5b1e3ff995feb734d/cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362", size = 3068026 },
+ { url = "https://files.pythonhosted.org/packages/6f/db/d8b8a039483f25fc3b70c90bc8f3e1d4497a99358d610c5067bf3bd4f0af/cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c", size = 3144545 },
+ { url = "https://files.pythonhosted.org/packages/93/90/116edd5f8ec23b2dc879f7a42443e073cdad22950d3c8ee834e3b8124543/cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3", size = 3679828 },
+ { url = "https://files.pythonhosted.org/packages/d8/32/1e1d78b316aa22c0ba6493cc271c1c309969e5aa5c22c830a1d7ce3471e6/cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83", size = 3908132 },
+ { url = "https://files.pythonhosted.org/packages/91/bb/cd2c13be3332e7af3cdf16154147952d39075b9f61ea5e6b5241bf4bf436/cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7", size = 2988811 },
+]
+
+[[package]]
+name = "defusedxml"
+version = "0.7.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604 },
+]
+
+[[package]]
+name = "deprecated"
+version = "1.2.14"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "wrapt" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/92/14/1e41f504a246fc224d2ac264c227975427a85caf37c3979979edb9b1b232/Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3", size = 2974416 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/20/8d/778b7d51b981a96554f29136cd59ca7880bf58094338085bcf2a979a0e6a/Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c", size = 9561 },
+]
+
+[[package]]
+name = "gitdb"
+version = "4.0.11"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "smmap" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/19/0d/bbb5b5ee188dec84647a4664f3e11b06ade2bde568dbd489d9d64adef8ed/gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b", size = 394469 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/fd/5b/8f0c4a5bb9fd491c277c21eff7ccae71b47d43c4446c9d0c6cff2fe8c2c4/gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4", size = 62721 },
+]
+
+[[package]]
+name = "gitpython"
+version = "3.1.43"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "gitdb" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b6/a1/106fd9fa2dd989b6fb36e5893961f82992cf676381707253e0bf93eb1662/GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c", size = 214149 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e9/bd/cc3a402a6439c15c3d4294333e13042b915bbeab54edc457c723931fed3f/GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff", size = 207337 },
+]
+
+[[package]]
+name = "idna"
+version = "3.10"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
+]
+
+[[package]]
+name = "jira"
+version = "3.8.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "defusedxml" },
+ { name = "packaging" },
+ { name = "pillow" },
+ { name = "requests" },
+ { name = "requests-oauthlib" },
+ { name = "requests-toolbelt" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/78/b4/557e4c80c0ea12164ffeec0e29372c085bfb263faad53cef5e1455523bec/jira-3.8.0.tar.gz", hash = "sha256:63719c529a570aaa01c3373dbb5a104dab70381c5be447f6c27f997302fa335a", size = 102927 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/4f/52/bb617020064261ba31cc965e932943458b7facfd9691ad7f76a2b631f44f/jira-3.8.0-py3-none-any.whl", hash = "sha256:12190dc84dad00b8a6c0341f7e8a254b0f38785afdec022bd5941e1184a5a3fb", size = 77505 },
+]
+
+[[package]]
+name = "looseversion"
+version = "1.3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/64/7e/f13dc08e0712cc2eac8e56c7909ce2ac280dbffef2ffd87bd5277ce9d58b/looseversion-1.3.0.tar.gz", hash = "sha256:ebde65f3f6bb9531a81016c6fef3eb95a61181adc47b7f949e9c0ea47911669e", size = 8799 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/4e/74/d5405b9b3b12e9176dff223576d7090bc161092878f533fd0dc23dd6ae1d/looseversion-1.3.0-py2.py3-none-any.whl", hash = "sha256:781ef477b45946fc03dd4c84ea87734b21137ecda0e1e122bcb3c8d16d2a56e0", size = 8237 },
+]
+
+[[package]]
+name = "mongo-cxx-driver"
+version = "0.1.0"
+source = { virtual = "." }
+
+[package.dependency-groups]
+dev = [
+ { name = "beautifulsoup4" },
+ { name = "click" },
+ { name = "gitpython" },
+ { name = "jira" },
+ { name = "looseversion" },
+ { name = "packaging" },
+ { name = "pydantic" },
+ { name = "pygithub" },
+ { name = "shrub-py" },
+]
+
+[package.metadata]
+
+[package.metadata.dependency-groups]
+dev = [
+ { name = "beautifulsoup4", specifier = ">=4.12" },
+ { name = "click", specifier = ">=6.0" },
+ { name = "gitpython", specifier = ">=3.1" },
+ { name = "jira", specifier = ">=3.1" },
+ { name = "looseversion", specifier = ">=1.3" },
+ { name = "packaging", specifier = ">=14.0" },
+ { name = "pydantic", specifier = ">=2.7" },
+ { name = "pygithub", specifier = ">=2.0" },
+ { name = "shrub-py", specifier = ">=3.3.1" },
+]
+
+[[package]]
+name = "oauthlib"
+version = "3.2.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/6d/fa/fbf4001037904031639e6bfbfc02badfc7e12f137a8afa254df6c4c8a670/oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918", size = 177352 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", size = 151688 },
+]
+
+[[package]]
+name = "packaging"
+version = "24.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", size = 148788 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", size = 53985 },
+]
+
+[[package]]
+name = "pillow"
+version = "11.0.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739", size = 46737780 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/98/fb/a6ce6836bd7fd93fbf9144bf54789e02babc27403b50a9e1583ee877d6da/pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947", size = 3154708 },
+ { url = "https://files.pythonhosted.org/packages/6a/1d/1f51e6e912d8ff316bb3935a8cda617c801783e0b998bf7a894e91d3bd4c/pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba", size = 2979223 },
+ { url = "https://files.pythonhosted.org/packages/90/83/e2077b0192ca8a9ef794dbb74700c7e48384706467067976c2a95a0f40a1/pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086", size = 4183167 },
+ { url = "https://files.pythonhosted.org/packages/0e/74/467af0146970a98349cdf39e9b79a6cc8a2e7558f2c01c28a7b6b85c5bda/pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9", size = 4283912 },
+ { url = "https://files.pythonhosted.org/packages/85/b1/d95d4f7ca3a6c1ae120959605875a31a3c209c4e50f0029dc1a87566cf46/pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488", size = 4195815 },
+ { url = "https://files.pythonhosted.org/packages/41/c3/94f33af0762ed76b5a237c5797e088aa57f2b7fa8ee7932d399087be66a8/pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f", size = 4366117 },
+ { url = "https://files.pythonhosted.org/packages/ba/3c/443e7ef01f597497268899e1cca95c0de947c9bbf77a8f18b3c126681e5d/pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb", size = 4278607 },
+ { url = "https://files.pythonhosted.org/packages/26/95/1495304448b0081e60c0c5d63f928ef48bb290acee7385804426fa395a21/pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97", size = 4410685 },
+ { url = "https://files.pythonhosted.org/packages/45/da/861e1df971ef0de9870720cb309ca4d553b26a9483ec9be3a7bf1de4a095/pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50", size = 2249185 },
+ { url = "https://files.pythonhosted.org/packages/d5/4e/78f7c5202ea2a772a5ab05069c1b82503e6353cd79c7e474d4945f4b82c3/pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c", size = 2566726 },
+ { url = "https://files.pythonhosted.org/packages/77/e4/6e84eada35cbcc646fc1870f72ccfd4afacb0fae0c37ffbffe7f5dc24bf1/pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1", size = 2254585 },
+ { url = "https://files.pythonhosted.org/packages/f0/eb/f7e21b113dd48a9c97d364e0915b3988c6a0b6207652f5a92372871b7aa4/pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc", size = 3154705 },
+ { url = "https://files.pythonhosted.org/packages/25/b3/2b54a1d541accebe6bd8b1358b34ceb2c509f51cb7dcda8687362490da5b/pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a", size = 2979222 },
+ { url = "https://files.pythonhosted.org/packages/20/12/1a41eddad8265c5c19dda8fb6c269ce15ee25e0b9f8f26286e6202df6693/pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3", size = 4190220 },
+ { url = "https://files.pythonhosted.org/packages/a9/9b/8a8c4d07d77447b7457164b861d18f5a31ae6418ef5c07f6f878fa09039a/pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5", size = 4291399 },
+ { url = "https://files.pythonhosted.org/packages/fc/e4/130c5fab4a54d3991129800dd2801feeb4b118d7630148cd67f0e6269d4c/pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b", size = 4202709 },
+ { url = "https://files.pythonhosted.org/packages/39/63/b3fc299528d7df1f678b0666002b37affe6b8751225c3d9c12cf530e73ed/pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa", size = 4372556 },
+ { url = "https://files.pythonhosted.org/packages/c6/a6/694122c55b855b586c26c694937d36bb8d3b09c735ff41b2f315c6e66a10/pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306", size = 4287187 },
+ { url = "https://files.pythonhosted.org/packages/ba/a9/f9d763e2671a8acd53d29b1e284ca298bc10a595527f6be30233cdb9659d/pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9", size = 4418468 },
+ { url = "https://files.pythonhosted.org/packages/6e/0e/b5cbad2621377f11313a94aeb44ca55a9639adabcaaa073597a1925f8c26/pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5", size = 2249249 },
+ { url = "https://files.pythonhosted.org/packages/dc/83/1470c220a4ff06cd75fc609068f6605e567ea51df70557555c2ab6516b2c/pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291", size = 2566769 },
+ { url = "https://files.pythonhosted.org/packages/52/98/def78c3a23acee2bcdb2e52005fb2810ed54305602ec1bfcfab2bda6f49f/pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9", size = 2254611 },
+ { url = "https://files.pythonhosted.org/packages/1c/a3/26e606ff0b2daaf120543e537311fa3ae2eb6bf061490e4fea51771540be/pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923", size = 3147642 },
+ { url = "https://files.pythonhosted.org/packages/4f/d5/1caabedd8863526a6cfa44ee7a833bd97f945dc1d56824d6d76e11731939/pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903", size = 2978999 },
+ { url = "https://files.pythonhosted.org/packages/d9/ff/5a45000826a1aa1ac6874b3ec5a856474821a1b59d838c4f6ce2ee518fe9/pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4", size = 4196794 },
+ { url = "https://files.pythonhosted.org/packages/9d/21/84c9f287d17180f26263b5f5c8fb201de0f88b1afddf8a2597a5c9fe787f/pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f", size = 4300762 },
+ { url = "https://files.pythonhosted.org/packages/84/39/63fb87cd07cc541438b448b1fed467c4d687ad18aa786a7f8e67b255d1aa/pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9", size = 4210468 },
+ { url = "https://files.pythonhosted.org/packages/7f/42/6e0f2c2d5c60f499aa29be14f860dd4539de322cd8fb84ee01553493fb4d/pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7", size = 4381824 },
+ { url = "https://files.pythonhosted.org/packages/31/69/1ef0fb9d2f8d2d114db982b78ca4eeb9db9a29f7477821e160b8c1253f67/pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6", size = 4296436 },
+ { url = "https://files.pythonhosted.org/packages/44/ea/dad2818c675c44f6012289a7c4f46068c548768bc6c7f4e8c4ae5bbbc811/pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc", size = 4429714 },
+ { url = "https://files.pythonhosted.org/packages/af/3a/da80224a6eb15bba7a0dcb2346e2b686bb9bf98378c0b4353cd88e62b171/pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6", size = 2249631 },
+ { url = "https://files.pythonhosted.org/packages/57/97/73f756c338c1d86bb802ee88c3cab015ad7ce4b838f8a24f16b676b1ac7c/pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47", size = 2567533 },
+ { url = "https://files.pythonhosted.org/packages/0b/30/2b61876e2722374558b871dfbfcbe4e406626d63f4f6ed92e9c8e24cac37/pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25", size = 2254890 },
+ { url = "https://files.pythonhosted.org/packages/63/24/e2e15e392d00fcf4215907465d8ec2a2f23bcec1481a8ebe4ae760459995/pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699", size = 3147300 },
+ { url = "https://files.pythonhosted.org/packages/43/72/92ad4afaa2afc233dc44184adff289c2e77e8cd916b3ddb72ac69495bda3/pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38", size = 2978742 },
+ { url = "https://files.pythonhosted.org/packages/9e/da/c8d69c5bc85d72a8523fe862f05ababdc52c0a755cfe3d362656bb86552b/pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2", size = 4194349 },
+ { url = "https://files.pythonhosted.org/packages/cd/e8/686d0caeed6b998351d57796496a70185376ed9c8ec7d99e1d19ad591fc6/pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2", size = 4298714 },
+ { url = "https://files.pythonhosted.org/packages/ec/da/430015cec620d622f06854be67fd2f6721f52fc17fca8ac34b32e2d60739/pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527", size = 4208514 },
+ { url = "https://files.pythonhosted.org/packages/44/ae/7e4f6662a9b1cb5f92b9cc9cab8321c381ffbee309210940e57432a4063a/pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa", size = 4380055 },
+ { url = "https://files.pythonhosted.org/packages/74/d5/1a807779ac8a0eeed57f2b92a3c32ea1b696e6140c15bd42eaf908a261cd/pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f", size = 4296751 },
+ { url = "https://files.pythonhosted.org/packages/38/8c/5fa3385163ee7080bc13026d59656267daaaaf3c728c233d530e2c2757c8/pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb", size = 4430378 },
+ { url = "https://files.pythonhosted.org/packages/ca/1d/ad9c14811133977ff87035bf426875b93097fb50af747793f013979facdb/pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798", size = 2249588 },
+ { url = "https://files.pythonhosted.org/packages/fb/01/3755ba287dac715e6afdb333cb1f6d69740a7475220b4637b5ce3d78cec2/pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de", size = 2567509 },
+ { url = "https://files.pythonhosted.org/packages/c0/98/2c7d727079b6be1aba82d195767d35fcc2d32204c7a5820f822df5330152/pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84", size = 2254791 },
+ { url = "https://files.pythonhosted.org/packages/eb/38/998b04cc6f474e78b563716b20eecf42a2fa16a84589d23c8898e64b0ffd/pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b", size = 3150854 },
+ { url = "https://files.pythonhosted.org/packages/13/8e/be23a96292113c6cb26b2aa3c8b3681ec62b44ed5c2bd0b258bd59503d3c/pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003", size = 2982369 },
+ { url = "https://files.pythonhosted.org/packages/97/8a/3db4eaabb7a2ae8203cd3a332a005e4aba00067fc514aaaf3e9721be31f1/pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2", size = 4333703 },
+ { url = "https://files.pythonhosted.org/packages/28/ac/629ffc84ff67b9228fe87a97272ab125bbd4dc462745f35f192d37b822f1/pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a", size = 4412550 },
+ { url = "https://files.pythonhosted.org/packages/d6/07/a505921d36bb2df6868806eaf56ef58699c16c388e378b0dcdb6e5b2fb36/pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8", size = 4461038 },
+ { url = "https://files.pythonhosted.org/packages/d6/b9/fb620dd47fc7cc9678af8f8bd8c772034ca4977237049287e99dda360b66/pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8", size = 2253197 },
+ { url = "https://files.pythonhosted.org/packages/df/86/25dde85c06c89d7fc5db17940f07aae0a56ac69aa9ccb5eb0f09798862a8/pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904", size = 2572169 },
+ { url = "https://files.pythonhosted.org/packages/51/85/9c33f2517add612e17f3381aee7c4072779130c634921a756c97bc29fb49/pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3", size = 2256828 },
+ { url = "https://files.pythonhosted.org/packages/36/57/42a4dd825eab762ba9e690d696d894ba366e06791936056e26e099398cda/pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2", size = 3119239 },
+ { url = "https://files.pythonhosted.org/packages/98/f7/25f9f9e368226a1d6cf3507081a1a7944eddd3ca7821023377043f5a83c8/pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2", size = 2950803 },
+ { url = "https://files.pythonhosted.org/packages/59/01/98ead48a6c2e31e6185d4c16c978a67fe3ccb5da5c2ff2ba8475379bb693/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b", size = 3281098 },
+ { url = "https://files.pythonhosted.org/packages/51/c0/570255b2866a0e4d500a14f950803a2ec273bac7badc43320120b9262450/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2", size = 3323665 },
+ { url = "https://files.pythonhosted.org/packages/0e/75/689b4ec0483c42bfc7d1aacd32ade7a226db4f4fac57c6fdcdf90c0731e3/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830", size = 3310533 },
+ { url = "https://files.pythonhosted.org/packages/3d/30/38bd6149cf53da1db4bad304c543ade775d225961c4310f30425995cb9ec/pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734", size = 3414886 },
+ { url = "https://files.pythonhosted.org/packages/ec/3d/c32a51d848401bd94cabb8767a39621496491ee7cd5199856b77da9b18ad/pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316", size = 2567508 },
+]
+
+[[package]]
+name = "pycparser"
+version = "2.22"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 },
+]
+
+[[package]]
+name = "pydantic"
+version = "2.9.2"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "annotated-types" },
+ { name = "pydantic-core" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/a9/b7/d9e3f12af310e1120c21603644a1cd86f59060e040ec5c3a80b8f05fae30/pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f", size = 769917 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/df/e4/ba44652d562cbf0bf320e0f3810206149c8a4e99cdbf66da82e97ab53a15/pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12", size = 434928 },
+]
+
+[[package]]
+name = "pydantic-core"
+version = "2.23.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/e2/aa/6b6a9b9f8537b872f552ddd46dd3da230367754b6f707b8e1e963f515ea3/pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863", size = 402156 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/5c/8b/d3ae387f66277bd8104096d6ec0a145f4baa2966ebb2cad746c0920c9526/pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b", size = 1867835 },
+ { url = "https://files.pythonhosted.org/packages/46/76/f68272e4c3a7df8777798282c5e47d508274917f29992d84e1898f8908c7/pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166", size = 1776689 },
+ { url = "https://files.pythonhosted.org/packages/cc/69/5f945b4416f42ea3f3bc9d2aaec66c76084a6ff4ff27555bf9415ab43189/pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb", size = 1800748 },
+ { url = "https://files.pythonhosted.org/packages/50/ab/891a7b0054bcc297fb02d44d05c50e68154e31788f2d9d41d0b72c89fdf7/pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916", size = 1806469 },
+ { url = "https://files.pythonhosted.org/packages/31/7c/6e3fa122075d78f277a8431c4c608f061881b76c2b7faca01d317ee39b5d/pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07", size = 2002246 },
+ { url = "https://files.pythonhosted.org/packages/ad/6f/22d5692b7ab63fc4acbc74de6ff61d185804a83160adba5e6cc6068e1128/pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232", size = 2659404 },
+ { url = "https://files.pythonhosted.org/packages/11/ac/1e647dc1121c028b691028fa61a4e7477e6aeb5132628fde41dd34c1671f/pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2", size = 2053940 },
+ { url = "https://files.pythonhosted.org/packages/91/75/984740c17f12c3ce18b5a2fcc4bdceb785cce7df1511a4ce89bca17c7e2d/pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f", size = 1921437 },
+ { url = "https://files.pythonhosted.org/packages/a0/74/13c5f606b64d93f0721e7768cd3e8b2102164866c207b8cd6f90bb15d24f/pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3", size = 1966129 },
+ { url = "https://files.pythonhosted.org/packages/18/03/9c4aa5919457c7b57a016c1ab513b1a926ed9b2bb7915bf8e506bf65c34b/pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071", size = 2110908 },
+ { url = "https://files.pythonhosted.org/packages/92/2c/053d33f029c5dc65e5cf44ff03ceeefb7cce908f8f3cca9265e7f9b540c8/pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119", size = 1735278 },
+ { url = "https://files.pythonhosted.org/packages/de/81/7dfe464eca78d76d31dd661b04b5f2036ec72ea8848dd87ab7375e185c23/pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f", size = 1917453 },
+ { url = "https://files.pythonhosted.org/packages/5d/30/890a583cd3f2be27ecf32b479d5d615710bb926d92da03e3f7838ff3e58b/pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8", size = 1865160 },
+ { url = "https://files.pythonhosted.org/packages/1d/9a/b634442e1253bc6889c87afe8bb59447f106ee042140bd57680b3b113ec7/pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d", size = 1776777 },
+ { url = "https://files.pythonhosted.org/packages/75/9a/7816295124a6b08c24c96f9ce73085032d8bcbaf7e5a781cd41aa910c891/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e", size = 1799244 },
+ { url = "https://files.pythonhosted.org/packages/a9/8f/89c1405176903e567c5f99ec53387449e62f1121894aa9fc2c4fdc51a59b/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607", size = 1805307 },
+ { url = "https://files.pythonhosted.org/packages/d5/a5/1a194447d0da1ef492e3470680c66048fef56fc1f1a25cafbea4bc1d1c48/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd", size = 2000663 },
+ { url = "https://files.pythonhosted.org/packages/13/a5/1df8541651de4455e7d587cf556201b4f7997191e110bca3b589218745a5/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea", size = 2655941 },
+ { url = "https://files.pythonhosted.org/packages/44/31/a3899b5ce02c4316865e390107f145089876dff7e1dfc770a231d836aed8/pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e", size = 2052105 },
+ { url = "https://files.pythonhosted.org/packages/1b/aa/98e190f8745d5ec831f6d5449344c48c0627ac5fed4e5340a44b74878f8e/pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b", size = 1919967 },
+ { url = "https://files.pythonhosted.org/packages/ae/35/b6e00b6abb2acfee3e8f85558c02a0822e9a8b2f2d812ea8b9079b118ba0/pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0", size = 1964291 },
+ { url = "https://files.pythonhosted.org/packages/13/46/7bee6d32b69191cd649bbbd2361af79c472d72cb29bb2024f0b6e350ba06/pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64", size = 2109666 },
+ { url = "https://files.pythonhosted.org/packages/39/ef/7b34f1b122a81b68ed0a7d0e564da9ccdc9a2924c8d6c6b5b11fa3a56970/pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f", size = 1732940 },
+ { url = "https://files.pythonhosted.org/packages/2f/76/37b7e76c645843ff46c1d73e046207311ef298d3f7b2f7d8f6ac60113071/pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3", size = 1916804 },
+ { url = "https://files.pythonhosted.org/packages/74/7b/8e315f80666194b354966ec84b7d567da77ad927ed6323db4006cf915f3f/pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231", size = 1856459 },
+ { url = "https://files.pythonhosted.org/packages/14/de/866bdce10ed808323d437612aca1ec9971b981e1c52e5e42ad9b8e17a6f6/pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee", size = 1770007 },
+ { url = "https://files.pythonhosted.org/packages/dc/69/8edd5c3cd48bb833a3f7ef9b81d7666ccddd3c9a635225214e044b6e8281/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87", size = 1790245 },
+ { url = "https://files.pythonhosted.org/packages/80/33/9c24334e3af796ce80d2274940aae38dd4e5676298b4398eff103a79e02d/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8", size = 1801260 },
+ { url = "https://files.pythonhosted.org/packages/a5/6f/e9567fd90104b79b101ca9d120219644d3314962caa7948dd8b965e9f83e/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327", size = 1996872 },
+ { url = "https://files.pythonhosted.org/packages/2d/ad/b5f0fe9e6cfee915dd144edbd10b6e9c9c9c9d7a56b69256d124b8ac682e/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2", size = 2661617 },
+ { url = "https://files.pythonhosted.org/packages/06/c8/7d4b708f8d05a5cbfda3243aad468052c6e99de7d0937c9146c24d9f12e9/pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36", size = 2071831 },
+ { url = "https://files.pythonhosted.org/packages/89/4d/3079d00c47f22c9a9a8220db088b309ad6e600a73d7a69473e3a8e5e3ea3/pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126", size = 1917453 },
+ { url = "https://files.pythonhosted.org/packages/e9/88/9df5b7ce880a4703fcc2d76c8c2d8eb9f861f79d0c56f4b8f5f2607ccec8/pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e", size = 1968793 },
+ { url = "https://files.pythonhosted.org/packages/e3/b9/41f7efe80f6ce2ed3ee3c2dcfe10ab7adc1172f778cc9659509a79518c43/pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24", size = 2116872 },
+ { url = "https://files.pythonhosted.org/packages/63/08/b59b7a92e03dd25554b0436554bf23e7c29abae7cce4b1c459cd92746811/pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84", size = 1738535 },
+ { url = "https://files.pythonhosted.org/packages/88/8d/479293e4d39ab409747926eec4329de5b7129beaedc3786eca070605d07f/pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9", size = 1917992 },
+ { url = "https://files.pythonhosted.org/packages/ad/ef/16ee2df472bf0e419b6bc68c05bf0145c49247a1095e85cee1463c6a44a1/pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc", size = 1856143 },
+ { url = "https://files.pythonhosted.org/packages/da/fa/bc3dbb83605669a34a93308e297ab22be82dfb9dcf88c6cf4b4f264e0a42/pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd", size = 1770063 },
+ { url = "https://files.pythonhosted.org/packages/4e/48/e813f3bbd257a712303ebdf55c8dc46f9589ec74b384c9f652597df3288d/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05", size = 1790013 },
+ { url = "https://files.pythonhosted.org/packages/b4/e0/56eda3a37929a1d297fcab1966db8c339023bcca0b64c5a84896db3fcc5c/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d", size = 1801077 },
+ { url = "https://files.pythonhosted.org/packages/04/be/5e49376769bfbf82486da6c5c1683b891809365c20d7c7e52792ce4c71f3/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510", size = 1996782 },
+ { url = "https://files.pythonhosted.org/packages/bc/24/e3ee6c04f1d58cc15f37bcc62f32c7478ff55142b7b3e6d42ea374ea427c/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6", size = 2661375 },
+ { url = "https://files.pythonhosted.org/packages/c1/f8/11a9006de4e89d016b8de74ebb1db727dc100608bb1e6bbe9d56a3cbbcce/pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b", size = 2071635 },
+ { url = "https://files.pythonhosted.org/packages/7c/45/bdce5779b59f468bdf262a5bc9eecbae87f271c51aef628d8c073b4b4b4c/pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327", size = 1916994 },
+ { url = "https://files.pythonhosted.org/packages/d8/fa/c648308fe711ee1f88192cad6026ab4f925396d1293e8356de7e55be89b5/pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6", size = 1968877 },
+ { url = "https://files.pythonhosted.org/packages/16/16/b805c74b35607d24d37103007f899abc4880923b04929547ae68d478b7f4/pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f", size = 2116814 },
+ { url = "https://files.pythonhosted.org/packages/d1/58/5305e723d9fcdf1c5a655e6a4cc2a07128bf644ff4b1d98daf7a9dbf57da/pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769", size = 1738360 },
+ { url = "https://files.pythonhosted.org/packages/a5/ae/e14b0ff8b3f48e02394d8acd911376b7b66e164535687ef7dc24ea03072f/pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5", size = 1919411 },
+ { url = "https://files.pythonhosted.org/packages/13/a9/5d582eb3204464284611f636b55c0a7410d748ff338756323cb1ce721b96/pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5", size = 1857135 },
+ { url = "https://files.pythonhosted.org/packages/2c/57/faf36290933fe16717f97829eabfb1868182ac495f99cf0eda9f59687c9d/pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec", size = 1740583 },
+ { url = "https://files.pythonhosted.org/packages/91/7c/d99e3513dc191c4fec363aef1bf4c8af9125d8fa53af7cb97e8babef4e40/pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480", size = 1793637 },
+ { url = "https://files.pythonhosted.org/packages/29/18/812222b6d18c2d13eebbb0f7cdc170a408d9ced65794fdb86147c77e1982/pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068", size = 1941963 },
+ { url = "https://files.pythonhosted.org/packages/0f/36/c1f3642ac3f05e6bb4aec3ffc399fa3f84895d259cf5f0ce3054b7735c29/pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801", size = 1915332 },
+ { url = "https://files.pythonhosted.org/packages/f7/ca/9c0854829311fb446020ebb540ee22509731abad886d2859c855dd29b904/pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728", size = 1957926 },
+ { url = "https://files.pythonhosted.org/packages/c0/1c/7836b67c42d0cd4441fcd9fafbf6a027ad4b79b6559f80cf11f89fd83648/pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433", size = 2100342 },
+ { url = "https://files.pythonhosted.org/packages/a9/f9/b6bcaf874f410564a78908739c80861a171788ef4d4f76f5009656672dfe/pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753", size = 1920344 },
+]
+
+[[package]]
+name = "pygithub"
+version = "2.4.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "deprecated" },
+ { name = "pyjwt", extra = ["crypto"] },
+ { name = "pynacl" },
+ { name = "requests" },
+ { name = "typing-extensions" },
+ { name = "urllib3" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/f1/a0/1e8b8ca88df9857836f5bf8e3ee15dfb810d19814ef700b12f99ce11f691/pygithub-2.4.0.tar.gz", hash = "sha256:6601e22627e87bac192f1e2e39c6e6f69a43152cfb8f307cee575879320b3051", size = 3476673 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0a/f3/e185613c411757c0c18b904ea2db173f2872397eddf444a3fe8cdde47077/PyGithub-2.4.0-py3-none-any.whl", hash = "sha256:81935aa4bdc939fba98fee1cb47422c09157c56a27966476ff92775602b9ee24", size = 362599 },
+]
+
+[[package]]
+name = "pyjwt"
+version = "2.9.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/fb/68/ce067f09fca4abeca8771fe667d89cc347d1e99da3e093112ac329c6020e/pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c", size = 78825 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/79/84/0fdf9b18ba31d69877bd39c9cd6052b47f3761e9910c15de788e519f079f/PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850", size = 22344 },
+]
+
+[package.optional-dependencies]
+crypto = [
+ { name = "cryptography" },
+]
+
+[[package]]
+name = "pynacl"
+version = "1.5.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cffi" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920 },
+ { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722 },
+ { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087 },
+ { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678 },
+ { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660 },
+ { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824 },
+ { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912 },
+ { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624 },
+ { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141 },
+]
+
+[[package]]
+name = "python-dateutil"
+version = "2.9.0.post0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "six" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 },
+]
+
+[[package]]
+name = "pyyaml"
+version = "6.0.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199 },
+ { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758 },
+ { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463 },
+ { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280 },
+ { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239 },
+ { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802 },
+ { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527 },
+ { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052 },
+ { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774 },
+ { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 },
+ { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 },
+ { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 },
+ { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 },
+ { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 },
+ { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 },
+ { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 },
+ { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 },
+ { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 },
+ { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
+ { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
+ { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
+ { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
+ { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
+ { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
+ { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
+ { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
+ { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
+ { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
+ { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
+ { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
+ { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
+ { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
+ { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
+ { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
+ { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
+ { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
+]
+
+[[package]]
+name = "requests"
+version = "2.32.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "certifi" },
+ { name = "charset-normalizer" },
+ { name = "idna" },
+ { name = "urllib3" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 },
+]
+
+[[package]]
+name = "requests-oauthlib"
+version = "2.0.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "oauthlib" },
+ { name = "requests" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/42/f2/05f29bc3913aea15eb670be136045bf5c5bbf4b99ecb839da9b422bb2c85/requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9", size = 55650 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179 },
+]
+
+[[package]]
+name = "requests-toolbelt"
+version = "1.0.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "requests" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481 },
+]
+
+[[package]]
+name = "shrub-py"
+version = "3.3.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "croniter" },
+ { name = "pydantic" },
+ { name = "pyyaml" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/01/d7/b0c4ec5dca91e620926372f1363bbfcf5432b9579e6b8b9c8dd77e597b1a/shrub_py-3.3.1.tar.gz", hash = "sha256:dddf11e7362e176ddccb0e90c3938e7863f57cae70cb878c90680e8c77521fef", size = 33474 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/db/a3/03e3e9a4a1697d330b0001246a6ce39a6f27ce1f232933f8406918df893c/shrub_py-3.3.1-py3-none-any.whl", hash = "sha256:0190deecca05800b9fa7a2d56e368c9411043719c4dc1468df9feadee720b63e", size = 39954 },
+]
+
+[[package]]
+name = "six"
+version = "1.16.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 },
+]
+
+[[package]]
+name = "smmap"
+version = "5.0.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/88/04/b5bf6d21dc4041000ccba7eb17dd3055feb237e7ffc2c20d3fae3af62baa/smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62", size = 22291 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a7/a5/10f97f73544edcdef54409f1d839f6049a0d79df68adbc1ceb24d1aaca42/smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da", size = 24282 },
+]
+
+[[package]]
+name = "soupsieve"
+version = "2.6"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186 },
+]
+
+[[package]]
+name = "typing-extensions"
+version = "4.12.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 },
+]
+
+[[package]]
+name = "urllib3"
+version = "2.2.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", size = 300677 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 },
+]
+
+[[package]]
+name = "wrapt"
+version = "1.16.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/95/4c/063a912e20bcef7124e0df97282a8af3ff3e4b603ce84c481d6d7346be0a/wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d", size = 53972 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a8/c6/5375258add3777494671d8cec27cdf5402abd91016dee24aa2972c61fedf/wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4", size = 37315 },
+ { url = "https://files.pythonhosted.org/packages/32/12/e11adfde33444986135d8881b401e4de6cbb4cced046edc6b464e6ad7547/wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020", size = 38160 },
+ { url = "https://files.pythonhosted.org/packages/70/7d/3dcc4a7e96f8d3e398450ec7703db384413f79bd6c0196e0e139055ce00f/wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440", size = 80419 },
+ { url = "https://files.pythonhosted.org/packages/d1/c4/8dfdc3c2f0b38be85c8d9fdf0011ebad2f54e40897f9549a356bebb63a97/wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487", size = 72669 },
+ { url = "https://files.pythonhosted.org/packages/49/83/b40bc1ad04a868b5b5bcec86349f06c1ee1ea7afe51dc3e46131e4f39308/wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf", size = 80271 },
+ { url = "https://files.pythonhosted.org/packages/19/d4/cd33d3a82df73a064c9b6401d14f346e1d2fb372885f0295516ec08ed2ee/wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72", size = 84748 },
+ { url = "https://files.pythonhosted.org/packages/ef/58/2fde309415b5fa98fd8f5f4a11886cbf276824c4c64d45a39da342fff6fe/wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0", size = 77522 },
+ { url = "https://files.pythonhosted.org/packages/07/44/359e4724a92369b88dbf09878a7cde7393cf3da885567ea898e5904049a3/wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136", size = 84780 },
+ { url = "https://files.pythonhosted.org/packages/88/8f/706f2fee019360cc1da652353330350c76aa5746b4e191082e45d6838faf/wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d", size = 35335 },
+ { url = "https://files.pythonhosted.org/packages/19/2b/548d23362e3002ebbfaefe649b833fa43f6ca37ac3e95472130c4b69e0b4/wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2", size = 37528 },
+ { url = "https://files.pythonhosted.org/packages/fd/03/c188ac517f402775b90d6f312955a5e53b866c964b32119f2ed76315697e/wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09", size = 37313 },
+ { url = "https://files.pythonhosted.org/packages/0f/16/ea627d7817394db04518f62934a5de59874b587b792300991b3c347ff5e0/wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d", size = 38164 },
+ { url = "https://files.pythonhosted.org/packages/7f/a7/f1212ba098f3de0fd244e2de0f8791ad2539c03bef6c05a9fcb03e45b089/wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389", size = 80890 },
+ { url = "https://files.pythonhosted.org/packages/b7/96/bb5e08b3d6db003c9ab219c487714c13a237ee7dcc572a555eaf1ce7dc82/wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060", size = 73118 },
+ { url = "https://files.pythonhosted.org/packages/6e/52/2da48b35193e39ac53cfb141467d9f259851522d0e8c87153f0ba4205fb1/wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1", size = 80746 },
+ { url = "https://files.pythonhosted.org/packages/11/fb/18ec40265ab81c0e82a934de04596b6ce972c27ba2592c8b53d5585e6bcd/wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3", size = 85668 },
+ { url = "https://files.pythonhosted.org/packages/0f/ef/0ecb1fa23145560431b970418dce575cfaec555ab08617d82eb92afc7ccf/wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956", size = 78556 },
+ { url = "https://files.pythonhosted.org/packages/25/62/cd284b2b747f175b5a96cbd8092b32e7369edab0644c45784871528eb852/wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d", size = 85712 },
+ { url = "https://files.pythonhosted.org/packages/e5/a7/47b7ff74fbadf81b696872d5ba504966591a3468f1bc86bca2f407baef68/wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362", size = 35327 },
+ { url = "https://files.pythonhosted.org/packages/cf/c3/0084351951d9579ae83a3d9e38c140371e4c6b038136909235079f2e6e78/wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89", size = 37523 },
+ { url = "https://files.pythonhosted.org/packages/92/17/224132494c1e23521868cdd57cd1e903f3b6a7ba6996b7b8f077ff8ac7fe/wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b", size = 37614 },
+ { url = "https://files.pythonhosted.org/packages/6a/d7/cfcd73e8f4858079ac59d9db1ec5a1349bc486ae8e9ba55698cc1f4a1dff/wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36", size = 38316 },
+ { url = "https://files.pythonhosted.org/packages/7e/79/5ff0a5c54bda5aec75b36453d06be4f83d5cd4932cc84b7cb2b52cee23e2/wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73", size = 86322 },
+ { url = "https://files.pythonhosted.org/packages/c4/81/e799bf5d419f422d8712108837c1d9bf6ebe3cb2a81ad94413449543a923/wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809", size = 79055 },
+ { url = "https://files.pythonhosted.org/packages/62/62/30ca2405de6a20448ee557ab2cd61ab9c5900be7cbd18a2639db595f0b98/wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b", size = 87291 },
+ { url = "https://files.pythonhosted.org/packages/49/4e/5d2f6d7b57fc9956bf06e944eb00463551f7d52fc73ca35cfc4c2cdb7aed/wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81", size = 90374 },
+ { url = "https://files.pythonhosted.org/packages/a6/9b/c2c21b44ff5b9bf14a83252a8b973fb84923764ff63db3e6dfc3895cf2e0/wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9", size = 83896 },
+ { url = "https://files.pythonhosted.org/packages/14/26/93a9fa02c6f257df54d7570dfe8011995138118d11939a4ecd82cb849613/wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c", size = 91738 },
+ { url = "https://files.pythonhosted.org/packages/a2/5b/4660897233eb2c8c4de3dc7cefed114c61bacb3c28327e64150dc44ee2f6/wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc", size = 35568 },
+ { url = "https://files.pythonhosted.org/packages/5c/cc/8297f9658506b224aa4bd71906447dea6bb0ba629861a758c28f67428b91/wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8", size = 37653 },
+ { url = "https://files.pythonhosted.org/packages/ff/21/abdedb4cdf6ff41ebf01a74087740a709e2edb146490e4d9beea054b0b7a/wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1", size = 23362 },
+]