Skip to content

Fill API documentation placeholders#150

Merged
mattleibow merged 2 commits into
mainfrom
automation/write-api-docs
Jun 23, 2026
Merged

Fill API documentation placeholders#150
mattleibow merged 2 commits into
mainfrom
automation/write-api-docs

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated AI-generated documentation for XML API docs with 'To be added.' placeholders.

Summary

Fills 1,021 documentation fields across 33 XML files covering the following types:

HarfBuzzSharp

  • Face — color layers, palettes, variation axes, named instances
  • Font — variation coordinates (design and normalized)
  • HBColor — BGRA packed color struct with constructors, operators, and rich remarks

SkiaSharp Core

  • GRContextFlush overloads
  • GRVkYcbcrComponents — Vulkan YCbCr component swizzle struct
  • GRVkYcbcrConversionInfo — Vulkan YCbCr conversion info
  • GrVkYcbcrConversionInfo — deprecated Vulkan type
  • SKCanvasDrawBitmap/DrawSurface/DrawText sampling overloads
  • SKColorType — new color type enum values
  • SKColorspacePrimariesCicp / SKColorspaceTransferFnCicp — CICP standard-based enums
  • SKDocumentCreateXps overloads
  • SKDocumentXpsOptions — XPS document options struct
  • SKFontArguments — font argument ref struct
  • SKFontPaletteOverride — font palette color override struct
  • SKFontVariationAxis — font variation axis info
  • SKFontVariationPositionCoordinate — font variation coordinate struct
  • SKFourByteTag — four-byte tag parsing and conversion
  • SKMaskFilterCreateShader factory method
  • SKPaintGetFillPath builder overloads
  • SKPathHandle property
  • SKPathBuilder — full API (51 members) with rich remarks and examples
  • SKPathMeasure — path measurement APIs
  • SKStream — stream abstraction
  • SKSurface — surface factory methods
  • SKTypeface — typeface creation and properties
  • SKWebpEncoder / SKWebpEncoderFrame — WebP encoding options

SkiaSharp.HarfBuzz

  • ColorExtensions — color conversion extension methods

SkiaSharp.Views

  • SKGLControl (Desktop), GTKExtensions, SKDrawingArea, _Imports, SKGLSurfaceViewRenderer

Also includes formatting cleanup: removal of obsolete API members from XML files.

Generated by Auto API Docs Writer · ● 11.9M ·

github-actions Bot and others added 2 commits June 23, 2026 18:09
…APIs

Fill all 'To be added.' placeholder fields across 33 XML documentation files
covering 1021 fields.

Types documented:
- HarfBuzzSharp: Face (variation/palette/color APIs), Font (variation coords),
  HBColor (BGRA struct, operators, conversions)
- SkiaSharp: GRContext (Flush overloads), GRVkYcbcrComponents,
  GRVkYcbcrConversionInfo, GrVkYcbcrConversionInfo (deprecated),
  SKCanvas (DrawBitmap/DrawSurface/DrawText overloads), SKColorType (new values),
  SKColorspace{Primaries,TransferFn}Cicp (CICP enums), SKDocument (CreateXps),
  SKDocumentXpsOptions, SKFontArguments (ref struct), SKFontPaletteOverride,
  SKFontVariationAxis, SKFontVariationPositionCoordinate, SKFourByteTag,
  SKMaskFilter (CreateShader), SKPaint (GetFillPath builder overloads),
  SKPath (Handle), SKPathBuilder (full API, 51 members), SKPathMeasure,
  SKStream (GetData), SKSurface (Draw), SKTypeface (Clone/variation APIs),
  SKWebpEncoder (Encode/EncodeAnimated), SKWebpEncoderFrame
- SkiaSharp.HarfBuzz: ColorExtensions (color conversion methods)
- SkiaSharp.Views.*: SKGLControl constructors, GTKExtensions, SKDrawingArea,
  _Imports, SKGLSurfaceViewRenderer

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove obsolete API members and apply formatting cleanup
to documentation XML files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit bcc11fe:

⚠️ Validation status: warnings

File Status Preview URL Details
SkiaSharpAPI/SkiaSharp.Views.Desktop/SKGLControl.xml ⚠️Warning Details
SkiaSharpAPI/SkiaSharp.Views.Gtk/GTKExtensions.xml ⚠️Warning Details
SkiaSharpAPI/SkiaSharp.Views.Gtk/SKDrawingArea.xml ⚠️Warning Details
SkiaSharpAPI/SkiaSharp/SKTypeface.xml ⚠️Warning Details
SkiaSharpAPI/FrameworksIndex/skiasharp.xml ✅Succeeded
SkiaSharpAPI/HarfBuzzSharp/Face.xml ✅Succeeded
SkiaSharpAPI/HarfBuzzSharp/Font.xml ✅Succeeded
SkiaSharpAPI/HarfBuzzSharp/HBColor.xml ✅Succeeded
SkiaSharpAPI/index.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp.HarfBuzz/ColorExtensions.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp.Views.Blazor/_Imports.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/GRBackendRenderTarget.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/GRContext.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/GRVkYcbcrComponents.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/GRVkYcbcrConversionInfo.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKBitmap.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKCanvas.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKColorspacePrimariesCicp.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKColorspaceTransferFnCicp.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKColorType.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKDocument.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKDocumentXpsOptions.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKFontArguments.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKFontPaletteOverride.xml ✅Succeeded
SkiaSharpAPI/SkiaSharp/SKFontVariationAxis.xml ✅Succeeded

This comment lists only the first 25 files in the pull request.

SkiaSharpAPI/SkiaSharp.Views.Desktop/SKGLControl.xml

  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'OpenTK.GLControl'.

SkiaSharpAPI/SkiaSharp.Views.Gtk/GTKExtensions.xml

  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Graphene.Size'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Rectangle'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Graphene.Point'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Rectangle'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Point'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Rectangle'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Point'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Color'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.RGBA'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.RGBA'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Graphene.Point3D'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Graphene.Rect'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Pixbuf'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Size'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.Color'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.RGBA'.
  • Line 0, Column 0: [Warning: xref-not-found - See documentation] Cross reference not found: 'Gdk.RGBA'.

This comment lists only the first 25 errors (including error/warning/suggestion) in the pull request.
For more details, please refer to the build report.

Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.

@mattleibow mattleibow merged commit 220701e into main Jun 23, 2026
3 checks passed
@mattleibow mattleibow deleted the automation/write-api-docs branch June 23, 2026 18:29
mattleibow added a commit that referenced this pull request Jun 23, 2026
* [docs] Fix broken API doc cross-references

