feat(pkg): add compat.hiredis@1.2.0 + compat.redis-plus-plus (1.3.3 & 1.3.13) - #188
Merged
Merged
Conversation
…-list union One descriptor now serves both sides of the 1.3.6 source-structure watershed: 1.3.13 (17 sync TUs) and 1.3.3 (15 TUs, no redis_uri.cpp/redlock.cpp, no hiredis_features.h). The union works because 1.3.3's TUs are a strict subset of 1.3.13's, so exactly two source globs match nothing there (a warning, not an error — same premise as compat.catch2's disjoint union). New member tests/examples/redis-plus-plus-v133 pins 1.3.3; both members pass the same offline RESP round-trip test under mcpp 2026.8.8.2.
…_t' under vendored gcc/libstdc++ 1.3.3's utils.h declares uint16_t crc16(...) without including <cstdint> (upstream added it in 1.3.6+). clang's libc++ pulls it in transitively, but the linux-default (gcc, vendored libstdc++) CI leg does not: 'uint16_t' does not name a type. Package cxxflags -include cstdint fixes the package build on every leg (harmless for 1.3.13, which includes it itself), and the v133 member's [build] cxxflags covers its test TU (which includes <sw/redis++/redis++.h> first). Caught by CI: workspace linux default 0/1.
…me initial, not the short name The repository rule is pkgs/<x>/<name>.lua with <x> = initial of the FULL package name (compat.* → c, docs/repository-and-schema.md). compat.redis-plus-plus was wrongly placed in pkgs/r/ (short-name initial); the compat namespace belongs in pkgs/c/ next to compat.hiredis. Resolution is path-independent, so this is purely the directory convention — README links, the member comment and the design doc updated in lock-step.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
新增两个 compat 包:Redis C/C++ 客户端
包与版本
compat.hiredishiredis_sources原样)compat.redis-plus-plushiredis_features.h快照)版本选型:经典、泛用优先,不追最新。hiredis 1.2.0 是 Debian 12 / Ubuntu 24.04 稳定版在用的版本(也是 vcpkg 长期默认);redis-plus-plus 1.3.13 是 2025 快速迭代前的长期稳定版。
关键设计
hiredis/前缀:tarball 头文件平铺,而消费方(redis-plus-plus 源码)写#include <hiredis/hiredis.h>;用generated_files薄包装头(尖括号转引真实头)对齐上游安装布局,先例:compat.opengl的GL/gl.h。redis_uri.cpp/patterns/redlock.cpp,无hiredis_features.h)与 1.3.13(现代 17-TU 结构)共享同一份sources—— 1.3.3 的 TU 是 1.3.13 的严格子集,恰好两个 glob 零命中(警告非错误)。同款前提见compat.catch2的并集说明。compat.hiredis。测试
redis-plus-plus(钉 1.3.13)与redis-plus-plus-v133(钉 1.3.3):进程内跑迷你 RESP server(PING→+PONG、SET→+OK),离线全链路断言(跨平台 socket 抽象同 websocket 成员)。test result ok,输出OK: PING -> PONG, SET -> OK。验证
mcpp xpkg parse(钉版)、check_mirror_urls.lua、check_package_name.lua、check_cross_package_refs.lua、check_platform_version_parity.lua。说明
mcpp-res写权限,url 用纯字符串上游 release(先例compat.spdlog),可由维护者后续补{ GLOBAL, CN }。-DNOMINMAX/ws2_32/crypt32按上游 CMake 与 c-ares 先例写入,本机无法实证,待 CI 三平台确认。.agents/docs/2026-08-09-add-redis-plus-plus-plan.md。