Skip to content

refactor(osssdk)!: use typed plugin construction - #161

Merged
nick2781 merged 25 commits into
mainfrom
refactor/oss-sdk-construction
Oct 26, 2026
Merged

nick2781 merged 25 commits into
mainfrom
refactor/oss-sdk-construction

Conversation

@nick2781

@nick2781 nick2781 commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

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.

nick2781 and others added 25 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.
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
nick2781 changed the base branch from refactor/etcd-client-construction to main October 26, 2026 07:15
@nick2781
nick2781 marked this pull request as ready for review October 26, 2026 07:15
@nick2781
nick2781 added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit b3ca0c5 Oct 26, 2026
6 checks passed
@nick2781
nick2781 deleted the refactor/oss-sdk-construction branch October 26, 2026 07:47
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