Skip to content

chore: update C++ server-side SDK Redis Source from 2.1.19 to 2.2.2 - #123

Closed
kinyoklion wants to merge 1 commit into
mainfrom
devin/1782724564-update-cpp-redis-source
Closed

chore: update C++ server-side SDK Redis Source from 2.1.19 to 2.2.2#123
kinyoklion wants to merge 1 commit into
mainfrom
devin/1782724564-update-cpp-redis-source

Conversation

@kinyoklion

Copy link
Copy Markdown
Member

Summary

Updates the C++ Server-side SDK Redis Source dependency used in CI from 2.1.19 to 2.2.2 in .github/variables/cpp-sdk-versions.env.

Notable changes in the Redis Source between these versions:

  • 2.2.0: Updated to hiredis 1.3
  • 2.2.2: Bumped internal C++ server SDK dependency to 3.10.1

The primary C++ Server SDK dependency (sdk=3.10.1) is already at the latest stable version.

Link to Devin session: https://app.devin.ai/sessions/6147113664cc4bd6bf0d1aff7d50fbda
Requested by: @kinyoklion

Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
@kinyoklion kinyoklion self-assigned this Jun 29, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@kinyoklion kinyoklion closed this Jul 6, 2026
kinyoklion added a commit that referenced this pull request Aug 10, 2026
…DK (#124)

**Requirements**

- [ ] I have added test coverage for new or changed functionality
- [x] I have followed the repository's [pull request submission
guidelines](../blob/main/CONTRIBUTING.md#submitting-pull-requests)
- [ ] I have validated my changes against all supported platform
versions

**Related issues**

Supersedes #123 (which only updated Redis Source to 2.2.2).

**Describe the solution you've provided**

Builds and tests against current toolchain and SDK versions, without
changing what this SDK *requires*:

- `launchdarkly-server-sdk-redis.c`: removed the static `luaL_setfuncs`
Lua 5.1 shim. It was never called, and LuaJIT 2.1's `lauxlib.h` declares
`luaL_setfuncs` non-static, so the shim broke compilation there (`static
declaration of 'luaL_setfuncs' follows non-static declaration`).
`launchdarkly-server-sdk.c` has its own correctly-named
`ld_luaL_setfuncs` and is unaffected.
- CI LuaJIT matrix `luajit-2.0.5` → `luajit-2.1`.
`luarocks/gh-actions-lua` clones `--branch v2.0.5` from `luajit/luajit`
and that branch/tag no longer exists upstream (only `v2.0`, `v2.1`,
`master` remain), so those jobs failed at the *Install Lua* step.
`luajit-2.1` is LuaJIT's current rolling release. README's LuaJIT
compatibility note updated to match.
- CI / example build versions: C++ Server-side SDK `3.10.1` → `3.13.1`,
Redis Source `2.1.19` → `2.4.1` (both current latest).
- The README minimum-version table stays at `3.9.0` / `2.1.19` — the Lua
SDK still works with those; working with the latest is not the same as
requiring it.

Files changed:
- `launchdarkly-server-sdk-redis.c`
- `.github/variables/cpp-sdk-versions.env` — central version config used
by CI
- `examples/hello-haproxy/Dockerfile`,
`examples/hello-nginx/Dockerfile`, `examples/hello-debian/Dockerfile` —
default `CPP_SDK_VERSION` ARG for local builds
- `.github/workflows/ci.yml`, `.github/workflows/install-lua-sdk.yml` —
LuaJIT version built and tested
- `README.md` — LuaJIT compatibility note

**How to test it**

CI builds and tests both rockspecs on Lua 5.1/5.2/5.3 and LuaJIT 2.1
against the C++ SDK 3.13.1 / Redis Source 2.4.1 artifacts, and builds
the `hello-haproxy`, `hello-nginx`, and `hello-debian` example images.
Also verified locally on Lua 5.1: `luarocks make` of both rockspecs
against the prebuilt redis-source v2.4.1 `linux-gcc-x64-dynamic`
artifact, `test.lua` 20/20 passing, and
`examples/hello-lua-server/hello.lua` run against a real server-side SDK
key (client init, data sync, flag evaluation).

**Additional context**

No deprecated APIs are used by the examples (`clientInit`,
`makeContext`, `boolVariation`), and the C++ 3.13.1 bindings compile
without warnings.

Link to Devin session:
https://app.devin.ai/sessions/85ca4fcc915e4e38bdee004d3d493824
Requested by: @kinyoklion

Link to Devin session:
https://app.devin.ai/sessions/1a367c31818a4fa6a1d33eb65a7b2331
Requested by: @jsonbailey

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Overview**
> **CI and toolchain alignment** for current LuaJIT and C++ artifacts:
the matrix and install workflow now use **LuaJIT 2.1** instead of
`luajit-2.0.5` (upstream tag/branch no longer available), and
**`.github/variables/cpp-sdk-versions.env`** plus example Dockerfiles
default to C++ server SDK **3.13.1** and Redis Source **2.4.1**. The
README’s supported LuaJIT line is updated to **2.1**.
> 
> **LuaJIT compile fix** in `launchdarkly-server-sdk-redis.c`: drops an
unused static **`luaL_setfuncs`** Lua 5.1 shim that conflicted with
LuaJIT 2.1’s non-static declaration in `lauxlib.h`. The main SDK module
keeps its separate **`ld_luaL_setfuncs`** helper unchanged.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
501b641. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: devin-ai-integration[bot] <devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: jbailey@launchdarkly.com <accounts@sidewaysgravity.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant