Repository navigation
refactor(etcd)!: replace plugin creation macros - #160
Merged
Merged
Conversation
Replace Consul creation macros with typed bases, a private owning factory and explicit DLL entry points. Preserve interface registration, disabled updates and request behavior, and add construction/lifecycle checks with bilingual migration guidance. BREAKING CHANGE: Consul implementation and plugin class layouts change. Rebuild Consul and its consumers together; all existing public types and logical header paths remain available.
Read hash blocks and write digest bytes without alignment or aliasing assumptions. Use C++20 rotations and provide explicit legacy MSVC methods for persisted-key migration. BREAKING CHANGE: default MurmurHash3 now uses canonical little-endian blocks and output. Old MSVC IDs, shard mappings and persisted keys require an explicit migration or the matching legacy MSVC method.
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.8 to 3.1.9. - [Release notes](https://github.com/fastify/fast-uri/releases) - [Commits](fastify/fast-uri@v3.1.8...v3.1.9) --- updated-dependencies: - dependency-name: fast-uri dependency-version: 3.1.9 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]>
# Conflicts: # docs/reference/utility.md # docs/reference/utility_CN.md # src/core/hash/murmur_hash.hpp # tests/core/README.md # tests/core/README_CN.md
Use typed module and plugin bases with a private interface-returning factory and explicit entry points. Retain every public header, default plugin selection and existing Etcd request implementation. Add factory, ownership and production DSO checks to Applications acceptance. BREAKING CHANGE: etcd_client_module_impl and etcd_client_plugin have changed public class layouts. Rebuild Etcd Client and all consumers together; existing interfaces and logical header paths remain available.
Resolve the duplicated Consul history by retaining the preceding integration tree plus the exact Etcd feature delta. Preserve the independent hash-header check, codec cleanup and all typed plugin construction coverage.
Check a successful live-listener negative control, retain the exercised TCP peer across manager shutdown, and require a remote EOF or reset before stopping that peer. Check listener closure using an exact refused new connection instead of global immediate port rebinding. Keep existing endpoint ownership, manager state, main-thread callbacks and pending HTTP cancellation assertions. The original macOS CI bind conflict holder was not reproduced locally; no production shutdown or reuse-address behavior changes.
Use a private io_context, async_connect and the existing five-second deadline. Cancel and close the probe socket on expiry, return typed timed_out rather than operation_aborted, and drain connect and timer callbacks before returning. Keep all live-listener, retained-peer and owner-state assertions and the existing test timeout. Production shutdown remains unchanged.
nick2781
changed the base branch from
refactor/unused-codec-scaffolding
to
main
October 26, 2026 06:28
nick2781
marked this pull request as ready for review
October 26, 2026 06:28
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.
Finish Etcd Client's plugin-construction migration using typed module/plugin bases, a private owning factory and explicit DLL entry/exit exports. Retain all five public headers/types, logical paths, interface RTTI keys, disabled updates, current default-ON selection and existing HTTP/Etcd behavior. The existing keepalive stub is unchanged; this does not implement Registry functionality.
Permanent checks cover real assembly/factory ownership, controlled DLL lifecycle, actual production-library exports and independent public headers. Applications CI explicitly enables the plugin within its existing matrix. English/Chinese guides describe construction, optional JSON dependencies and consumer rebuilding.
Local combination
37a88f383fb1b05c51c5c99b3aae04173c9c8ce2passed 70 core/Protobuf cases /69,951 assertions, 2 Etcd assembly cases /18 assertions, actual Net and Etcd DSO checks, independent Hash headers, 156 CI contracts, clang-format 18 and Nimbus (137 pages /277 references). Actual bilingual HTML articles and Markdown were inspected. The preceding Net test repair is included. Actual Etcd service interoperability, hosted matrix and complete installed-consumer acceptance remain pending.The current head 7bba7de includes preceding queue candidate e2a2cf4. Native implementation, tests and CMake inputs are byte-identical to the previously tested local revision 37a88f3; only the already validated documentation lockfile can differ. Fresh documentation and CI policy checks passed at the current head. Final cross-platform acceptance remains subject to its own protected merge candidate.
BREAKING CHANGE: retained implementation/plugin class layouts use typed bases. Rebuild Etcd Client and all consumers together; public client/module interfaces remain unchanged.