Skip to content

[CoreSpotlight] Update bindings up to Xcode 27.0 Beta 3#26158

Open
dalexsoto wants to merge 2 commits into
xcode27.0from
dev/alex/xc27-CoreSpotlight
Open

[CoreSpotlight] Update bindings up to Xcode 27.0 Beta 3#26158
dalexsoto wants to merge 2 commits into
xcode27.0from
dev/alex/xc27-CoreSpotlight

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • bind the Xcode 27 protection-class APIs on CSSearchableIndex and the new CSSearchableIndexDescription type
  • add the protection-class-specific CSSearchableIndexDelegate callback
  • preserve shipped cross-platform CoreSpotlight surfaces until XAMCORE_5_0 and move their xtro diagnostics to compatibility ignores
  • remove the resolved CoreSpotlight xtro todo files

Validation

  • make world
  • clean xtro generation/classification
  • clean Cecil test suite
  • API compatibility verification for all four platforms
  • iOS 27, tvOS 27, macOS, and Mac Catalyst introspection coverage
  • clean app-size tests (skipped by design on beta Xcode)

Bind the Xcode 27 protection-class metadata on CSSearchableIndex, add CSSearchableIndexDescription, and expose the new delegate callback for protection-class-specific item retrieval on iOS, macOS, and Mac Catalyst.

Preserve previously shipped CoreSpotlight fields and option enums on unsupported platforms until XAMCORE_5_0, add Flags metadata to the NS_OPTIONS enums, and move the compatibility diagnostics into xtro ignore files.

Remove the resolved per-platform CoreSpotlight todo files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b96fb7cb-f82d-4cd4-9b60-a7f899f3b42d
Copilot AI review requested due to automatic review settings July 17, 2026 03:26
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 17, 2026
@dalexsoto
dalexsoto requested a review from rolfbjarne July 17, 2026 03:26

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.

Pull request overview

Updates the CoreSpotlight binding surface to match Xcode 27.0 Beta 3 additions while maintaining binary compatibility for previously shipped (but incorrect) API exposure until XAMCORE_5_0.

Changes:

  • Adds Xcode 27 protection-class APIs on CSSearchableIndex, introduces CSSearchableIndexDescription, and adds the new protection-class-specific CSSearchableIndexDelegate callback.
  • Preserves previously shipped cross-platform CoreSpotlight surfaces behind #if XAMCORE_5_0 and moves their xtro diagnostics to *.ignore for compatibility.
  • Removes resolved CoreSpotlight xtro *.todo files.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/corespotlight.cs Adds new CoreSpotlight bindings (protection class APIs, new type, new delegate callback) and guards compatibility surfaces with XAMCORE_5_0.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreSpotlight.ignore Moves resolved CoreSpotlight xtro findings to compatibility ignores (kept until XAMCORE_5_0).
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreSpotlight.ignore Moves resolved CoreSpotlight xtro findings to compatibility ignores (kept until XAMCORE_5_0).
tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreSpotlight.ignore Documents and ignores incorrectly exposed tvOS CoreSpotlight APIs kept until XAMCORE_5_0.
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreSpotlight.todo Removed resolved xtro todo entries for CoreSpotlight.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreSpotlight.todo Removed resolved xtro todo entries for CoreSpotlight.
tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreSpotlight.todo Removed resolved xtro todo entries for CoreSpotlight.

Comment thread src/corespotlight.cs Outdated
@dalexsoto
dalexsoto enabled auto-merge (squash) July 17, 2026 05:20
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

Comment thread src/corespotlight.cs Outdated
Comment thread tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreSpotlight.ignore Outdated
Comment thread tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreSpotlight.ignore Outdated
@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #7f8545a] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 195 tests passed 🎉

Tests counts

✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 15 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ linker (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 19 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. [attempt 2] Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download
⚠️ Tests on macOS Golden Gate (27): Tests skipped, incorrect beta version. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 7f8545afbc24442148642526ad78b65ea67fad9d [PR build]

Expose NSFileProtectionType on the protection-class delegate callback by supporting parameter-only BindAs in protocol and model bindings, including dynamic, static, and managed-static registrar interface metadata lookup.

Mark the previously shipped unsupported CoreSpotlight fields, enums, and consumers obsolete and hidden on affected platforms so their xtro compatibility ignores can be removed without breaking ABI.

Add bgen and registrar runtime coverage, preserve inherited BindAs native types, and update the BindAs documentation and diagnostics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b96fb7cb-f82d-4cd4-9b60-a7f899f3b42d
@dalexsoto
dalexsoto requested a review from rolfbjarne July 17, 2026 12:22
@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 4614db047206d40ea58335035230c96b7f243343 [PR build]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants