Skip to content

Prepare manual vcpkg release updates for minimal SQLite and Android curl - #1545

Merged
bmehta001 merged 7 commits into
microsoft:mainfrom
bmehta001:fix/vcpkg-release-features
Oct 5, 2026
Merged

bmehta001 merged 7 commits into
microsoft:mainfrom
bmehta001:fix/vcpkg-release-features

Conversation

@bmehta001

@bmehta001 bmehta001 commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Why

The SDK overlay already declares minimal-sqlite and android-curl-openssl, but the official vcpkg port does not expose them. A version-only registry bump would leave its manifest and feature wiring behind. Prepare the complete port manually after the next SDK release rather than requiring a personal token for release-triggered PR automation.

Changes

  • Remove the automated vcpkg-release-bump.yml workflow and its PAT/fork configuration requirements.
  • Promote the complete overlay port from the release tag using a manual helper, including its manifest, CMake wiring, and any patches, before updating the release version and archive hash. Remove obsolete port files and reset port-version.
  • Add a token-free preparation helper for the manual vcpkg PR after the next SDK release. Validate the required features, release metadata, and destination before replacing the registry port.
  • Resolve the destination and require both .vcpkg-root and scripts/buildsystems/vcpkg.cmake in its checkout before destructive replacement; reject lookalike non-vcpkg paths without modifying their files.
  • Preserve the default consumer graph while adding Linux minimal-SQLite coverage and Android default, minimal-SQLite Java/JNI, minimal-SQLite curl/OpenSSL, and minimal-SQLite curl/mbedTLS build variants.
  • Document current registry feature availability and the manual release promotion procedure in both the vcpkg guide and maintainer onboarding.

This PR does not cut a release, change the currently published registry port, configure a release token, or open a vcpkg PR. Merge it before cutting the next SDK release; the subsequent registry PR can then expose these features with matching released source.

Validation

  • Nine release-port regression tests pass on Windows and Linux/WSL, with no skipped or excluded tests, including destination checkout-marker and lookalike-path safety cases.
  • The remaining modified workflow passes actionlint; shell syntax checks and the repository's misspell check pass for the changed documentation and scripts.
  • The consumer manifest is formatted using vcpkg format-manifest.
  • Full Linux/Android port builds are covered by the expanded PR CI matrix; they were not run locally.

Carry feature declarations and build wiring from the release tag instead of only changing the registry version and hash. Keep a token-free helper for manual registry updates and exercise opt-in dependency graphs in CI.

Files changed:
.github/scripts/prepare-vcpkg-release.py
.github/workflows/test-vcpkg.yml
.github/workflows/vcpkg-release-bump.yml
docs/building-with-vcpkg.md
tests/vcpkg/test-release-port.py
tests/vcpkg/test-vcpkg-android.sh
tests/vcpkg/test-vcpkg-linux.sh
tests/vcpkg/vcpkg.json

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bmehta001
bmehta001 requested a review from a team as a code owner October 5, 2026 10:25
@bmehta001 bmehta001 self-assigned this Oct 5, 2026
Keep downstream registry PRs manual so releasing the SDK does not require a maintainer PAT in repository automation. Retain the local port preparation helper and document the complete manual promotion and version-database sequence.

Files changed:
.github/workflows/vcpkg-release-bump.yml (removed)
docs/building-with-vcpkg.md
docs/maintainer-onboarding.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bd3ff552-cbf8-4164-bc50-3c26778f76de
@bmehta001 bmehta001 changed the title Carry minimal SQLite and Android curl features into release port updates Prepare manual vcpkg release updates for minimal SQLite and Android curl Oct 5, 2026
bmehta001 and others added 2 commits October 5, 2026 05:52
Preserve the modules and Collector team additions while distinguishing reviewed submodule pins from moving HEADs. Align both guides with manual port preparation and prevent local overlay tests from being mistaken for published-archive validation.

Files changed:
docs/maintainer-onboarding.md
docs/building-with-vcpkg.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bd3ff552-cbf8-4164-bc50-3c26778f76de

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The destructive helper does not sufficiently verify that its destination belongs to a vcpkg checkout.

Review effort: Balanced
Findings: 1 High severity

Open (1)
What changed in this PR

Replaces automated vcpkg release bumps with a manual promotion process and expands feature-specific CI coverage.

Changes:

  • Adds a release-port preparation helper and regression tests.
  • Tests minimal SQLite and Android curl variants in CI.
  • Documents the manual vcpkg publication process.
File Description
.github/​scripts/​prepare-vcpkg-release.py Adds the port promotion helper.
.github/​workflows/​test-vcpkg.yml Expands vcpkg CI coverage.
.github/​workflows/​vcpkg-release-bump.yml Removes automated release bumps.
docs/​building-with-vcpkg.md Documents manual port promotion.
docs/​maintainer-onboarding.md Updates release and onboarding guidance.
tests/​vcpkg/​test-release-port.py Tests port promotion behavior.
tests/​vcpkg/​test-vcpkg-android.sh Supports Android feature variants.
tests/​vcpkg/​test-vcpkg-linux.sh Supports minimal-SQLite testing.
tests/​vcpkg/​vcpkg.json Defines selectable consumer test features.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/scripts/prepare-vcpkg-release.py
Address comment 4187592749: resolve the destination before checking its layout and require real vcpkg checkout markers before deleting the existing port. Add regressions for lookalike projects, either missing marker, and normalized destination paths.

Verified at .github/scripts/prepare-vcpkg-release.py:15-33 and tests/vcpkg/test-release-port.py:113-143. Confirmed .vcpkg-root and scripts/buildsystems/vcpkg.cmake exist in microsoft/vcpkg.

Files changed:
.github/scripts/prepare-vcpkg-release.py
tests/vcpkg/test-release-port.py
docs/building-with-vcpkg.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bd3ff552-cbf8-4164-bc50-3c26778f76de
@bmehta001
bmehta001 requested a balanced review from Copilot October 5, 2026 20:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The implementation and coverage are coherent, with only a non-blocking error-message wording issue.

Review effort: Balanced
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Low severity Clarify SHA-512 value as 128-character hexadecimal

.github/​scripts/​prepare-vcpkg-release.py:14

The validation accepts hexadecimal letters (a–f), so describing the value as “128-digit” is misleading when invalid input is reported. Call it a 128-character hexadecimal SHA512 instead.

Replace the misleading 128-digit diagnostic because the accepted hash alphabet includes a-f. Add regression coverage for the exact message on short, long, and non-hexadecimal input without changing validation behavior.

Files changed:
.github/scripts/prepare-vcpkg-release.py
tests/vcpkg/test-release-port.py

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bd3ff552-cbf8-4164-bc50-3c26778f76de
@bmehta001
bmehta001 enabled auto-merge (squash) October 5, 2026 23:15
@bmehta001
bmehta001 merged commit b2f3211 into microsoft:main Oct 5, 2026
59 checks passed
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.

3 participants