Repository navigation
refactor(osssdk)!: use typed plugin construction - #161
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.
Retain public OSS SDK headers and types while replacing creation macros with module_base, an interface-returning private factory, plugin_base and explicit entry points. Replace the undefined deregistration call with typed owned unregistration while preserving the interface key and disabled updates. Add real-factory assembly and controlled DSO lifecycle regressions, production export checks and bilingual migration guidance. Keep the optional plugin off by default and retain its TODO capability boundary. BREAKING CHANGE: oss_sdk_module_impl and oss_sdk_plugin change public class layouts. Rebuild OSS SDK and all affected consumers together; original public header paths, types and the oss_sdk_module interface remain available.
nick2781
changed the base branch from
refactor/etcd-client-construction
to
main
October 26, 2026 07:15
nick2781
marked this pull request as ready for review
October 26, 2026 07:15
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.
The optional OSS SDK plugin still used creation macros and an undefined deregistration macro. Replace that boilerplate with typed module/plugin bases, a private interface-returning factory and explicit library entry points. Retain all three public headers/types, the interface registration key, owned destruction, disabled updates and the default-off build option. This remains a TODO scaffold, with no object-storage client or service capability.
English and Chinese plugin, build and directory guides include the construction boundary and rebuild instructions. The private factory is excluded from public mappings and installation.
Local validation at ab1a01c passed: actual factory/assembly and controlled-library lifecycle checks, production shared-library load/exports/unload, full core regressions, AddressSanitizer and UndefinedBehaviorSanitizer construction checks, clang-format 18, 156 CI contracts and Nimbus (137 pages /279 internal references). Six bilingual article pages and their Markdown exports were inspected. Leak detection, installed-consumer acceptance, other platforms and real storage services are outside that evidence. The local arknet override is distinct from CI's pinned revision; hosted acceptance remains required.
The current head 399d7de includes preceding queue candidate e69db02. Native implementation, tests and CMake inputs are byte-identical to the previously tested local revision ab1a01c; 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: oss_sdk_module_impl and oss_sdk_plugin change public class layouts. Rebuild the plugin and all affected consumers together; existing public paths, types and the oss_sdk_module interface remain available.