Skip to content

[Network] Update bindings up to Xcode 27.0 Beta 3 - #26208

Merged
dalexsoto merged 1 commit into
xcode27.0from
dev/alex/xc27-Network
Jul 22, 2026
Merged

[Network] Update bindings up to Xcode 27.0 Beta 3#26208
dalexsoto merged 1 commit into
xcode27.0from
dev/alex/xc27-Network

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • bind nw_tcp_set_max_pacing_rate as NWTcpMetadata.SetMaximumPacingRate
  • preserve the shipped NWLinkQuality : uint ABI while queuing the native byte backing type for XAMCORE_5_0
  • marshal nw_path_get_link_quality through byte in current builds and move the unavoidable enum-size mismatch to the shared xtro ignore
  • add deterministic loopback coverage for setting and disabling the TCP pacing rate
  • remove the resolved Network todo files for iOS, tvOS, macOS, and Mac Catalyst

Validation

  • make world
  • clean all-platform xtro classification and sanity
  • clean Cecil tests: 112 passed, 4 skipped
  • iOS/tvOS 27.0 introspection: Network P/Invoke checks passed; unrelated Beta 3 runtime gaps remain in other frameworks
  • macOS introspection: 32 passed; Mac Catalyst introspection: 39 passed
  • NWTcpMetadataTest passed on iOS 27.0 and tvOS 27.0 and was correctly gated on the macOS 26.5 desktop host
  • full monotouch suites completed on all four platforms; their only non-Network failure was the existing external-network timeout in CreateResponseAuth
  • clean app-size fixture: 0 failed, 16 skipped by the beta-Xcode policy

Bind nw_tcp_set_max_pacing_rate as NWTcpMetadata.SetMaximumPacingRate with Xcode 27.0 availability, native status propagation, and deterministic loopback coverage.

Preserve the shipped NWLinkQuality uint ABI while queuing its native byte backing type for XAMCORE_5_0. Marshal nw_path_get_link_quality through byte in current builds and move the unavoidable enum-size mismatch to the shared xtro ignore.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1380a9c7-db8e-49cc-9e6b-2bdacd0791f5
Copilot AI review requested due to automatic review settings July 21, 2026 00:32
@dalexsoto dalexsoto added this to the xcode27 milestone Jul 21, 2026
@dalexsoto
dalexsoto requested a review from rolfbjarne July 21, 2026 00:33

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

This PR updates the Network.framework bindings to match Xcode 27.0 Beta 3, including a new TCP pacing-rate API, while preserving the shipped NWLinkQuality : uint ABI for existing builds and deferring the native byte backing type to XAMCORE_5_0.

Changes:

  • Add NWTcpMetadata.SetMaximumPacingRate binding for nw_tcp_set_max_pacing_rate and a loopback-based monotouch test to validate enabling/disabling pacing.
  • Preserve current NWLinkQuality : uint ABI while marshalling nw_path_get_link_quality through byte, and move the enum-size xtro mismatch to the shared Network ignore list.
  • Remove resolved xtro .todo entries for Network across iOS/tvOS/macOS/MacCatalyst.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/xtro-sharpie/api-annotations-dotnet/tvOS-Network.todo Removes resolved Network xtro todo entries for tvOS.
tests/xtro-sharpie/api-annotations-dotnet/macOS-Network.todo Removes resolved Network xtro todo entries for macOS.
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Network.todo Removes resolved Network xtro todo entries for Mac Catalyst.
tests/xtro-sharpie/api-annotations-dotnet/iOS-Network.todo Removes resolved Network xtro todo entries for iOS.
tests/xtro-sharpie/api-annotations-dotnet/common-Network.ignore Centralizes the known nw_link_quality_t enum-size mismatch with rationale for XAMCORE_5_0.
tests/monotouch-test/Network/NWTcpMetadataTest.cs Adds deterministic loopback test coverage for the new TCP pacing-rate API.
src/Network/NWTcpMetadata.cs Adds the nw_tcp_set_max_pacing_rate P/Invoke and public SetMaximumPacingRate API with platform version gating.
src/Network/NWPath.cs Marshals nw_path_get_link_quality via byte and casts to NWLinkQuality to avoid ABI coupling.
src/Network/NWEnums.cs Makes NWLinkQuality a byte only under XAMCORE_5_0, preserving current ABI otherwise.

@dalexsoto
dalexsoto enabled auto-merge (squash) July 21, 2026 01:42
@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: 34b9f4d4972752561d6769b7f1ef0fbe276e049c [PR build]

@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

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #34b9f4d] 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. 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. [attempt 4] Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 18 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 19 tests passed. [attempt 2] 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: 34b9f4d4972752561d6769b7f1ef0fbe276e049c [PR build]

@dalexsoto
dalexsoto merged commit 57c4e9e into xcode27.0 Jul 22, 2026
56 checks passed
@dalexsoto
dalexsoto deleted the dev/alex/xc27-Network branch July 22, 2026 07:49
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