Skip to content

refactor(consul)!: replace plugin creation macros - #156

Merged
nick2781 merged 6 commits into
mainfrom
refactor/consul-construction
Oct 26, 2026
Merged

nick2781 merged 6 commits into
mainfrom
refactor/consul-construction

Conversation

@nick2781

@nick2781 nick2781 commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Finish Consul's plugin-construction migration using plugin_base, module_base<consul_module>, a private owning factory and explicit DLL entry/exit exports. Keep all three public headers/types, interface registration key and disabled update selection. Link the generated protocol through ark::proto instead of platform-specific archive paths.

Permanent tests cover the actual factory/assembly, counted DLL lifecycle and production-library exports. Applications CI enables this optional plugin on Linux/macOS/Windows and runs these checks through check-core. Local macOS combination acceptance with the preceding Hash candidate passed 70 core/Protobuf cases and 69,951 assertions, the real assembly's 2 cases /18 assertions, controlled DLL lifecycle and actual production DSO load/export/unload checks. Full formatting, 155 CI wiring tests, seven documentation tests and 137 pages /275 references pass; actual bilingual canonical construction articles and Markdown exports were inspected.

English/Chinese guides describe the retained public headers, private factory exclusion and build conditions. These tests do not exercise a Consul service or establish protocol interoperability. Registry and hot-update design remain separate.

BREAKING CHANGE: retained implementation/plugin class layouts now use typed bases. Rebuild Consul and its consumers together; existing public request interfaces and logical header paths remain.

nick2781 and others added 6 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.
MurmurHash3 previously produced different full-block results on ordinary
MSVC and little-endian GCC/Clang. Standardize its default block
interpretation and digest bytes to little endian, replace manual
rotations with C++20 `std::rotl`, and make input/output transfers safe
for byte-aligned buffers.

Three explicit `_legacy_msvc` entries reproduce the previous MSVC
results for application migration. Existing signatures and static/member
behavior remain. English/Chinese documentation covers old/new mappings,
persisted-key dual reads/new writes and coordinated routing migration.
The built-in `consistent_hash` uses MurmurHash2 and retains its
little-endian results.

Local macOS acceptance: all 62 core cases / 69,857 assertions pass
normally and under AddressSanitizer + UndefinedBehaviorSanitizer (leak
detection disabled). Tests cover upstream SMHasher verification
constants, independently derived legacy fixtures, all seven methods,
seeds, tails, high-bit bytes, exact-size and unaligned buffers.
Documentation passes seven tests and checks 137 pages / 273 references;
actual bilingual utility articles and Markdown exports were inspected.
Real MSVC/Linux acceptance remains with fresh CI and the protected full
merge candidate.

BREAKING CHANGE: default MurmurHash3 results change for the former MSVC
block policy. Rebuild consumers and explicitly migrate affected
persisted keys/routing; use the legacy entries during migration. The
library does not migrate application data automatically.

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@nick2781
nick2781 marked this pull request as ready for review October 26, 2026 03:08
@nick2781
nick2781 added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit e40124f Oct 26, 2026
12 checks passed
@nick2781
nick2781 deleted the refactor/consul-construction branch October 26, 2026 04:17
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