Correct 16 dangling <see>/<value> cross-references that the AED
documentation-fill PRs (#150, #151) left pointing at removed, renamed, or
mistyped SkiaSharp members. Removes the resulting docfx xref-not-found
warnings. ECMA-XML prose only; no mdoc regeneration.

- SKColorTable.MaxLength -> SKColorFilter.TableMaxLength (type removed)
- SKCodec.Origin -> SKCodec.EncodedOrigin (renamed)
- SKSurfaceProps -> SKSurfaceProperties (renamed)
- GrVkYcbcrConversionInfo -> GRVkYcbcrConversionInfo (casing)
- SKPathVerb.Close: E: -> F: (enum field, wrong prefix)
- SKFontStyleWeight/Width: F: -> T: (type, wrong prefix)
- *.Empty (SKMatrix, SKPoint, SKColorSpaceXyz, SKColorSpaceTransferFn): P: -> F:
- SKMatrix44 Create* remarks: drop references to removed Set* instance methods

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* [docs] Repoint removed 3-arg SKPath.Iterator.Next cref to 1-arg overload

Learn build validation on the docs flagged
M:SkiaSharp.SKPath.Iterator.Next(SkiaSharp.SKPoint[],System.Boolean,System.Boolean)
as xref-not-found. The 3-arg overload was removed upstream; SKPath.Iterator now
exposes only Next(SKPoint[]) and Next(Span<SKPoint>) (verified against
binding/SkiaSharp/SKPath.cs and the SKPath+Iterator.xml member list).

Repoint all 10 occurrences (3 in SKPath+Iterator.xml, 7 in SKPathVerb.xml) to
M:SkiaSharp.SKPath.Iterator.Next(SkiaSharp.SKPoint[]). Sibling
RawIterator.Next(SKPoint[]) crefs are valid and left unchanged.

This was missed initially because the xref scan matched on type+method name and
ignored the overload signature; the scan now requires exact full-DocId matches,
and a strict whole-repo re-audit confirms zero remaining internal dangling crefs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* [docs] Fix hidden broken GRVkFilter cref masked by case-insensitive FS

The ChromaFilter property doc in the legacy GrVkYcbcrConversionInfo struct
referenced a type that does not exist — `<see cref="T:SkiaSharp.GRVkFilter"/>`.
ChromaFilter is a plain `uint` holding a raw Vulkan `VkFilter` value; there is
no GRVkFilter type in the docs corpus or the SkiaSharp API, so docfx emits an
xref-not-found warning. The modern GRVkYcbcrConversionInfo struct already
documents the same field correctly as a raw `<c>VkFilter</c>` value; mirror it.

This dangling cref was missed by the prior xref sweep because the repo contains
a case-collision pair — GRVkYcbcrConversionInfo.xml (modern) and
GrVkYcbcrConversionInfo.xml (legacy) differ only by case. On a case-insensitive
filesystem only one of the two physically checks out, so a working-tree glob
silently drops the shadowed legacy file. Staged via git plumbing so the fix
lands on the legacy blob without materializing both colliding paths on disk.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* [docs] Drop obsolete GrVkYcbcrConversionInfo page to fix case-collision

The legacy [Obsolete("Use GRVkYcbcrConversionInfo instead.")] forwarder struct
GrVkYcbcrConversionInfo (lowercase-r) and the modern GRVkYcbcrConversionInfo
(uppercase-R) differ only by one letter's case. mdoc documents both
soft-obsolete types, producing two ECMA-XML files whose names collide on a
case-insensitive filesystem (the Learn / OpenPublishing build). One file
shadows the other, so crefs to the shadowed type fail with
"Cross reference not found: 'SkiaSharp.GRVkYcbcrConversionInfo'".

PR #152 repointed GRVkImageInfo.xml from the wrong lowercase casing to the real
uppercase type; that correct fix exposed this latent collision (the GR page is
the one shadowed). Rather than revert the casing, remove the collision at its
source: stop publishing the obsolete forwarder's page. The legacy type only
forwards to the modern one via two implicit conversion operators.

- Delete SkiaSharpAPI/SkiaSharp/GrVkYcbcrConversionInfo.xml
  (T:SkiaSharp.GrVkYcbcrConversionInfo) via the index, leaving the modern
  GRVkYcbcrConversionInfo.xml blob untouched.
- Remove its <Type> block from SkiaSharpAPI/FrameworksIndex/skiasharp.xml.
- Remove its entry from SkiaSharpAPI/index.xml.

No surviving file references T:SkiaSharp.GrVkYcbcrConversionInfo; the modern
GRVkYcbcrConversionInfo page is kept and now resolves cleanly. A companion
generator-side exclusion is being added in mono/SkiaSharp
scripts/infra/docs/docs.cake so mdoc won't regenerate the page.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Re-trigger OpenPublishing build

The previous build failed on a transient infrastructure error
(restore-template-repository-failed: could not clone
Microsoft/templates.docs.msft#main); all changed files validated
Succeeded with zero cross-reference errors. Empty commit to re-run.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow added a commit that referenced this pull request Jun 30, 2026
Go Live: publish latest API docs (#171)

Publish the accumulated SkiaSharp / HarfBuzzSharp API documentation from main
to the live (published) branch. This is the first Go Live since #66 and rolls up
a large batch of docs automation, a full regeneration, and content/cross-reference
cleanup.

Highlights in this batch:

- Docs automation: automated API docs writer (#92, hardened in #155), daily
  update workflow, go-live workflow (#65), and a Learn Build status-based
  auto-merge gate (#82, #83) backed by check-learn-build.py and a
  .github/known-warnings.csv baseline.
- Regeneration: frameworks docs switched to latest-only monikers (#141), baseline
  reset to the Windows-generated output (#142), and stub regeneration moved to
  Linux via Mono (#147). This drops older, no-longer-shipping member/type pages
  (e.g. pre-v1.68 view APIs, the removed Android ISKRenderer interface, and the
  SKPaint text properties that moved to SKFont).
- Content: filled API documentation placeholders (#150, #151, #172) and fixed
  broken cross-references (#152).
- Cross-reference cleanup (#173): removed/repointed 36 obsolete xref-not-found
  references left behind by the latest-only-moniker regeneration — dangling links
  in 2019-era remarks to members that were since removed or relocated. Without
  this the Go Live build reported 160 warnings and the auto-merge gate (correctly)
  blocked the publish.

Build health at publish: 0 errors, 124 warnings, 0 suggestions. All 124 remaining
warnings are expected xref-not-found references to external framework types
(OpenTK, Gdk/Cairo/Graphene, ElmSharp/Tizen.NUI, Windows.UI.Xaml, Microsoft.UI.Xaml,
SharpVk, Vortice) that Learn cannot resolve and which are tracked in the
known-warnings.csv baseline — 0 new warnings versus baseline, so the gate passes.

Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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.

1 participant