Back to Skiasharp

3.119.4

documentation/docfx/releases/3.119.4.md

4.150.024.4 KB
Original Source
<!-- RAW PR DATA — Do not remove this comment block. AI uses this data to generate the polished release notes below. Re-run the script to refresh this data from git history. Generated: 2026-06-17T23:59:34Z by generate-release-notes.py version: 3.119.4 status: stable supersedes: 3.119.3 (preview only, rolled up) branch: release/3.119.4 diff: release/3.119.2..release/3.119.4 prs: 140 api: self=3.119.4/index.md;hb=8.3.1.5 PRs grouped by the preview they first shipped in (newest first). Render each milestone as a trailing "## <label> (<date>)" section per TEMPLATE.md, and merge them all for the top-level Highlights: ## Unreleased — not yet in a tagged preview (5 PRs) - [release/3.119.x] Fix CI failures: ANGLE, WASM 2.0.6, Tizen SDK, Alpine by @mattleibow in https://github.com/mono/SkiaSharp/pull/4045 - [CI] Improve Android CI disk space and emulator startup (#3676) by @github-actions[bot] in https://github.com/mono/SkiaSharp/pull/3728 [community ✨] - Update libpng to 1.6.58 by @mattleibow in https://github.com/mono/SkiaSharp/pull/3723 (skia: mono/skia#192) - [CI] Free disk space on hosted Linux agents (#3712) by @github-actions[bot] in https://github.com/mono/SkiaSharp/pull/3716 [community ✨] - Fix cgmanifest.json Skia milestone mismatch on release/3.119.x by @mattleibow in https://github.com/mono/SkiaSharp/pull/3721 ## Preview 1 · 3.119.4 · 2026-04-22 · https://github.com/mono/SkiaSharp/compare/v3.119.3-preview.1.1...v3.119.4-preview.1.1 (101 PRs) - Move skills from .claude/ to .agents/ by @mattleibow in https://github.com/mono/SkiaSharp/pull/3697 - Revert "Add daily-digest agentic workflow (#3694)" by @mattleibow in https://github.com/mono/SkiaSharp/pull/3696 - Add daily-digest agentic workflow by @mattleibow in https://github.com/mono/SkiaSharp/pull/3694 - Move AI agent config to shared location for Claude Code and GitHub Copilot by @ramezgerges in https://github.com/mono/SkiaSharp/pull/3692 [community ✨] - [build] Split Tizen native CI into per-architecture jobs by @mattleibow in https://github.com/mono/SkiaSharp/pull/3672 - Add release-notes-audit skill for Skia API gap analysis by @mattleibow in https://github.com/mono/SkiaSharp/pull/3675 - Add weekly sweep to clean stale PR staging directories by @mattleibow in https://github.com/mono/SkiaSharp/pull/3671 - Add Linux Bionic native assets support by @4Darmygeometry in https://github.com/mono/SkiaSharp/pull/3217 [community ✨] - Improve update-skia merge conflict guidance by @mattleibow in https://github.com/mono/SkiaSharp/pull/3662 - Fix docs deploy race condition by serializing Go Live deployments by @mattleibow in https://github.com/mono/SkiaSharp/pull/3670 - Redesign docs homepage: hero, code showcase, gallery, and resources by @mattleibow in https://github.com/mono/SkiaSharp/pull/3668 - [Gallery] Refine Image Decoder metadata overlay by @mattleibow in https://github.com/mono/SkiaSharp/pull/3669 - Add submodule init and DEPS sync to review orchestrator by @mattleibow in https://github.com/mono/SkiaSharp/pull/3667 - Fix review-skia-update milestone detection by @mattleibow in https://github.com/mono/SkiaSharp/pull/3665 - Improve the update-skia skill from m119→m133 lessons by @mattleibow in https://github.com/mono/SkiaSharp/pull/3658 - Fix cgmanifest.json version drift and overhaul security-audit skill by @mattleibow in https://github.com/mono/SkiaSharp/pull/3656 - [Android] Fix SKGLView not rendering after tab switch in MAUI TabBar by @SimonvBez in https://github.com/mono/SkiaSharp/pull/3076 [community ✨] - [build] Use PolySharp for C# 13 support on legacy TFMs by @4Darmygeometry in https://github.com/mono/SkiaSharp/pull/3642 [community ✨] - [tizen] Add x64 and arm64 native build support by @mattleibow in https://github.com/mono/SkiaSharp/pull/3620 (skia: mono/skia#175) - Update build-site workflow to remove path filters by @mattleibow in https://github.com/mono/SkiaSharp/pull/3653 - [build] Add net48 full-framework target and use it for Windows validation by @4Darmygeometry in https://github.com/mono/SkiaSharp/pull/3631 [community ✨] - Use MSIX packaging for WinUI sample by @mattleibow in https://github.com/mono/SkiaSharp/pull/3651 - Fix staging docs PR checkout by @mattleibow in https://github.com/mono/SkiaSharp/pull/3650 - Fix loongarch Linux build mapping by @mattleibow in https://github.com/mono/SkiaSharp/pull/3648 - Add a PR merge commit message skill (#3641) by @mattleibow in https://github.com/mono/SkiaSharp/pull/3641 - Delay-load D3D12 DLLs to prevent crashes on systems without DX12 by @mattleibow in https://github.com/mono/SkiaSharp/pull/3633 - Refactor GitHub Pages: PR staging subfolders on docs-live branch by @mattleibow in https://github.com/mono/SkiaSharp/pull/3639 - Fix get-skiasharp-pr.ps1 killing the shell when run via iex by @mattleibow in https://github.com/mono/SkiaSharp/pull/3637 - Add workflow to post PR artifacts comment by @mattleibow in https://github.com/mono/SkiaSharp/pull/3635 - Build WASM natives in docs workflow instead of downloading by @mattleibow in https://github.com/mono/SkiaSharp/pull/3634 - Update rollForward from latestPatch to latestFeature by @mattleibow in https://github.com/mono/SkiaSharp/pull/3624 - Enforce -Wl,--no-undefined linker flag for Linux and Android native builds by @mattleibow in https://github.com/mono/SkiaSharp/pull/3629 (skia: mono/skia#176) - Reduce disk usage in Docker sample builds by @mattleibow in https://github.com/mono/SkiaSharp/pull/3625 - Target net6.0-tizen8.0 in Tizen sample for broader device compatibility by @mattleibow in https://github.com/mono/SkiaSharp/pull/3626 - Add landing page, migrate docs to main, and unify site deployment by @mattleibow in https://github.com/mono/SkiaSharp/pull/3623 - Update Tizen support: Studio 6.1, TFM fixes, and 3-tab sample by @mattleibow in https://github.com/mono/SkiaSharp/pull/3619 - Add workflow to deploy Gallery WASM sample to GitHub Pages by @mattleibow in https://github.com/mono/SkiaSharp/pull/3622 - Fix WASM Docker build scripts for ARM hosts and add features argument by @mattleibow in https://github.com/mono/SkiaSharp/pull/3618 - Validate-samples skill, samples build refactor, and stale file cleanup by @mattleibow in https://github.com/mono/SkiaSharp/pull/3616 - Use DesignMode property directly in WindowsForms controls by @mattleibow in https://github.com/mono/SkiaSharp/pull/3614 - Improve review-skia-update skill: fix header link, add expand/collapse, upgrade companion PR by @mattleibow in https://github.com/mono/SkiaSharp/pull/3613 - Refactor SKManagedStream: replace parent/child chain with SKData snapshot by @Copilot in https://github.com/mono/SkiaSharp/pull/3589 [community ✨] - Restructure Docker samples and add READMEs by @mattleibow in https://github.com/mono/SkiaSharp/pull/3606 - Update Web (ASP.NET Core) sample with modernized code and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3605 - Update WinUI 3 sample with NavigationView, multi-page layout and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3604 - Update Windows Forms sample with multi-page layout, drawing support and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3603 - Update WPF sample with multi-page layout, drawing support and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3602 - Update Blazor WebAssembly sample with multi-page layout and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3601 - Update MAUI sample with Shell flyout, multi-page layout and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3600 - Update tvOS sample with tab bar, GPU pages and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3599 - Update macOS sample with toolbar tabs, multi-page layout and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3598 - Update Mac Catalyst sample with tab bar, multi-page layout and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3597 - Update iOS sample with split-view sidebar, multi-page layout and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3596 - Update Android sample with Material 3, multi-page layout and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3595 - Update GTK 4 sample with CPU, Drawing pages and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3594 - Update GTK 3 sample with CPU, Drawing pages and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3593 - Update Browser WebAssembly sample with README and screenshot by @mattleibow in https://github.com/mono/SkiaSharp/pull/3591 - Update Console sample with improved drawing and README by @mattleibow in https://github.com/mono/SkiaSharp/pull/3590 - Split NuGet mega-packages to stay under 500MB feed limit by @mattleibow in https://github.com/mono/SkiaSharp/pull/3584 - Improve review-skia-update skill: require verification of removed patches by @mattleibow in https://github.com/mono/SkiaSharp/pull/3586 - Redesign Gallery as interactive Blazor WASM showcase with 21 demos by @Copilot in https://github.com/mono/SkiaSharp/pull/3578 [community ✨] - review-skia-update: add relatedFiles cross-links and fix viewed checkbox by @mattleibow in https://github.com/mono/SkiaSharp/pull/3585 - Improve HTML viewer: syntax highlighting, DEPS layout, companion PR by @mattleibow in https://github.com/mono/SkiaSharp/pull/3581 - Pin .NET SDK to 10.0.1xx band (10.0.105) to fix CI by @mattleibow in https://github.com/mono/SkiaSharp/pull/3582 - Add render step to review-skia-update skill Phase 4 by @mattleibow in https://github.com/mono/SkiaSharp/pull/3580 - Add HTML review viewer and direct diff for changed files by @mattleibow in https://github.com/mono/SkiaSharp/pull/3579 - Move documentation/ files to documentation/dev/ subfolder by @mattleibow in https://github.com/mono/SkiaSharp/pull/3577 - Add review-skia-update skill and unify persist pattern by @mattleibow in https://github.com/mono/SkiaSharp/pull/3567 - Update explore agent launch instructions in SKILL.md by @mattleibow in https://github.com/mono/SkiaSharp/pull/3575 - Improve update-skia skill: extract references, add scripts, improve tone by @mattleibow in https://github.com/mono/SkiaSharp/pull/3574 - Strengthen update-skia skill enforcement after compliance failures by @mattleibow in https://github.com/mono/SkiaSharp/pull/3573 - Update issue pipeline skills: persist to output/ai/ and path fixes by @mattleibow in https://github.com/mono/SkiaSharp/pull/3571 - Add GitHub workflow to publish samples using latest NuGet version by @Copilot in https://github.com/mono/SkiaSharp/pull/3570 [community ✨] - Fix generate.ps1 error propagation by @mattleibow in https://github.com/mono/SkiaSharp/pull/3569 - Fix generator: add macOS SDK system includes for CppAst by @mattleibow in https://github.com/mono/SkiaSharp/pull/3568 - Enable dotnetUseGlobalJson in Azure pipeline by @mattleibow in https://github.com/mono/SkiaSharp/pull/3566 - Simplify Docker build infrastructure and fix CI by @mattleibow in https://github.com/mono/SkiaSharp/pull/3564 - Fix Cairo assertion crash in GTK4 SKDrawingArea by @mattleibow in https://github.com/mono/SkiaSharp/pull/3562 - Fix tvOS NativeReference targets to split device/simulator frameworks by @mattleibow in https://github.com/mono/SkiaSharp/pull/3563 - Fix tvOS: split device/simulator native builds to match iOS pattern by @mattleibow in https://github.com/mono/SkiaSharp/pull/3561 - Update to .NET 10 SDK with workload version set pinning by @mattleibow in https://github.com/mono/SkiaSharp/pull/3514 - Update skills: add update-skia, sync skill-creator from upstream by @mattleibow in https://github.com/mono/SkiaSharp/pull/3558 - Add Skia core CVE tracking to security audit skill by @mattleibow in https://github.com/mono/SkiaSharp/pull/3556 - Enable blank issues in issue template configuration by @mattleibow in https://github.com/mono/SkiaSharp/pull/3551 - Update skill-creator from upstream anthropics/skills by @mattleibow in https://github.com/mono/SkiaSharp/pull/3550 - Make skill action schemas automation-ready with required data fields by @mattleibow in https://github.com/mono/SkiaSharp/pull/3548 - Make add-comment risk dynamic based on content and confidence by @mattleibow in https://github.com/mono/SkiaSharp/pull/3547 - Fix artifact upload on Windows — collect from platform-specific tmp paths by @mattleibow in https://github.com/mono/SkiaSharp/pull/3544 - Add AI triage-and-repro workflow with Copilot CLI action by @mattleibow in https://github.com/mono/SkiaSharp/pull/3543 - Add SkiaSharp.Views.Gtk4 using GirCore.Gtk-4.0 bindings by @Copilot in https://github.com/mono/SkiaSharp/pull/3527 [community ✨] - Update libfontconfig-dev for loong64 from 2.17.1-4 to 2.17.1-5 by @Copilot in https://github.com/mono/SkiaSharp/pull/3531 [community ✨] - Remove update-docs workflow (moved to mono/SkiaSharp-API-docs) by @mattleibow in https://github.com/mono/SkiaSharp/pull/3532 - Add daily API docs generation workflow and rewrite docs guide by @mattleibow in https://github.com/mono/SkiaSharp/pull/3530 - Add learnings from Copilot memory audit to docs and instructions by @mattleibow in https://github.com/mono/SkiaSharp/pull/3529 - Overhaul AI bug pipeline: skills, persist scripts, benchmark runner by @mattleibow in https://github.com/mono/SkiaSharp/pull/3518 - Bug pipeline: redesign triage/repro/fix schemas and skill improvements by @mattleibow in https://github.com/mono/SkiaSharp/pull/3517 - Add bug-repro skill for systematic bug reproduction by @mattleibow in https://github.com/mono/SkiaSharp/pull/3516 - triage-issue: schema v2.1 — mandatory codeInvestigation + anti-patterns by @mattleibow in https://github.com/mono/SkiaSharp/pull/3515 - Add shared dependency verification and fix Docker fontconfig pins by @mattleibow in https://github.com/mono/SkiaSharp/pull/3510 - Add Triage AI Skill by @mattleibow in https://github.com/mono/SkiaSharp/pull/3513 - Bump to the next version (3.119.4) after release by @mattleibow in https://github.com/mono/SkiaSharp/pull/3508 ## Preview 1 · 3.119.3 · 2026-02-07 · https://github.com/mono/SkiaSharp/compare/v3.119.2...v3.119.3-preview.1.1 (34 PRs) - Bump to the next version (3.119.3) after release by @mattleibow in https://github.com/mono/SkiaSharp/pull/3507 - Add Linux Docker integration tests for release testing by @mattleibow in https://github.com/mono/SkiaSharp/pull/3506 - Fix stable version handling in release skills by @mattleibow in https://github.com/mono/SkiaSharp/pull/3505 - Add semver ordering guidance to release skills by @mattleibow in https://github.com/mono/SkiaSharp/pull/3504 - Add Spectre mitigation flag for libSkiaSharp.so. by @sshumakov in https://github.com/mono/SkiaSharp/pull/3502 [community ✨] - Fix release-testing skill consistency issues by @mattleibow in https://github.com/mono/SkiaSharp/pull/3501 - Add Spectre mitigation flag for libSkiaSharp.dll. by @sshumakov in https://github.com/mono/SkiaSharp/pull/3496 [community ✨] - Fix Linux ARM64 crash: add fontconfig runtime library to cross-compile sysroot by @mattleibow in https://github.com/mono/SkiaSharp/pull/3494 - Add 'copilot' label step to bug-fix skill PR workflow by @mattleibow in https://github.com/mono/SkiaSharp/pull/3495 - Fix AoT crash when IlcDisableReflection=true by @Copilot in https://github.com/mono/SkiaSharp/pull/3485 [community ✨] - Improve AI instructions and skills by @mattleibow in https://github.com/mono/SkiaSharp/pull/3488 - Add structured workflow for adding APIs to SkiaSharp by @Copilot in https://github.com/mono/SkiaSharp/pull/3483 [community ✨] - Use the new CI feed to download the pre-built artifacts by @mattleibow in https://github.com/mono/SkiaSharp/pull/3486 - Add NuGet feed management tools and PR package download script by @mattleibow in https://github.com/mono/SkiaSharp/pull/3479 - Update libwebp to 1.6.0 by @mattleibow in https://github.com/mono/SkiaSharp/pull/3478 (skia: mono/skia#167) - Improve native-dependency-update skill Phase 5 instructions by @mattleibow in https://github.com/mono/SkiaSharp/pull/3477 - Add debugging methodology documentation by @mattleibow in https://github.com/mono/SkiaSharp/pull/3468 - Strengthen skill guidance on submodule merge sequence by @mattleibow in https://github.com/mono/SkiaSharp/pull/3475 - Fix skia submodule to point to squashed commit by @mattleibow in https://github.com/mono/SkiaSharp/pull/3474 (skia: mono/skia#165) - Update brotli to 1.2.0 by @mattleibow in https://github.com/mono/SkiaSharp/pull/3469 - Bump libexpat from 2.6.4 to 2.7.3 by @mattleibow in https://github.com/mono/SkiaSharp/pull/3458 - Remove unused deps and add deps docs by @mattleibow in https://github.com/mono/SkiaSharp/pull/3463 (skia: mono/skia#164) - Update more skills by @mattleibow in https://github.com/mono/SkiaSharp/pull/3460 - Update native-dependency-update skill with guardrails by @mattleibow in https://github.com/mono/SkiaSharp/pull/3457 - Update SkiaSharp package source URL in nuget.config by @mattleibow in https://github.com/mono/SkiaSharp/pull/3459 - Update the native dependency bump skills by @mattleibow in https://github.com/mono/SkiaSharp/pull/3455 - Update libpng to 1.6.54 by @mattleibow in https://github.com/mono/SkiaSharp/pull/3452 (skia: mono/skia#162) - Update docs submodule by @mattleibow in https://github.com/mono/SkiaSharp/pull/3454 - Add native dependency update skill by @mattleibow in https://github.com/mono/SkiaSharp/pull/3453 - Add AI release skills and integration test suite by @mattleibow in https://github.com/mono/SkiaSharp/pull/3451 - Fix the version processing by @mattleibow in https://github.com/mono/SkiaSharp/pull/3450 - Add API guidelines and implement-issue skill by @mattleibow in https://github.com/mono/SkiaSharp/pull/3445 - Document HarfBuzzSharp versioning in release process by @mattleibow in https://github.com/mono/SkiaSharp/pull/3447 - Bump to the next version (3.119.3) after release by @mattleibow in https://github.com/mono/SkiaSharp/pull/3446 --> <!-- Generated: 2026-06-18T00:00:00Z by claude-sonnet-4.5 -->

