Skip to content

[CoreGraphics] Update bindings up to Xcode 27.0 Beta 5 - #26436

Open
dalexsoto wants to merge 1 commit into
xcode27.0from
dev/alex/xc27-CoreGraphics
Open

[CoreGraphics] Update bindings up to Xcode 27.0 Beta 5#26436
dalexsoto wants to merge 1 commit into
xcode27.0from
dev/alex/xc27-CoreGraphics

Conversation

@dalexsoto

Copy link
Copy Markdown
Member

Summary

  • Bind the Xcode 27 tagged-PDF authoring APIs with managed CGPDFStructureElement and CGPDFMarkedContentItem wrappers.
  • Add the new CGContextPDF structure-tree, marked-content, and object-reference operations.
  • Add CGPdfTagType.Artifact with exact iOS, macOS, Mac Catalyst, and tvOS availability.
  • Add runtime coverage and remove the resolved CoreGraphics xtro todo files.

Validation

  • make world
  • Clean xtro generation/classification: sanity passed on all platforms.
  • Clean cecil suite: passed.
  • Introspection:
    • iOS 27 simulator: 44/44 passed.
    • tvOS 27 simulator: 43/43 passed.
    • macOS 26.6 host: 32/32 passed, 2 expected latest-OS-only tests ignored.
    • Mac Catalyst: the full run hit the documented headless TCC crash in iOSApiCtorInitTest/CLLocationButton; all fixtures before it and every remaining fixture run individually passed.
  • Monotouch:
    • iOS and tvOS full app runs completed successfully.
    • New iOS 27 CoreGraphics fixtures: 4/4 passed.
    • macOS completed with 4 unrelated environment-sensitive failures (3 AudioUnit callback-count tests and one HTTP 403 authentication test).
    • Mac Catalyst completed with one unrelated HTTP 403 authentication failure.
  • Clean AppSizeTest: 0 failures; all 16 cases were intentionally skipped by the existing beta-Xcode policy.

Bind the new tagged-PDF authoring APIs, including CGPDFStructureElement and CGPDFMarkedContentItem lifetime management, CGContextPDF structure and marked-content operations, and CGPdfTagType.Artifact with exact platform availability.

Add iOS 27 runtime coverage for structure trees, structural and non-structural marked content, object references, string setters, null handling, and tag names. Remove the resolved iOS, macOS, and Mac Catalyst xtro todo files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: fede1eb3-9fd9-489a-975a-39b46534fa26
@dalexsoto
dalexsoto requested a review from rolfbjarne as a code owner August 12, 2026 01:42
@dalexsoto dalexsoto added this to the xcode27 milestone Aug 12, 2026
Copilot AI lite review requested due to automatic review settings August 12, 2026 01:42

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 pull request updates the CoreGraphics bindings to match Xcode 27.0 Beta 5 by adding managed wrappers and P/Invoke surface for tagged-PDF authoring (structure tree, marked content, and object references), along with runtime tests and xtro todo cleanup.

Changes:

  • Introduce CGPDFStructureElement and CGPDFMarkedContentItem managed wrappers and wire them into CGContextPDF tagged-PDF authoring operations.
  • Add CGPdfTagType.Artifact with platform availability and a corresponding monotouch runtime test.
  • Add new monotouch runtime coverage for tagged-PDF authoring and remove resolved CoreGraphics xtro todo files.

Reviewed changes

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

Show a summary per file
File Description
tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreGraphics.todo Removed resolved xtro todo entries for CoreGraphics (file deleted).
tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-CoreGraphics.todo Removed resolved xtro todo entries for CoreGraphics (file deleted).
tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreGraphics.todo Removed resolved xtro todo entries for CoreGraphics (file deleted).
tests/monotouch-test/CoreGraphics/PdfTagTypeTest.cs Adds runtime verification for CGPdfTagType.Artifact on supported platforms.
tests/monotouch-test/CoreGraphics/PDFStructureElementTest.cs Adds runtime coverage for tagged-PDF authoring workflows and argument validation.
src/frameworks.sources Includes new CoreGraphics source files in the build.
src/CoreGraphics/CGPDFStructureElement.cs Adds managed wrapper for PDF structure tree elements (create, retain/release, setters, and child/marked-content attachment).
src/CoreGraphics/CGPDFMarkedContentItem.cs Adds managed wrapper for marked-content items returned by PDF context operations.
src/CoreGraphics/CGEnums.cs Adds CGPdfTagType.Artifact = 900 with platform availability metadata.
src/CoreGraphics/CGContextPDF.cs Adds tagged-PDF authoring APIs: structure-tree root child attachment, marked-content begin/end, and object-reference begin/end.

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

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

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🚀 [CI Build #a60c5f5] 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. [attempt 2] 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: a60c5f5541770bd4e0b89597c6147a13888b2711 [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