Repository navigation
refactor(consul)!: replace plugin creation macros - #156
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.
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>
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 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 throughark::protoinstead 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.