Skip to content

refactor(etcd)!: replace plugin creation macros - #160

Merged
nick2781 merged 24 commits into
mainfrom
refactor/etcd-client-construction
Oct 26, 2026
Merged

nick2781 merged 24 commits into
mainfrom
refactor/etcd-client-construction

Conversation

@nick2781

@nick2781 nick2781 commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

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 37a88f383fb1b05c51c5c99b3aae04173c9c8ce2 passed 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.

nick2781 and others added 23 commits October 26, 2026 09:25
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
nick2781 changed the base branch from refactor/unused-codec-scaffolding to main October 26, 2026 06:28
@nick2781
nick2781 marked this pull request as ready for review October 26, 2026 06:28
@nick2781
nick2781 added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit e69db02 Oct 26, 2026
6 checks passed
@nick2781
nick2781 deleted the refactor/etcd-client-construction branch October 26, 2026 07:24
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.

1 participant