From 8694d7a9a1fdd28b896383623f9fe603d2860708 Mon Sep 17 00:00:00 2001 From: Ezra Chung Date: Tue, 3 Dec 2024 10:29:13 -0600 Subject: [PATCH 1/4] Migrate from macos-1100 to macos-14-arm64 --- .../components/integration.py | 3 +- .../components/versioned_api.py | 2 +- .evergreen/config_generator/etc/distros.py | 4 +- .evergreen/generated_configs/tasks.yml | 104 +++++++++--------- .evergreen/scripts/compile.sh | 2 +- 5 files changed, 58 insertions(+), 57 deletions(-) diff --git a/.evergreen/config_generator/components/integration.py b/.evergreen/config_generator/components/integration.py index d78c005df8..7892500cde 100644 --- a/.evergreen/config_generator/components/integration.py +++ b/.evergreen/config_generator/components/integration.py @@ -34,7 +34,8 @@ ('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], [None], ['plain'], [False, True], ['5.0', 'latest'], ['single']), + ('macos-14', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['5.0', ], ['single']), + ('macos-14-arm64', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], [ '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']), diff --git a/.evergreen/config_generator/components/versioned_api.py b/.evergreen/config_generator/components/versioned_api.py index d066a6ce23..a0f7eafc60 100644 --- a/.evergreen/config_generator/components/versioned_api.py +++ b/.evergreen/config_generator/components/versioned_api.py @@ -20,7 +20,7 @@ # pylint: disable=line-too-long # fmt: off MATRIX = [ - ('macos-1100', None, ['Release'], ['shared'], [None]), + ('macos-14-arm64', None, ['Release'], ['shared'], [None]), ('ubuntu2004', None, ['Debug' ], ['shared'], [None]), ('windows-vsCurrent', 'vs2019x64', ['Debug' ], ['shared'], [None]), ] diff --git a/.evergreen/config_generator/etc/distros.py b/.evergreen/config_generator/etc/distros.py index 36cace42ab..453fe72656 100644 --- a/.evergreen/config_generator/etc/distros.py +++ b/.evergreen/config_generator/etc/distros.py @@ -57,11 +57,11 @@ def validate_os_ver(cls, value): ] MACOS_DISTROS = [ - Distro(name='macos-1100', os='macos', os_type='macos', os_ver='11.00'), + Distro(name='macos-14', os='macos', os_type='macos', os_ver='14'), ] MACOS_ARM64_DISTROS = [ - Distro(name='macos-1100-arm64', os='macos', os_type='macos', os_ver='11.00', arch='arm64'), + Distro(name='macos-14-arm64', os='macos', os_type='macos', os_ver='14', arch='arm64'), ] RHEL_DISTROS = [ diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 1398b75554..5e0409ada6 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -692,9 +692,9 @@ tasks: vars: MONGOCXX_TEST_TOPOLOGY: single USE_STATIC_LIBS: 1 - - name: integration-macos-1100-release-shared-5.0-single - run_on: macos-1100 - tags: [integration, macos-1100, release, shared, "5.0", single] + - name: integration-macos-14-arm64-release-shared-extra_alignment-latest-single + run_on: macos-14-arm64 + tags: [integration, macos-14-arm64, release, shared, extra_alignment, latest, single] commands: - command: expansions.update params: @@ -703,20 +703,23 @@ tasks: - func: setup - func: start_mongod vars: - mongodb_version: "5.0" - - func: fetch_c_driver_source + mongodb_version: latest + - func: install_c_driver + vars: + BSON_EXTRA_ALIGNMENT: 1 + SKIP_INSTALL_LIBMONGOCRYPT: 1 - func: compile vars: + BSON_EXTRA_ALIGNMENT: 1 ENABLE_TESTS: "ON" - RUN_DISTCHECK: 1 - func: fetch-det - func: run_kms_servers - func: test vars: MONGOCXX_TEST_TOPOLOGY: single - - name: integration-macos-1100-release-shared-extra_alignment-5.0-single - run_on: macos-1100 - tags: [integration, macos-1100, release, shared, extra_alignment, "5.0", single] + - name: integration-macos-14-arm64-release-shared-latest-single + run_on: macos-14-arm64 + tags: [integration, macos-14-arm64, release, shared, latest, single] commands: - command: expansions.update params: @@ -725,23 +728,20 @@ tasks: - func: setup - func: start_mongod vars: - mongodb_version: "5.0" - - func: install_c_driver - vars: - BSON_EXTRA_ALIGNMENT: 1 - SKIP_INSTALL_LIBMONGOCRYPT: 1 + mongodb_version: latest + - func: fetch_c_driver_source - func: compile vars: - BSON_EXTRA_ALIGNMENT: 1 ENABLE_TESTS: "ON" + RUN_DISTCHECK: 1 - func: fetch-det - func: run_kms_servers - func: test vars: MONGOCXX_TEST_TOPOLOGY: single - - name: integration-macos-1100-release-shared-extra_alignment-latest-single - run_on: macos-1100 - tags: [integration, macos-1100, release, shared, extra_alignment, latest, single] + - name: integration-macos-14-arm64-release-static-extra_alignment-latest-single + run_on: macos-14-arm64 + tags: [integration, macos-14-arm64, release, static, extra_alignment, latest, single] commands: - command: expansions.update params: @@ -759,14 +759,16 @@ tasks: vars: BSON_EXTRA_ALIGNMENT: 1 ENABLE_TESTS: "ON" + USE_STATIC_LIBS: 1 - func: fetch-det - func: run_kms_servers - func: test vars: MONGOCXX_TEST_TOPOLOGY: single - - name: integration-macos-1100-release-shared-latest-single - run_on: macos-1100 - tags: [integration, macos-1100, release, shared, latest, single] + USE_STATIC_LIBS: 1 + - name: integration-macos-14-arm64-release-static-latest-single + run_on: macos-14-arm64 + tags: [integration, macos-14-arm64, release, static, latest, single] commands: - command: expansions.update params: @@ -781,14 +783,16 @@ tasks: vars: ENABLE_TESTS: "ON" RUN_DISTCHECK: 1 + USE_STATIC_LIBS: 1 - func: fetch-det - func: run_kms_servers - func: test vars: MONGOCXX_TEST_TOPOLOGY: single - - name: integration-macos-1100-release-static-5.0-single - run_on: macos-1100 - tags: [integration, macos-1100, release, static, "5.0", single] + USE_STATIC_LIBS: 1 + - name: integration-macos-14-release-shared-5.0-single + run_on: macos-14 + tags: [integration, macos-14, release, shared, "5.0", single] commands: - command: expansions.update params: @@ -803,16 +807,14 @@ tasks: vars: ENABLE_TESTS: "ON" 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-extra_alignment-5.0-single - run_on: macos-1100 - tags: [integration, macos-1100, release, static, extra_alignment, "5.0", single] + - name: integration-macos-14-release-shared-extra_alignment-5.0-single + run_on: macos-14 + tags: [integration, macos-14, release, shared, extra_alignment, "5.0", single] commands: - command: expansions.update params: @@ -830,16 +832,14 @@ tasks: vars: BSON_EXTRA_ALIGNMENT: 1 ENABLE_TESTS: "ON" - 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-extra_alignment-latest-single - run_on: macos-1100 - tags: [integration, macos-1100, release, static, extra_alignment, latest, single] + - name: integration-macos-14-release-static-5.0-single + run_on: macos-14 + tags: [integration, macos-14, release, static, "5.0", single] commands: - command: expansions.update params: @@ -848,15 +848,12 @@ tasks: - func: setup - func: start_mongod vars: - mongodb_version: latest - - func: install_c_driver - vars: - BSON_EXTRA_ALIGNMENT: 1 - SKIP_INSTALL_LIBMONGOCRYPT: 1 + mongodb_version: "5.0" + - func: fetch_c_driver_source - func: compile vars: - BSON_EXTRA_ALIGNMENT: 1 ENABLE_TESTS: "ON" + RUN_DISTCHECK: 1 USE_STATIC_LIBS: 1 - func: fetch-det - func: run_kms_servers @@ -864,9 +861,9 @@ tasks: vars: MONGOCXX_TEST_TOPOLOGY: single USE_STATIC_LIBS: 1 - - name: integration-macos-1100-release-static-latest-single - run_on: macos-1100 - tags: [integration, macos-1100, release, static, latest, single] + - name: integration-macos-14-release-static-extra_alignment-5.0-single + run_on: macos-14 + tags: [integration, macos-14, release, static, extra_alignment, "5.0", single] commands: - command: expansions.update params: @@ -875,12 +872,15 @@ tasks: - func: setup - func: start_mongod vars: - mongodb_version: latest - - func: fetch_c_driver_source + mongodb_version: "5.0" + - func: install_c_driver + vars: + BSON_EXTRA_ALIGNMENT: 1 + SKIP_INSTALL_LIBMONGOCRYPT: 1 - func: compile vars: + BSON_EXTRA_ALIGNMENT: 1 ENABLE_TESTS: "ON" - RUN_DISTCHECK: 1 USE_STATIC_LIBS: 1 - func: fetch-det - func: run_kms_servers @@ -4537,9 +4537,9 @@ tasks: TEST_WITH_VALGRIND: "ON" disable_slow_tests: 1 use_mongocryptd: true - - name: versioned-api-one-required-macos-1100-release-shared - run_on: macos-1100 - tags: [versioned-api, macos-1100, release, shared] + - name: versioned-api-one-required-macos-14-arm64-release-shared + run_on: macos-14-arm64 + tags: [versioned-api, macos-14-arm64, release, shared] commands: - func: setup - func: start_mongod @@ -4608,9 +4608,9 @@ tasks: example_projects_cxx_standard: 17 generator: Visual Studio 16 2019 platform: x64 - - name: versioned-api-two-accepted-macos-1100-release-shared - run_on: macos-1100 - tags: [versioned-api, macos-1100, release, shared] + - name: versioned-api-two-accepted-macos-14-arm64-release-shared + run_on: macos-14-arm64 + tags: [versioned-api, macos-14-arm64, release, shared] commands: - func: setup - func: start_mongod diff --git a/.evergreen/scripts/compile.sh b/.evergreen/scripts/compile.sh index 684d63806b..7140429fe4 100755 --- a/.evergreen/scripts/compile.sh +++ b/.evergreen/scripts/compile.sh @@ -145,7 +145,7 @@ cygwin) ;; darwin*) cc_flags+=("${cc_flags_init[@]}") - cxx_flags+=("${cxx_flags_init[@]}" -stdlib=libc++) + cxx_flags+=("${cxx_flags_init[@]}" -stdlib=libc++ -Wno-align-mismatch) ;; linux*) cc_flags+=("${cc_flags_init[@]}") From 9246f489bc2d75f9fdb4c9e872809568d39b9e6d Mon Sep 17 00:00:00 2001 From: Ezra Chung Date: Tue, 3 Dec 2024 15:40:19 -0600 Subject: [PATCH 2/4] Restore MacOS 11 test coverage on arm64 distros --- .../components/integration.py | 2 + .evergreen/config_generator/etc/distros.py | 2 + .evergreen/generated_configs/tasks.yml | 98 +++++++++++++++++++ 3 files changed, 102 insertions(+) diff --git a/.evergreen/config_generator/components/integration.py b/.evergreen/config_generator/components/integration.py index 7892500cde..53ec01283b 100644 --- a/.evergreen/config_generator/components/integration.py +++ b/.evergreen/config_generator/components/integration.py @@ -34,6 +34,8 @@ ('debian12', None, ['Release'], ['shared', ], [ 20], [None], ['plain', ], [False, True], ['latest'], ['single', ]), ('debian12', None, ['Release'], ['shared', ], [None, ], [None], [ 'csfle'], [False, ], ['latest'], [ 'replica', 'sharded']), + ('macos-11', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['latest'], ['single']), + ('macos-14', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['5.0', ], ['single']), ('macos-14-arm64', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], [ 'latest'], ['single']), diff --git a/.evergreen/config_generator/etc/distros.py b/.evergreen/config_generator/etc/distros.py index 453fe72656..dbbea0280c 100644 --- a/.evergreen/config_generator/etc/distros.py +++ b/.evergreen/config_generator/etc/distros.py @@ -57,10 +57,12 @@ def validate_os_ver(cls, value): ] MACOS_DISTROS = [ + Distro(name='macos-11', os='macos', os_type='macos', os_ver='11'), Distro(name='macos-14', os='macos', os_type='macos', os_ver='14'), ] MACOS_ARM64_DISTROS = [ + Distro(name='macos-11-arm64', os='macos', os_type='macos', os_ver='11', arch='arm64'), Distro(name='macos-14-arm64', os='macos', os_type='macos', os_ver='14', arch='arm64'), ] diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 5e0409ada6..8a4547444e 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -692,6 +692,104 @@ tasks: vars: MONGOCXX_TEST_TOPOLOGY: single USE_STATIC_LIBS: 1 + - name: integration-macos-11-release-shared-extra_alignment-latest-single + run_on: macos-11 + tags: [integration, macos-11, 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 + ENABLE_TESTS: "ON" + - func: fetch-det + - func: run_kms_servers + - func: test + vars: + MONGOCXX_TEST_TOPOLOGY: single + - name: integration-macos-11-release-shared-latest-single + run_on: macos-11 + tags: [integration, macos-11, 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: + ENABLE_TESTS: "ON" + RUN_DISTCHECK: 1 + - func: fetch-det + - func: run_kms_servers + - func: test + vars: + MONGOCXX_TEST_TOPOLOGY: single + - name: integration-macos-11-release-static-extra_alignment-latest-single + run_on: macos-11 + tags: [integration, macos-11, 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 + ENABLE_TESTS: "ON" + 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-11-release-static-latest-single + run_on: macos-11 + tags: [integration, macos-11, 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: + ENABLE_TESTS: "ON" + 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-14-arm64-release-shared-extra_alignment-latest-single run_on: macos-14-arm64 tags: [integration, macos-14-arm64, release, shared, extra_alignment, latest, single] From 4841b6fb8030d353942b829dc05bad4f6aa330b7 Mon Sep 17 00:00:00 2001 From: Ezra Chung Date: Tue, 3 Dec 2024 15:43:47 -0600 Subject: [PATCH 3/4] CXX-3193 Add deprecation notice for MacOS 11 and MacOS 12 --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c36b274581..99bc08f433 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,9 @@ Changes prior to 3.9.0 are documented as [release notes on GitHub](https://githu ## 4.1.0 [Unreleased] - +### Deprecated + +- Support for MacOS 11 (EOL since Nov 2020) and MacOS 12 (EOL since Oct 2021). ## 4.0.0 From bea53617a45add83cdce342e5b2ec7e6127a30d4 Mon Sep 17 00:00:00 2001 From: Ezra Chung Date: Wed, 4 Dec 2024 09:36:56 -0600 Subject: [PATCH 4/4] Revert to macos-1100 --- .../components/integration.py | 2 +- .evergreen/config_generator/etc/distros.py | 2 +- .evergreen/generated_configs/tasks.yml | 24 +++++++++---------- .evergreen/scripts/compile.sh | 6 ++++- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/.evergreen/config_generator/components/integration.py b/.evergreen/config_generator/components/integration.py index 53ec01283b..673c162b1f 100644 --- a/.evergreen/config_generator/components/integration.py +++ b/.evergreen/config_generator/components/integration.py @@ -34,7 +34,7 @@ ('debian12', None, ['Release'], ['shared', ], [ 20], [None], ['plain', ], [False, True], ['latest'], ['single', ]), ('debian12', None, ['Release'], ['shared', ], [None, ], [None], [ 'csfle'], [False, ], ['latest'], [ 'replica', 'sharded']), - ('macos-11', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['latest'], ['single']), + ('macos-1100', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['latest'], ['single']), ('macos-14', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], ['5.0', ], ['single']), ('macos-14-arm64', None, ['Release'], ['shared', 'static'], [None], [None], ['plain'], [False, True], [ 'latest'], ['single']), diff --git a/.evergreen/config_generator/etc/distros.py b/.evergreen/config_generator/etc/distros.py index dbbea0280c..3111d1839a 100644 --- a/.evergreen/config_generator/etc/distros.py +++ b/.evergreen/config_generator/etc/distros.py @@ -57,7 +57,7 @@ def validate_os_ver(cls, value): ] MACOS_DISTROS = [ - Distro(name='macos-11', os='macos', os_type='macos', os_ver='11'), + Distro(name='macos-1100', os='macos', os_type='macos', os_ver='11.00'), Distro(name='macos-14', os='macos', os_type='macos', os_ver='14'), ] diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 8a4547444e..29dbf4f495 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -692,9 +692,9 @@ tasks: vars: MONGOCXX_TEST_TOPOLOGY: single USE_STATIC_LIBS: 1 - - name: integration-macos-11-release-shared-extra_alignment-latest-single - run_on: macos-11 - tags: [integration, macos-11, release, shared, extra_alignment, latest, single] + - name: integration-macos-1100-release-shared-extra_alignment-latest-single + run_on: macos-1100 + tags: [integration, macos-1100, release, shared, extra_alignment, latest, single] commands: - command: expansions.update params: @@ -717,9 +717,9 @@ tasks: - func: test vars: MONGOCXX_TEST_TOPOLOGY: single - - name: integration-macos-11-release-shared-latest-single - run_on: macos-11 - tags: [integration, macos-11, release, shared, latest, single] + - name: integration-macos-1100-release-shared-latest-single + run_on: macos-1100 + tags: [integration, macos-1100, release, shared, latest, single] commands: - command: expansions.update params: @@ -739,9 +739,9 @@ tasks: - func: test vars: MONGOCXX_TEST_TOPOLOGY: single - - name: integration-macos-11-release-static-extra_alignment-latest-single - run_on: macos-11 - tags: [integration, macos-11, release, static, extra_alignment, latest, single] + - name: integration-macos-1100-release-static-extra_alignment-latest-single + run_on: macos-1100 + tags: [integration, macos-1100, release, static, extra_alignment, latest, single] commands: - command: expansions.update params: @@ -766,9 +766,9 @@ tasks: vars: MONGOCXX_TEST_TOPOLOGY: single USE_STATIC_LIBS: 1 - - name: integration-macos-11-release-static-latest-single - run_on: macos-11 - tags: [integration, macos-11, release, static, latest, single] + - name: integration-macos-1100-release-static-latest-single + run_on: macos-1100 + tags: [integration, macos-1100, release, static, latest, single] commands: - command: expansions.update params: diff --git a/.evergreen/scripts/compile.sh b/.evergreen/scripts/compile.sh index 7140429fe4..274a7de482 100755 --- a/.evergreen/scripts/compile.sh +++ b/.evergreen/scripts/compile.sh @@ -145,7 +145,11 @@ cygwin) ;; darwin*) cc_flags+=("${cc_flags_init[@]}") - cxx_flags+=("${cxx_flags_init[@]}" -stdlib=libc++ -Wno-align-mismatch) + cxx_flags+=("${cxx_flags_init[@]}" -stdlib=libc++) + + if [[ "${distro_id:?}" == macos-14* ]]; then + cxx_flags+=(-Wno-align-mismatch) + fi ;; linux*) cc_flags+=("${cc_flags_init[@]}")