Version 3.119.4

Platform expansion and servicing release · Released · NuGet · GitHub Release

Supersedes 3.119.3 · Rolls up preview-only work that was never released as stable — those changes are included cumulatively below.

API changes · SkiaSharp API diff · HarfBuzzSharp 8.3.1.5

Highlights

SkiaSharp 3.119.4 rolls the skipped 3.119.3 preview into a larger servicing release for the 3.119.x line. It broadens platform coverage with Linux Bionic assets, Tizen x64 and arm64 support, and a new Gtk4 views package, while also fixing runtime issues across Android, AoT, Linux ARM64, GTK4, tvOS, and Windows. HarfBuzzSharp 8.3.1.5 ships alongside this release; see the linked companion page for its binding details.

Breaking Changes

None in this release.

New Features

Platform

  • Linux Bionic native assets — Adds native asset support for Linux Bionic environments. ❤️ @4Darmygeometry (#3217)
  • Tizen x64 and arm64 builds — Expands Tizen native build coverage to additional architectures. (#3620)
  • SkiaSharp.Views.Gtk4 — Adds a Gtk4 views package based on the GirCore.Gtk-4.0 bindings. ❤️ @Copilot (#3527)
  • Legacy .NET target support — Adds a net48 validation target and uses PolySharp to keep newer language features available on legacy TFMs. ❤️ @4Darmygeometry (#3631, #3642)

Packaging & Distribution

  • Smaller package split — Splits the oversized NuGet mega-packages to stay within feed size limits. (#3584)
  • Native dependency refreshes — Updates key native components including libwebp, brotli, libexpat, and libpng during the 3.119.3/3.119.4 servicing cycle. (#3478, #3469, #3458, #3452, #3723)

Security

  • Spectre mitigations for Windows and Linux — Rolls the 3.119.3 hardening work into the stable line for both Windows DLLs and libSkiaSharp.so. ❤️ @sshumakov (#3496, #3502)
  • Stronger native link validation — Enforces --no-undefined on Linux and Android native builds to catch unresolved native symbols earlier. (#3629)

Bug Fixes

  • Android MAUI tab-switch rendering — Fixes SKGLView not rendering after a tab switch in TabBar scenarios. ❤️ @SimonvBez (#3076)
  • Windows systems without DirectX 12 — Delay-loads the D3D12 DLLs to avoid startup crashes on machines where DX12 is unavailable. (#3633)
  • Linux ARM64 startup crash — Fixes the missing fontconfig runtime library issue in cross-compiled ARM64 builds. (#3494)
  • Ahead-of-time crash with IlcDisableReflection=true — Fixes an AoT runtime crash in trimmed applications. ❤️ @Copilot (#3485)
  • Gtk4 Cairo assertion failure — Fixes the SKDrawingArea crash caused by a Cairo assertion in Gtk4. (#3562)
  • tvOS native reference packaging — Splits device and simulator frameworks correctly for tvOS native references and native builds. (#3561, #3563)
  • Safer managed stream lifetime — Reworks SKManagedStream around SKData snapshots to avoid parent/child lifetime hazards. ❤️ @Copilot (#3589)

Platform Support

PlatformWhat's New
🤖 AndroidSKGLView tab-switch rendering fix in MAUI
🍎 AppleCorrect tvOS device/simulator packaging
🐧 LinuxBionic assets, Linux ARM64 crash fix, Gtk4 support, Spectre hardening
🪟 WindowsDelay-loaded D3D12 and Spectre hardening
📦 GeneralTizen x64/arm64 support, smaller package splits, legacy TFM support

Community Contributors ❤️

ContributorWhat They Did
@4DarmygeometryAdded Linux Bionic support and improved legacy .NET targeting
@sshumakovAdded Spectre hardening for the native binaries
@SimonvBezFixed Android SKGLView tab-switch rendering
@CopilotAdded Gtk4 support and fixed AoT and stream-lifetime issues

Preview 1 (April 22, 2026)

Added Linux Bionic assets, Tizen x64 and arm64 support, Gtk4 views, smaller package splits, and a broad set of runtime fixes across Android, GTK4, tvOS, and Windows.

Full Changelog


Preview 1 (February 7, 2026)

Introduced native hardening, refreshed bundled dependencies, and fixed Linux ARM64 and AoT compatibility issues that later rolled into 3.119.4.

Full Changelog