Repository navigation
Prepare 3.10.281.1 with isolated SQLite and provider-aware packages - #1548
Merged
bmehta001 merged 6 commits intoOct 8, 2026
Merged
Conversation
Match installed dependency discovery to the build so Apple consumers do not silently switch SQLite or zlib providers. Preserve non-vcpkg Apple behavior and shared-package dependency isolation. Files: cmake/MSTelemetryConfig.cmake.in, tests/vcpkg/package-dependency-tests.cmake, .github/workflows/test-vcpkg.yml, docs/maintainer-onboarding.md, docs/building-with-vcpkg.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 812576a3-8932-4848-bc8b-d17af18f65f2
7 tasks done
…k conflicts Record dependency provenance before SDK discovery creates transitive targets, so static consumers reconstruct the same providers and shared consumers do not acquire private package requirements. Require caller-provided targets explicitly. Namespace bundled SQLite functions and data from the header and both amalgamations, including Windows APIs and debug globals. Keep the forced include private so minimal and full SDK SQLite coexist with application SQLite. Separate the registry promotion recipe from development-only overlay behavior: pin archives, keep required external dependencies in core, and allow TLS unions. Exercise provider metadata, missing-target errors, release promotion, and source/installed coexistence without weakening existing tests. Files changed: - .github\scripts\prepare-vcpkg-release.py - .github\workflows\test-embedding.yml - .github\workflows\test-vcpkg.yml - CMakeLists.txt - cmake\MSTelemetryConfig.cmake.in - cmake\MatsdkDependencyTargets.cmake - cmake\MatsdkSqliteNamespace.cmake - docs\building-with-vcpkg.md - docs\maintainer-onboarding.md - lib\CMakeLists.txt - tests\embedding\CMakeLists.txt - tests\package-coexistence\CMakeLists.txt - tests\package-coexistence\main.cpp - tests\package-dependencies\CMakeLists.txt - tests\vcpkg\CMakeLists.txt - tests\vcpkg\native-feature-tests.cmake - tests\vcpkg\package-dependency-tests.cmake - tests\vcpkg\test-release-port.py - tools\registry-ports\cpp-client-telemetry\portfile.cmake - tools\registry-ports\cpp-client-telemetry\vcpkg.json Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 812576a3-8932-4848-bc8b-d17af18f65f2
Regenerate the public version for SDK 3.10.280.1 and SPM 3.10.280 without changing published tags or the generator policy. Files changed: lib\include\public\Version.hpp Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 812576a3-8932-4848-bc8b-d17af18f65f2
…compatible Address microsoft/vcpkg#54342 maintainer feedback: - Remove no-exceptions from dependency features; it belongs to toolchain policy. - Remove subtractive no-logging and redundant system-sqlite/curl-openssl labels. - Remove Android curl and WinInet alternatives rather than replacing another dependent's native transport. Select Java/JNI and WinHTTP explicitly. - Remove SDK TLS features that do not select a runtime TLS backend. Keep device-id and Android runtime custom-client callback support additive. Preserve SDK source/private-overlay options and mandatory external dependencies. Reject all unsupported features during promotion and verify fixed transports for core, defaults, and retained feature unions on every supported platform. Files changed: - .github\scripts\prepare-vcpkg-release.py - .github\workflows\test-vcpkg.yml - docs\building-with-vcpkg.md - docs\maintainer-onboarding.md - tests\vcpkg\native-feature-tests.cmake - tests\vcpkg\test-release-port.py - tools\registry-ports\cpp-client-telemetry\portfile.cmake - tools\registry-ports\cpp-client-telemetry\vcpkg.json Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 812576a3-8932-4848-bc8b-d17af18f65f2
Regenerate the public SDK version and advance the corresponding SPM version to 3.10.281 without modifying published tags. Files changed: lib\include\public\Version.hpp Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 812576a3-8932-4848-bc8b-d17af18f65f2
Keep dependency discovery at package-config scope so optional SDK lookups cannot report success with missing dependencies. Use dependency kind as the single reconstruction policy and validate the exact registry feature set. Cover missing packages and bundled TLS providers, and keep documentation focused on supported behavior and actionable release steps. Files changed: - .github/scripts/prepare-vcpkg-release.py - CMakeLists.txt - cmake/MSTelemetryConfig.cmake.in - cmake/MatsdkDependencyTargets.cmake - docs/building-with-vcpkg.md - docs/maintainer-onboarding.md - tests/package-dependencies/CMakeLists.txt - tests/vcpkg/package-dependency-tests.cmake - tests/vcpkg/test-release-port.py Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 281bc9f7-c6f9-4704-babe-5f2c1360ff0f
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Cross-platform packaging, ABI isolation, and native Apple/Android behavior still require the pending platform workflows and human validation.
0 open findings
What changed in this PR
Prepares SDK 3.10.281.1 with isolated bundled SQLite symbols and provider-aware package exports, while separating the vcpkg registry recipe from the development overlay.
Changes:
- Namespaces bundled SQLite and adds coexistence coverage.
- Records and reconstructs static-package dependency providers.
- Adds a registry-specific vcpkg recipe, promotion safeguards, documentation, and CI coverage.
| File | Description |
|---|---|
tools/registry-ports/cpp-client-telemetry/vcpkg.json |
Defines the registry dependency and additive-feature graph. |
tools/registry-ports/cpp-client-telemetry/portfile.cmake |
Configures fixed platform transports and system dependencies. |
tests/vcpkg/test-release-port.py |
Tests registry recipe promotion and validation. |
tests/vcpkg/package-dependency-tests.cmake |
Exercises generated dependency configurations. |
tests/vcpkg/native-feature-tests.cmake |
Verifies registry and overlay feature mappings. |
tests/vcpkg/CMakeLists.txt |
Supports caller-provided dependency tests. |
tests/package-dependencies/CMakeLists.txt |
Provides generated-config dependency fixtures. |
tests/package-coexistence/main.cpp |
Tests private and application SQLite coexistence. |
tests/package-coexistence/CMakeLists.txt |
Builds source and installed coexistence consumers. |
tests/embedding/CMakeLists.txt |
Asserts recorded provider provenance. |
lib/include/public/Version.hpp |
Updates the SDK version to 3.10.281.1. |
lib/CMakeLists.txt |
Applies private SQLite namespacing and exports bundled archives. |
docs/maintainer-onboarding.md |
Updates registry promotion instructions. |
docs/building-with-vcpkg.md |
Documents recipe policies and dependency reconstruction. |
CMakeLists.txt |
Records resolved dependency kinds and package families. |
cmake/MSTelemetryConfig.cmake.in |
Reconstructs dependencies for installed static packages. |
cmake/MatsdkSqliteNamespace.cmake |
Generates SQLite symbol-renaming definitions. |
cmake/MatsdkDependencyTargets.cmake |
Handles package, provided, bundled, and Apple dependencies. |
.github/workflows/test-vcpkg.yml |
Adds registry and package-configuration checks. |
.github/workflows/test-embedding.yml |
Adds installed-provider and SQLite coexistence matrices. |
.github/scripts/prepare-vcpkg-release.py |
Promotes only validated registry recipes. |
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
bmehta001
enabled auto-merge (squash)
October 8, 2026 10:50
Baiju Meswani (baijumeswani)
approved these changes
Oct 8, 2026
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.
Summary
Prepare SDK release
3.10.281.1and its corresponding SPM version3.10.281.Regenerate the public version header through the existing Windows generator and
verify the same version with the Linux generator.
Expand the original Apple export fix into release-ready dependency packaging and bundled SQLite isolation. Published SDK/SPM tags remain unchanged; microsoft/vcpkg#54342 keeps its compatibility patch against the immutable older release.
MINIMALandVENDOREDSQLite with SDK-private function/data names, including Windows-only APIs and debug globals absent fromsqlite3.h. Apply the forced renaming header only to SDK-owned code and tests; do not export it to consumers.Validation
No test exclusions were added. Offline-storage runs select the relevant suites, not the entire unit suite. The existing one-second throughput test is Release-only (
NDEBUG) and passed there; Debug retains its original non-timing coverage. The generated-config fixtures exercise the actual helpers with controlled package targets; they are not native Apple builds.Maintainer review corrections
Address the five new findings on microsoft/vcpkg#54342 in the recipe that the
next release will promote:
no-exceptionsbelongs to toolchain/triplet policyno-loggingis subtractivesystem-sqliteand the likewise redundantcurl-openssllabelThe retained Android C API callback feature is genuinely additive: the Java
transport remains compiled and selected, and a custom client is installed only
when the caller supplies both callbacks at runtime. Device-ID collection adds
behavior without changing the public API. The promotion helper rejects all nine
unsupported features before replacing the destination port; Windows/Linux
promotion, feature-map, unchanged development-overlay, and existing lint checks
passed. No SDK transport implementation was changed.
These fixes are in the upstream promotion recipe; the unmerged registry PR still
needs the corrected recipe and new archive pin after the next release is published.
Native Apple/Android validation and the remaining upstream workflows must pass for this expanded head before merging. The committed registry recipe is a promotion template: the release helper must replace its version/tag/hash with the forthcoming release containing these fixes, followed by exact published-archive graph validation. Do not reuse or move the already published tags.