Skip to content

[FSKit] Update bindings up to Xcode 27.0 Beta 5 - #26433

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

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

Conversation

@dalexsoto

@dalexsoto dalexsoto commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

  • Add FSVolumeCommonOperations and move shared volume lifecycle APIs to the common protocol.
  • Update FSVolumeHandler to inherit the common protocol and bind the renamed activation selectors.
  • Match the beta 5 readonly mount-option APIs and macOS 26.4 availability.
  • Remove the resolved FSKit xtro todo and refresh Cecil/APICompat baselines.

Compatibility

The SDK change intentionally removes two preview setters from IFSVolumeOperations and three beta-only handler delegate types superseded by the common operation delegates. APICompat suppressions are limited to those five preview removals and apply to both stable-package and PR-to-base comparisons.

Validation

  • make world before and after the binding changes
  • Clean xtro generation/classification: sanity passed
  • Clean Cecil suite: passed
  • Stable macOS APICompat: passed
  • Exact PR-to-xcode27.0 API comparison: passed on all platforms
  • iOS 27 introspection: 44/44 passed
  • tvOS 27 introspection: 43/43 passed
  • macOS introspection: 32/32 passed, 2 expected latest-OS ignores
  • Mac Catalyst: documented TCC abort in CLLocationButton ctor coverage; all 14 non-ctor fixtures passed separately
  • Fresh-reference consumer compile confirmed IFSVolumeHandler.Mount is unambiguous
  • App-size suite: 16 expected skips because Xcode 27 is beta

Add the FSVolumeCommonOperations protocol and move the shared volume lifecycle properties and callbacks to it, matching the Xcode 27 beta 5 header.

Update FSVolumeHandler to inherit the common protocol, use the renamed activation selectors, and reuse identical callback delegate signatures for redeclared common operations.

Match the readonly mount-option APIs and macOS 26.4 availability, remove the resolved xtro todo, refresh the Cecil documentation baseline, and suppress the two intentional preview API setter removals.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74881862-20a2-4b86-a504-66105e623682
@dalexsoto
dalexsoto requested a review from rolfbjarne as a code owner August 12, 2026 00:37
@dalexsoto dalexsoto added this to the xcode27 milestone Aug 12, 2026
Copilot AI lite review requested due to automatic review settings August 12, 2026 00:37

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 FSKit bindings to align with Xcode 27.0 Beta 5, including protocol refactoring for shared volume lifecycle APIs and corresponding baseline/test-data refreshes.

Changes:

  • Introduces FSVolumeCommonOperations and moves shared volume lifecycle members from FSVolumeOperations/FSVolumeHandler into the common protocol, including renamed activation selectors.
  • Updates mount-option APIs to match beta 5 (readonly + macOS 26.4 availability) and adjusts delegate/signature usage accordingly.
  • Refreshes APICompat suppressions and removes the resolved FSKit xtro todo entry; updates Cecil documentation known-failures list.

Reviewed changes

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

File Description
tools/apidiff/suppression-files/macOS.xml Adds APICompat suppressions for the intentional removal of two preview setters.
tests/xtro-sharpie/api-annotations-dotnet/macOS-FSKit.todo Removes resolved xtro todo entries now that FSKit bindings match the SDK.
tests/cecil-tests/Documentation.KnownFailures.txt Updates known-failures list to reflect the new IFSVolumeCommonOperations surface and signature adjustments.
src/fskit.cs Refactors FSKit volume protocols by introducing FSVolumeCommonOperations, updating FSVolumeHandler inheritance/selectors, and adjusting mount options availability/readonly semantics.

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

Comment thread src/fskit.cs
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

Add path-independent APICompat suppressions for the Xcode 27 preview delegate removals and the two readonly property changes.

Document why the suppressions must omit assembly paths so they apply to both stable-package and PR-to-base comparisons.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 74881862-20a2-4b86-a504-66105e623682
@vs-mobiletools-engineering-service2

This comment has been minimized.

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@vs-mobiletools-engineering-service2

This comment has been minimized.

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@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: d0131c28fdd6e6107db5df5c7c13a9d613367e5e [PR build]

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@dalexsoto dalexsoto added the ready-to-review This PR is ready to review/merge. label Aug 12, 2026
@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@vs-mobiletools-engineering-service2

This comment has been minimized.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@vs-mobiletools-engineering-service2

This comment has been minimized.

@dalexsoto

Copy link
Copy Markdown
Member Author

/azp run xamarin-macios-sim-pr-tests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #d0131c2] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 196 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. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. 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 20 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. 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: d0131c28fdd6e6107db5df5c7c13a9d613367e5e [PR build]

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

Labels

copilot ready-to-review This PR is ready to review/merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants