From ad6f1e187d35d6dc5eb9076d87a003bffeb1c665 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Wed, 30 Oct 2024 11:02:45 -0700 Subject: [PATCH 01/14] refactor: include what you use in sdk_data_set.hpp --- .../include/launchdarkly/data_model/sdk_data_set.hpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libs/internal/include/launchdarkly/data_model/sdk_data_set.hpp b/libs/internal/include/launchdarkly/data_model/sdk_data_set.hpp index 6fb24a228..0328f80be 100644 --- a/libs/internal/include/launchdarkly/data_model/sdk_data_set.hpp +++ b/libs/internal/include/launchdarkly/data_model/sdk_data_set.hpp @@ -4,10 +4,7 @@ #include #include -#include -#include - -#include +#include #include namespace launchdarkly::data_model { From f78e875409fc236804e042efb34d8ec624d32b92 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Wed, 30 Oct 2024 11:11:14 -0700 Subject: [PATCH 02/14] feat: add EvaluationResult::Prerequisites() --- .../launchdarkly/data/evaluation_result.hpp | 3 +++ libs/common/src/data/evaluation_result.cpp | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libs/common/include/launchdarkly/data/evaluation_result.hpp b/libs/common/include/launchdarkly/data/evaluation_result.hpp index 52aa598ca..220c27c30 100644 --- a/libs/common/include/launchdarkly/data/evaluation_result.hpp +++ b/libs/common/include/launchdarkly/data/evaluation_result.hpp @@ -48,6 +48,8 @@ class EvaluationResult { */ [[nodiscard]] EvaluationDetailInternal const& Detail() const; + [[nodiscard]] std::vector const& Prerequisites() const; + EvaluationResult( uint64_t version, std::optional flag_version, @@ -65,6 +67,7 @@ class EvaluationResult { std::optional> debug_events_until_date_; EvaluationDetailInternal detail_; + std::vector prerequisites_; }; std::ostream& operator<<(std::ostream& out, EvaluationResult const& result); diff --git a/libs/common/src/data/evaluation_result.cpp b/libs/common/src/data/evaluation_result.cpp index 298b49b0b..161329842 100644 --- a/libs/common/src/data/evaluation_result.cpp +++ b/libs/common/src/data/evaluation_result.cpp @@ -31,6 +31,10 @@ EvaluationDetailInternal const& EvaluationResult::Detail() const { return detail_; } +std::vector const& EvaluationResult::Prerequisites() const { + return prerequisites_; +} + EvaluationResult::EvaluationResult( uint64_t version, std::optional flag_version, @@ -59,6 +63,14 @@ std::ostream& operator<<(std::ostream& out, EvaluationResult const& result) { << std::put_time(std::gmtime(&as_time_t), "%Y-%m-%d %H:%M:%S"); } out << " detail: " << result.Detail(); + if (result.Prerequisites().size() > 0) { + out << " prerequisites: ["; + for (std::size_t i = 0; i < result.Prerequisites().size(); i++) { + out << result.Prerequisites()[i] + << (i == result.Prerequisites().size() - 1 ? "" : ", "); + } + out << "]"; + } out << "}"; return out; } @@ -69,7 +81,8 @@ bool operator==(EvaluationResult const& lhs, EvaluationResult const& rhs) { lhs.TrackEvents() == rhs.TrackEvents() && lhs.Detail() == rhs.Detail() && lhs.DebugEventsUntilDate() == rhs.DebugEventsUntilDate() && - lhs.FlagVersion() == rhs.FlagVersion(); + lhs.FlagVersion() == rhs.FlagVersion() && + lhs.Prerequisites() == rhs.Prerequisites(); } bool operator!=(EvaluationResult const& lhs, EvaluationResult const& rhs) { From 22cff6149ae6939f5448a3783508a50970f48f25 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Wed, 30 Oct 2024 11:15:02 -0700 Subject: [PATCH 03/14] feat: serialize prerequisites in EvaluationResult --- .../data_source_event_handler.cpp | 10 +++--- .../launchdarkly/data/evaluation_result.hpp | 15 +++++++-- libs/common/src/data/evaluation_result.cpp | 31 +++++++++++++++---- .../serialization/value_mapping.hpp | 5 +++ .../serialization/json_evaluation_result.cpp | 20 +++++++++--- 5 files changed, 64 insertions(+), 17 deletions(-) diff --git a/libs/client-sdk/src/data_sources/data_source_event_handler.cpp b/libs/client-sdk/src/data_sources/data_source_event_handler.cpp index 80838cf4d..3280f15dc 100644 --- a/libs/client-sdk/src/data_sources/data_source_event_handler.cpp +++ b/libs/client-sdk/src/data_sources/data_source_event_handler.cpp @@ -1,9 +1,9 @@ #include "data_source_event_handler.hpp" +#include #include #include #include -#include #include #include @@ -12,7 +12,7 @@ #include -#include "tl/expected.hpp" +#include namespace launchdarkly::client_side::data_sources { @@ -76,10 +76,10 @@ DataSourceEventHandler::DataSourceEventHandler( IDataSourceUpdateSink& handler, Logger const& logger, DataSourceStatusManager& status_manager) - : context_(context), - handler_(handler), + : handler_(handler), logger_(logger), - status_manager_(status_manager) {} + status_manager_(status_manager), + context_(context) {} DataSourceEventHandler::MessageStatus DataSourceEventHandler::HandleMessage( std::string const& type, diff --git a/libs/common/include/launchdarkly/data/evaluation_result.hpp b/libs/common/include/launchdarkly/data/evaluation_result.hpp index 220c27c30..b130f776d 100644 --- a/libs/common/include/launchdarkly/data/evaluation_result.hpp +++ b/libs/common/include/launchdarkly/data/evaluation_result.hpp @@ -48,7 +48,8 @@ class EvaluationResult { */ [[nodiscard]] EvaluationDetailInternal const& Detail() const; - [[nodiscard]] std::vector const& Prerequisites() const; + [[nodiscard]] std::optional> const& Prerequisites() + const; EvaluationResult( uint64_t version, @@ -59,6 +60,16 @@ class EvaluationResult { debug_events_until_date, EvaluationDetailInternal detail); + EvaluationResult( + uint64_t version, + std::optional flag_version, + bool track_events, + bool track_reason, + std::optional> + debug_events_until_date, + EvaluationDetailInternal detail, + std::optional> prerequisites); + private: uint64_t version_; std::optional flag_version_; @@ -67,7 +78,7 @@ class EvaluationResult { std::optional> debug_events_until_date_; EvaluationDetailInternal detail_; - std::vector prerequisites_; + std::optional> prerequisites_; }; std::ostream& operator<<(std::ostream& out, EvaluationResult const& result); diff --git a/libs/common/src/data/evaluation_result.cpp b/libs/common/src/data/evaluation_result.cpp index 161329842..bb013f678 100644 --- a/libs/common/src/data/evaluation_result.cpp +++ b/libs/common/src/data/evaluation_result.cpp @@ -31,7 +31,8 @@ EvaluationDetailInternal const& EvaluationResult::Detail() const { return detail_; } -std::vector const& EvaluationResult::Prerequisites() const { +std::optional> const& EvaluationResult::Prerequisites() + const { return prerequisites_; } @@ -43,12 +44,30 @@ EvaluationResult::EvaluationResult( std::optional> debug_events_until_date, EvaluationDetailInternal detail) + : EvaluationResult(version, + flag_version, + track_events, + track_reason, + debug_events_until_date, + std::move(detail), + {}) {} + +EvaluationResult::EvaluationResult( + uint64_t version, + std::optional flag_version, + bool track_events, + bool track_reason, + std::optional> + debug_events_until_date, + EvaluationDetailInternal detail, + std::optional> prerequisites) : version_(version), flag_version_(flag_version), track_events_(track_events), track_reason_(track_reason), debug_events_until_date_(debug_events_until_date), - detail_(std::move(detail)) {} + detail_(std::move(detail)), + prerequisites_(std::move(prerequisites)) {} std::ostream& operator<<(std::ostream& out, EvaluationResult const& result) { out << "{"; @@ -63,11 +82,11 @@ std::ostream& operator<<(std::ostream& out, EvaluationResult const& result) { << std::put_time(std::gmtime(&as_time_t), "%Y-%m-%d %H:%M:%S"); } out << " detail: " << result.Detail(); - if (result.Prerequisites().size() > 0) { + if (auto const prerequisites = result.Prerequisites()) { out << " prerequisites: ["; - for (std::size_t i = 0; i < result.Prerequisites().size(); i++) { - out << result.Prerequisites()[i] - << (i == result.Prerequisites().size() - 1 ? "" : ", "); + for (std::size_t i = 0; i < prerequisites->size(); i++) { + out << prerequisites->at(i) + << (i == prerequisites->size() - 1 ? "" : ", "); } out << "]"; } diff --git a/libs/internal/include/launchdarkly/serialization/value_mapping.hpp b/libs/internal/include/launchdarkly/serialization/value_mapping.hpp index 8bc68a5af..69ad964fe 100644 --- a/libs/internal/include/launchdarkly/serialization/value_mapping.hpp +++ b/libs/internal/include/launchdarkly/serialization/value_mapping.hpp @@ -136,6 +136,11 @@ template <> std::optional ValueAsOpt(boost::json::object::const_iterator iterator, boost::json::object::const_iterator end); +template <> +std::optional> ValueAsOpt( + boost::json::object::const_iterator iterator, + boost::json::object::const_iterator end); + template <> std::optional ValueAsOpt( boost::json::object::const_iterator iterator, diff --git a/libs/internal/src/serialization/json_evaluation_result.cpp b/libs/internal/src/serialization/json_evaluation_result.cpp index 72fdff2bd..d1429e5fd 100644 --- a/libs/internal/src/serialization/json_evaluation_result.cpp +++ b/libs/internal/src/serialization/json_evaluation_result.cpp @@ -1,7 +1,7 @@ #include +#include #include #include -#include #include #include @@ -50,6 +50,10 @@ tl::expected, JsonError> tag_invoke( std::chrono::milliseconds{value}}; }); + auto* prerequisites_iter = json_obj.find("prerequisites"); + auto prerequisites = ValueAsOpt>( + prerequisites_iter, json_obj.end()); + // Evaluation detail is directly de-serialized inline here. // This is because the shape of the evaluation detail is different // when deserializing FlagMeta. Primarily `variation` not @@ -105,7 +109,8 @@ tl::expected, JsonError> tag_invoke( track_events, track_reason, debug_events_until_date, - EvaluationDetailInternal(std::move(value), variation, std::nullopt)}; + EvaluationDetailInternal(std::move(value), variation, std::nullopt), + prerequisites}; } void tag_invoke(boost::json::value_from_tag const& unused, @@ -133,7 +138,14 @@ void tag_invoke(boost::json::value_from_tag const& unused, "debugEventsUntilDate", std::chrono::duration_cast( evaluation_result.DebugEventsUntilDate()->time_since_epoch()) - .count()); + .count()); + } + + if (auto const prerequisites = evaluation_result.Prerequisites()) { + if (!prerequisites->empty()) { + obj.emplace("prerequisites", + boost::json::value_from(prerequisites.value())); + } } auto& detail = evaluation_result.Detail(); @@ -149,4 +161,4 @@ void tag_invoke(boost::json::value_from_tag const& unused, obj.emplace("reason", reason_json); } } -} // namespace launchdarkly +} // namespace launchdarkly From 0482c4e3d487ca845cdc664e928777b9503acc54 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Wed, 30 Oct 2024 11:49:20 -0700 Subject: [PATCH 04/14] evaluate prereqs in client --- libs/client-sdk/src/client_impl.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/libs/client-sdk/src/client_impl.cpp b/libs/client-sdk/src/client_impl.cpp index d99bd72a5..a37f5fc78 100644 --- a/libs/client-sdk/src/client_impl.cpp +++ b/libs/client-sdk/src/client_impl.cpp @@ -305,6 +305,26 @@ EvaluationDetail ClientImpl::VariationInternal(FlagKey const& key, auto const& flag = *(desc->item); auto const& detail = flag.Detail(); + // The Prerequisites vector represents the evaluated prerequisites of + // this flag. We need to generate events for both this flag and its + // prerequisites (recursively), which is necessary to ensure LaunchDarkly + // analytics functions properly. + // + // We're using JsonVariation because the type of the + // prerequisite is both unknown and irrelevant to emitting the events. + // + // We're passing Value::Null() to match a server-side SDK's behavior when + // evaluating prerequisites. + // + // NOTE: if "hooks" functionality is implemented into this SDK, take care + // that evaluating prerequisites does not trigger hooks. This may require + // refactoring the code below to not use JsonVariation. + if (auto const prereqs = flag.Prerequisites()) { + for (auto const& prereq : *prereqs) { + JsonVariation(prereq, Value::Null()); + } + } + if (check_type && default_value.Type() != Value::Type::kNull && detail.Value().Type() != default_value.Type()) { auto error_reason = From 683c12d39832e1b9bb6b949f0c442928e5448bcb Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Wed, 30 Oct 2024 11:50:19 -0700 Subject: [PATCH 05/14] add contract test capability --- contract-tests/client-contract-tests/src/main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contract-tests/client-contract-tests/src/main.cpp b/contract-tests/client-contract-tests/src/main.cpp index 3c4fc4883..adebae774 100644 --- a/contract-tests/client-contract-tests/src/main.cpp +++ b/contract-tests/client-contract-tests/src/main.cpp @@ -46,7 +46,8 @@ int main(int argc, char* argv[]) { srv.add_capability("tls:verify-peer"); srv.add_capability("tls:skip-verify-peer"); srv.add_capability("tls:custom-ca"); - + srv.add_capability("client-prereq-events"); + net::signal_set signals{ioc, SIGINT, SIGTERM}; boost::asio::spawn(ioc.get_executor(), [&](auto yield) mutable { From e19f597c4bee37fde3af70801bd9408733e72f8b Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 14:47:47 +0000 Subject: [PATCH 06/14] fix: update Boost paths in client.yml to match installed version 1.87.0 Co-Authored-By: mkeeler@launchdarkly.com --- .github/workflows/client.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml index 02c2a4a43..695c56498 100644 --- a/.github/workflows/client.yml +++ b/.github/workflows/client.yml @@ -58,8 +58,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' - BOOST_LIBRARYDIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' with: cmake_target: launchdarkly-cpp-client platform_version: 2022 From db6dbe1304f0a1fbd9aae0fb81a01fbf1f0e5930 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 15:06:48 +0000 Subject: [PATCH 07/14] fix: update Boost paths in server-redis.yml and cmake.yml to match installed version 1.87.0 Co-Authored-By: mkeeler@launchdarkly.com --- .github/workflows/cmake.yml | 2 +- .github/workflows/server-redis.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index d4adf59d7..1b350783f 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -37,7 +37,7 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/cmake-test env: - BOOST_ROOT: 'C:\local\boost_1_81_0\lib64-msvc-14.3' + BOOST_ROOT: 'C:\local\boost_1_87_0\lib64-msvc-14.3' with: platform_version: 2022 toolset: msvc diff --git a/.github/workflows/server-redis.yml b/.github/workflows/server-redis.yml index 235065d87..80a0393e5 100644 --- a/.github/workflows/server-redis.yml +++ b/.github/workflows/server-redis.yml @@ -44,8 +44,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' - BOOST_LIBRARYDIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' with: cmake_target: launchdarkly-cpp-server-redis-source platform_version: 2022 From 71f33c96934b2a9919fbf7a599f30475ced0de69 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 15:13:41 +0000 Subject: [PATCH 08/14] fix: update BOOST_ROOT path in cmake.yml to match install-boost action output Co-Authored-By: mkeeler@launchdarkly.com --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 1b350783f..18c93b5b7 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -37,7 +37,7 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/cmake-test env: - BOOST_ROOT: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_ROOT: 'C:\local\boost_1_87_0' with: platform_version: 2022 toolset: msvc From 1e6e37a1f578dda17473c66e864d78a81982e6ac Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 15:15:01 +0000 Subject: [PATCH 09/14] fix: update Boost library paths in client.yml and server-redis.yml to use standard lib directory Co-Authored-By: mkeeler@launchdarkly.com --- .github/workflows/client.yml | 4 ++-- .github/workflows/server-redis.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml index 695c56498..a5d4d582e 100644 --- a/.github/workflows/client.yml +++ b/.github/workflows/client.yml @@ -58,8 +58,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' - BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib' + BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib' with: cmake_target: launchdarkly-cpp-client platform_version: 2022 diff --git a/.github/workflows/server-redis.yml b/.github/workflows/server-redis.yml index 80a0393e5..8f8b9fd86 100644 --- a/.github/workflows/server-redis.yml +++ b/.github/workflows/server-redis.yml @@ -44,8 +44,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' - BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib' + BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib' with: cmake_target: launchdarkly-cpp-server-redis-source platform_version: 2022 From 6ffd22f60f24b3f6d8d6f7a9e165ff083468fb2b Mon Sep 17 00:00:00 2001 From: Matthew Keeler Date: Tue, 29 Apr 2025 16:24:35 -0400 Subject: [PATCH 10/14] Revert "fix: update Boost library paths in client.yml and server-redis.yml to use standard lib directory" This reverts commit 1e6e37a1f578dda17473c66e864d78a81982e6ac. --- .github/workflows/client.yml | 4 ++-- .github/workflows/server-redis.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml index a5d4d582e..695c56498 100644 --- a/.github/workflows/client.yml +++ b/.github/workflows/client.yml @@ -58,8 +58,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib' - BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' with: cmake_target: launchdarkly-cpp-client platform_version: 2022 diff --git a/.github/workflows/server-redis.yml b/.github/workflows/server-redis.yml index 8f8b9fd86..80a0393e5 100644 --- a/.github/workflows/server-redis.yml +++ b/.github/workflows/server-redis.yml @@ -44,8 +44,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib' - BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' with: cmake_target: launchdarkly-cpp-server-redis-source platform_version: 2022 From 05dd1dbd9c7240b1fdd9c2fd9c96cbbb5cffae1c Mon Sep 17 00:00:00 2001 From: Matthew Keeler Date: Tue, 29 Apr 2025 16:24:35 -0400 Subject: [PATCH 11/14] Revert "fix: update BOOST_ROOT path in cmake.yml to match install-boost action output" This reverts commit 71f33c96934b2a9919fbf7a599f30475ced0de69. --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 18c93b5b7..1b350783f 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -37,7 +37,7 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/cmake-test env: - BOOST_ROOT: 'C:\local\boost_1_87_0' + BOOST_ROOT: 'C:\local\boost_1_87_0\lib64-msvc-14.3' with: platform_version: 2022 toolset: msvc From 8b4b9dff3f89294a406773e33c775dd881fbe4bb Mon Sep 17 00:00:00 2001 From: Matthew Keeler Date: Tue, 29 Apr 2025 16:24:35 -0400 Subject: [PATCH 12/14] Revert "fix: update Boost paths in server-redis.yml and cmake.yml to match installed version 1.87.0" This reverts commit db6dbe1304f0a1fbd9aae0fb81a01fbf1f0e5930. --- .github/workflows/cmake.yml | 2 +- .github/workflows/server-redis.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 1b350783f..d4adf59d7 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -37,7 +37,7 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/cmake-test env: - BOOST_ROOT: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_ROOT: 'C:\local\boost_1_81_0\lib64-msvc-14.3' with: platform_version: 2022 toolset: msvc diff --git a/.github/workflows/server-redis.yml b/.github/workflows/server-redis.yml index 80a0393e5..235065d87 100644 --- a/.github/workflows/server-redis.yml +++ b/.github/workflows/server-redis.yml @@ -44,8 +44,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' - BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' + BOOST_LIBRARYDIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' with: cmake_target: launchdarkly-cpp-server-redis-source platform_version: 2022 From 0fefc521083b6ee3c40dbd24ffa76ad6b07acb39 Mon Sep 17 00:00:00 2001 From: Matthew Keeler Date: Tue, 29 Apr 2025 16:24:35 -0400 Subject: [PATCH 13/14] Revert "fix: update Boost paths in client.yml to match installed version 1.87.0" This reverts commit e19f597c4bee37fde3af70801bd9408733e72f8b. --- .github/workflows/client.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml index 695c56498..02c2a4a43 100644 --- a/.github/workflows/client.yml +++ b/.github/workflows/client.yml @@ -58,8 +58,8 @@ jobs: - uses: ilammy/msvc-dev-cmd@v1 - uses: ./.github/actions/ci env: - BOOST_LIBRARY_DIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' - BOOST_LIBRARYDIR: 'C:\local\boost_1_87_0\lib64-msvc-14.3' + BOOST_LIBRARY_DIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' + BOOST_LIBRARYDIR: 'C:\local\boost_1_81_0\lib64-msvc-14.3' with: cmake_target: launchdarkly-cpp-client platform_version: 2022 From 50958e9cf01c8c9c1f9dba6ed8b51ff13e829c2f Mon Sep 17 00:00:00 2001 From: Matthew Keeler Date: Fri, 2 May 2025 12:03:30 -0400 Subject: [PATCH 14/14] run ci