Skip to content

feat: scaffold libs/server-sdk-dynamodb-source#533

Merged
beekld merged 2 commits into
mainfrom
beeklimt/SDK-2361
May 14, 2026
Merged

feat: scaffold libs/server-sdk-dynamodb-source#533
beekld merged 2 commits into
mainfrom
beeklimt/SDK-2361

Conversation

@beekld
Copy link
Copy Markdown
Contributor

@beekld beekld commented May 13, 2026

Summary

Scaffolds a new libs/server-sdk-dynamodb-source library that mirrors libs/server-sdk-redis-source, plus the aws-sdk-cpp dependency wiring.

No functional code. Proves that the AWS C++ SDK builds cleanly in our CMake/CI setup.

What's in the box

  • cmake/aws-sdk-cpp.cmake — FetchContent for aws-sdk-cpp@1.11.805 with BUILD_ONLY=dynamodb, ENABLE_TESTING=OFF, and GIT_SUBMODULES_RECURSE TRUE (the SDK still uses submodules for aws-crt-cpp and the underlying AWS C runtime libs). Build pruned to aws-cpp-sdk-dynamodb + aws-cpp-sdk-core + the CRT stack — no other AWS service clients compile.
  • libs/server-sdk-dynamodb-source/ — CMake / package / Doxygen / README skeleton paralleling server-sdk-redis-source. The lone dynamodb_source.cpp references Aws::DynamoDB::DynamoDBClient inside a never-called function so the link against aws-cpp-sdk-dynamodb is exercised by this PR rather than deferred.
  • LD_BUILD_DYNAMODB_SUPPORT CMake option (default OFF) wired into the top-level CMakeLists.txt.
  • scripts/build.sh — special-cases the new target to flip LD_BUILD_DYNAMODB_SUPPORT=ON, matching the existing redis/otel pattern that the .github/actions/ci composite already uses.
  • .github/workflows/server-dynamodb.yml — build-only CI matrix on ubuntu-22.04 / macos-15 / windows-2022, so "AWS SDK builds cleanly in CI" is actually verified by this PR.
  • release-please-config.json + .release-please-manifest.json — new package registered at 0.1.0 with bump-minor-pre-major: true (matching server-sdk-otel, the only other pre-stable package).
  • .github/workflows/manual-sdk-release-artifacts.yml — new package added to the manual release options.

Out of scope (deferred to later PRs)

  • DynamoDBDataSource implementation
  • IBigSegmentStore interface + DynamoDB/Redis big-segment implementations
  • Per-package release / SLSA-provenance jobs in .github/workflows/release-please.yml — deferred until the package has functional artifacts to release.

Test plan

  • CI is green on Linux, macOS, and Windows. Linux is verified locally; Mac and Windows are first verified by CI on this PR
  • Local build sanity-check passes: cmake -G Ninja -B build -DLD_BUILD_DYNAMODB_SUPPORT=ON . then cmake --build build --target launchdarkly-cpp-server-dynamodb-source produces liblaunchdarkly-cpp-server-dynamodb-source.a.
  • Default-off check: a vanilla cmake -G Ninja -B build . produces no dynamodb or aws-sdk targets in ninja -t targets all.

Risks / things reviewers should look at

  • The aws-sdk-cpp tag pin (1.11.805) is recent.
  • AWS SDK adds noticeable cold-build time; ccache/sccache in CI will absorb subsequent runs. If this becomes a problem we can revisit pre-built artifacts later.
  • scripts/build.sh now has three "special-case" branches (redis, otel, dynamodb).

Note

Medium Risk
Introduces a new optional build path that fetches and links the AWS C++ SDK via CMake/FetchContent, which can impact build times and CI stability across platforms. Functional behavior is minimal, but release/CI plumbing changes could affect packaging if misconfigured.

Overview
Adds a new scaffold library, libs/server-sdk-dynamodb-source, with a placeholder API and CMake target (launchdarkly::server_dynamodb_source) that links against aws-sdk-cpp (DynamoDB-only) to validate dependency wiring.

Wires this component into the repo’s build and release tooling: new LD_BUILD_DYNAMODB_SUPPORT toggle in the top-level CMakeLists.txt, scripts/build.sh special-casing to enable it only for the DynamoDB targets, a dedicated CI workflow (server-dynamodb.yml) for Linux/macOS/Windows build-only checks, and updates to release-please + the manual artifact release workflow to recognize the new package at version 0.1.0.

Reviewed by Cursor Bugbot for commit b72555d. Bugbot is set up for automated code reviews on this repo. Configure here.

@beekld beekld marked this pull request as ready for review May 13, 2026 23:20
@beekld beekld requested a review from a team as a code owner May 13, 2026 23:20
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default mode and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b72555d. Configure here.

Comment thread cmake/aws-sdk-cpp.cmake Outdated
@beekld beekld merged commit df386c1 into main May 14, 2026
45 checks passed
@beekld beekld deleted the beeklimt/SDK-2361 branch May 14, 2026 17:35
@github-actions github-actions Bot mentioned this pull request May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants