Skip to content

Releases: mono/SkiaSharp

Version 4.148.0

23 Jun 19:04

Choose a tag to compare

Finalizes the v4 API surface by turning the remaining pre-v4 obsolete members into hard errors and trimming obsolete enums from the reference assembly.

📦 NuGet · 📖 Release notes · 🔀 Full changelog

⚠️ Breaking Changes

  • Remaining pre-v4 obsolete APIs now error, and obsolete enums are removed from the reference assembly by @github-actions[bot] (#4205)

All changes (1 pull request)
  • [release/4.148.x] [v4] Promote remaining pre-v4 obsoletes to error and trim obsolete enums from the ref assembly by @github-actions[bot] in #4205

Version 4.150.0 (Preview 1)

15 Jun 14:50

Choose a tag to compare

Pre-release

Preview of SkiaSharp 4.150 built on Skia engine milestone 150.

📦 NuGet · 📖 Release notes · 🔀 Full changelog

✨ What's New


All changes (2 pull requests)

Version 4.148.0 (RC 1)

15 Jun 14:13

Choose a tag to compare

Pre-release

Upgrades the Skia engine to milestone 148 and promotes previously deprecated SKPaint text APIs to build errors.

📦 NuGet · 📖 Release notes · 🔀 Full changelog

⚠️ Breaking Changes

  • Previously deprecated SKPaint text/font members now emit build errors — update call sites by @ramezgerges (#4068)
  • Remaining legacy SKPaint state-reading APIs marked obsolete; expect new compiler warnings by @mattleibow (#4114)

✨ What's New

🐛 Fixes

  • Fixed WinUI Projection DLL not resolving for .NET 9 consumers on Windows by @mattleibow (#4084)
  • Fixed SKPixmap.GetPixelSpan offset calculation (was using Height instead of Width) by @mattleibow (#4128)
  • Fixed SKPixmap/SKBitmap GetPixelSpan to use RowBytes for correct stride by @mattleibow (#4148)

📦 Dependency Updates

Thanks to our contributors: @ramezgerges


All changes (35 pull requests)
  • Document ADO pipeline chain tracking in release skills by @mattleibow in #4050
  • Update harfbuzz to 14.2.0 by @mattleibow in #4035
  • [docs] Update release notes for 4.147.0 (preview.3) by @mattleibow in #4057
  • Fix release notes workflow to always checkout main by @mattleibow in #4059
  • Enhance security-audit skill: CG alerts integration and viewer improvements by @mattleibow in #4058
  • [docs] Update release notes for 4.147.0 (unreleased/main) by @github-actions[bot] in #4061
  • Disable unused dependency manifests in skia submodule to suppress CG alerts by @mattleibow in #4054
  • Update .NET SDK version to 10.0.108 by @mattleibow in #4055
  • Improve security-audit skill: schema enforcement, CG reliability, and report quality by @mattleibow in #4070
  • [skia-sync] Merge upstream chrome/m147 bug fixes by @mattleibow in #4044
  • docs: force-push docs-live to prevent repo size bloat by @mattleibow in #4073
  • Add es-metadata.yml with initial configuration by @mattleibow in #4075
  • Add es-metadata.yml to cache exclude list by @mattleibow in #4077
  • Migrate Linux Docker builds to .NET official cross-compilation images by @mattleibow in #4062
  • Add --pull to Docker builds to ensure fresh base images by @mattleibow in #4087
  • Fix native Windows builds failing to find .NET SDK 10.0.108 by @mattleibow in #4089
  • Revert "Add --pull to Docker builds to ensure fresh base images" by @mattleibow in #4091
  • Add ci-status skill for daily CI health dashboard by @mattleibow in #4094
  • Fix WinUI Projection DLL not resolved for .NET 9 consumers on Windows by @mattleibow in #4084
  • Add Chrome Releases blog integration to security-audit skill by @mattleibow in #4097
  • feat(ci-status): add GitHub Actions tracking and restructure as collect → AI → render pipeline by @mattleibow in #4099
  • Migrate device and WASM tests from XHarness to DeviceRunners dotnet test by @mattleibow in #4004
  • [skia-sync] Merge upstream chrome/m147 bug fixes by @mattleibow in #4081
  • Update expat to 2.8.1 by @mattleibow in #4079
  • Promote SKPaint text/font obsolete members to error by @ramezgerges in #4068
  • Rework the lifecycle of singleton instances by @ramezgerges in #4080
  • Fix SKPixmap.GetPixelSpan(x,y) offset using Height instead of Width by @mattleibow in #4128
  • Move native-compat gate from [ModuleInitializer] to SkiaApi cctor by @mattleibow in #4133
  • [skia-sync] Update skia to milestone 148 by @mattleibow in #4125
  • Obsolete remaining legacy paint state-reading APIs (#3732) by @mattleibow in #4114
  • Fix SKIASHARP_VERSION yaml missed by the m148 bump by @mattleibow in #4144
  • release-notes: roll up preview-only/skipped versions into their successor by @mattleibow in #4149
  • [docs] Two-way supersede links in release notes by @mattleibow in #4152
  • Fix SKPixmap/SKBitmap GetPixelSpan to use RowBytes for stride by @mattleibow in #4148
  • [docs] docs: update release notes for 4.148.0 (unreleased) by @github-actions[bot] in #4153

Version 4.147.0 (Preview 3)

25 May 11:08

Choose a tag to compare

Pre-release

Drops pre-.NET 8 WASM builds, adds new HarfBuzz color APIs and public API wrappers, and updates native dependencies.

📦 NuGet · 📖 Release notes · 🔀 Full changelog

⚠️ Breaking Changes

  • Dropped WASM native builds for pre-.NET 8 Emscripten versions by @mattleibow (#4022)

✨ What's New

  • Added HBColor struct for proper HarfBuzz hb_color_t representation by @mattleibow (#4000)
  • Added missing public API wrappers and fixed naming convention violations by @mattleibow (#4001)
  • Updated Tizen SDK support to version 10.0 by @mattleibow (#3743)

📦 Dependency Updates

Thanks to our contributors: @ramezgerges, @ebariche, @sasakrsmanovic


All changes (37 pull requests)
  • Keep raw PR data in release notes files as HTML comment by @mattleibow in #3877
  • Fix SkiaSharp references for Uno Platform's Gallery sample by @ramezgerges in #3867
  • [docs] Release notes for 4.147.0 by @github-actions[bot] in #3882
  • Add workflow to persist agentic workflow data to aw-data branch by @mattleibow in #3907
  • Add automated Skia upstream sync workflow by @mattleibow in #3825
  • Add content-based build caching with ADO Cache@2 by @mattleibow in #3826
  • Run stale staging sweep daily instead of weekly by @mattleibow in #3911
  • [samples] Improve SkiaFiddle application size by @ebariche in #3849
  • Add automated API docs pipeline by @mattleibow in #3918
  • Fix CI: samples, Docker, NanoServer, coverlet, and build chain by @mattleibow in #3835
  • [samples] Add Hero Image gallery sample by @mattleibow in #3792
  • docs: Update Uno Platform link and description in README.md by @sasakrsmanovic in #3966
  • Skip Skia sync workflow when upstream is already merged by @mattleibow in #3971
  • Blazor gallery redesign: API Atlas with tag cloud filtering by @mattleibow in #3970
  • Enable TreatWarningsAsErrors in binding/ and fix all warnings by @mattleibow in #3752
  • Add missing API wrappers and fix naming convention violations by @mattleibow in #4001
  • Add HBColor struct for proper hb_color_t representation by @mattleibow in #4000
  • Fix UnicodeEncodeError on Windows CI in repo-deps.py by @mattleibow in #4006
  • Update Tizen SDK installer from 6.1 to 10.0 by @mattleibow in #3743
  • [main] Update zlib to 1.3.2.1-motley by @mattleibow in #3720
  • [main] Update FreeType to 2.14.3 by @mattleibow in #3726
  • Fix cgmanifest.json version mismatches by @mattleibow in #3830
  • Fix docs deploy race condition with retry loop by @mattleibow in #4019
  • Fix Skia Upstream Sync showing as failed when nothing to sync by @mattleibow in #4020
  • Fix Alpine CI failures caused by transient GitLab 500 errors by @mattleibow in #4013
  • Move API docs workflow to docs repo and optimize skill architecture by @mattleibow in #4024
  • Fix font test failures in sync workflow by mounting /usr/share/fonts by @mattleibow in #4023
  • Add manifest generation to docs-tool.ps1 extract by @mattleibow in #4025
  • [WASM] Drop native builds for pre-.NET 8 Emscripten versions by @mattleibow in #4022
  • Update libjpeg-turbo to 3.1.4.1 by @mattleibow in #4012
  • [docs] Release notes for 4.147.0 (unreleased) by @github-actions[bot] in #4029
  • Update api-docs skill: merge guard, anchored regex, workflow awareness by @mattleibow in #4030
  • Add GitHub Actions workflow for API diff by @mattleibow in #4038
  • Fix ANGLE WinAppSDK download failure on 1ES agents by @mattleibow in #4014
  • [docs] API diff for v3.119.2 by @github-actions[bot] in #4046
  • Add automated API diff workflow by @mattleibow in #4036
  • [docs] docs: update release notes for 4.147.0 (unreleased) by @github-actions[bot] in #4049

New Contributors

Version 3.119.4

25 May 08:28

Choose a tag to compare

Updates bundled libexpat and libpng to their latest versions.

📦 NuGet · 📖 Release notes · 🔀 Full changelog

📦 Dependency Updates


All changes (5 pull requests)
  • Fix cgmanifest.json Skia milestone mismatch on release/3.119.x by @mattleibow in #3721
  • [release/3.119.x] Free disk space on Linux CI agents by @github-actions[bot] in #3716
  • [release/3.119.x] Update libexpat to 2.7.5 by @mattleibow in #3722
  • [release/3.119.x] Update libpng to 1.6.58 by @mattleibow in #3723
  • [release/3.119.x] Improve Android CI disk diagnostics by @github-actions[bot] in #3728

Version 4.147.0 (Preview 2)

11 May 20:55

Choose a tag to compare

Pre-release

Adds animated WebP encoding, a zero-copy stream-to-data API, and fixes a finalizer crash in SKPath.

📦 NuGet · 📖 Release notes · 🔀 Full changelog

⚠️ Breaking Changes

  • Apple platform library TFMs updated to versioned 26.0; app TFMs remain unversioned by @mattleibow (#3798)

✨ What's New

  • Add animated WebP encoding support via SKWebpEncoder by @mattleibow (#3771)
  • Add SKStream.GetData() for zero-copy stream-to-data conversion by @mattleibow (#3772)

🐛 Fixes

  • Fix finalizer crash in SKPath when SKPathBuilder is collected first by @ramezgerges (#3796)

Thanks to our contributors: @ramezgerges


All changes (27 pull requests)
  • Bump HarfBuzzSharp to 8.3.1.6 after release by @mattleibow in #3780
  • fix: reuse same PR for release notes workflow by @mattleibow in #3782
  • [samples] Fix Skottie package downgrade NU1605 in Uno gallery by @ramezgerges in #3785
  • Dev/skiafiddle ux improvements by @ramezgerges in #3790
  • Automate website release notes with branch-diffing script by @mattleibow in #3787
  • Improve docs landing page layout and hero section by @mattleibow in #3794
  • Add skia-analyst and sample-scout skills with daily/weekly workflows by @mattleibow in #3755
  • Simplify sample-scout to read GM files from local submodule by @mattleibow in #3802
  • Fix skia-analyst and sample-scout: no safe outputs generated by @mattleibow in #3805
  • Fix release notes script git fetch for CI shallow clones by @mattleibow in #3808
  • Revert "Fix skia-analyst and sample-scout: no safe outputs generated" by @mattleibow in #3811
  • Delete .github/workflows/skia-analyst.md by @mattleibow in #3812
  • Add allowed-base-branches: [main] to release notes workflow by @mattleibow in #3813
  • Make release notes script fully git-based with cumulative rollup by @mattleibow in #3815
  • Fix Apple platform TFMs: use 26.0 for libraries, unversioned for apps by @mattleibow in #3798
  • [Gallery] Add 5 new interactive samples and redesign Blazor home page by @mattleibow in #3757
  • fix: preserve branch name in release notes workflow to reuse PRs by @mattleibow in #3822
  • Fix update-docs workflow: add missing mdoc assembly search paths for Tizen and Gtk4 by @mattleibow in #3824
  • Disable PR artifact retrieval in get-build-type.ps1 by @mattleibow in #3827
  • [samples] Bump Basic Uno sample to Uno.Sdk/6.6.0-dev.208 by @ramezgerges in #3821
  • fix: add recreate-ref to release notes workflow for branch reuse by @mattleibow in #3836
  • [docs] Update release notes for 4.147.0 by @github-actions[bot] in #3837
  • fix: skip release notes workflow when only docs/releases change by @mattleibow in #3839
  • [docs] Update release notes for 4.147.0 by @github-actions[bot] in #3840
  • Fix finalizer crash in SKPath when SKPathBuilder is collected first by @ramezgerges in #3796
  • Add animated WebP encoding support (SKWebpEncoder) by @mattleibow in #3771
  • Add SKStream.GetData() for zero-copy stream-to-data conversion by @mattleibow in #3772

Version 4.147.0 (Preview 1)

28 Apr 14:11

Choose a tag to compare

Pre-release

First v4 preview: Skia engine milestone 147, variable fonts, and new native platform support.

📦 NuGet · 📖 Release notes · 🔀 Full changelog

⚠️ Breaking Changes

  • Major version bump to 4.x — update package references and review API changes by @mattleibow (#3640)

✨ What's New

🐛 Fixes

  • Fixed SKGLView on Android not rendering when using a TabBar by @SimonvBez (#3076)
  • Fixed default typeface resolution for SKFont, SKPaint, and SKTypeface by @ramezgerges (#3730)

📦 Dependency Updates

Thanks to our contributors: @SimonvBez, @ramezgerges, @4Darmygeometry


All changes (63 pull requests)

New Contributors

Version 3.119.4 (Preview 1)

23 Apr 00:53

Choose a tag to compare

Pre-release

New Features

What's Changed

  • 🏗️ Bump to the next version (3.119.4) after release by @mattleibow in #3508
  • 📦 Add Triage AI Skill by @mattleibow in #3513
  • 🏗️ Add shared dependency verification and fix Docker fontconfig pins by @mattleibow in #3510
  • 📦 triage-issue: schema v2.1 — mandatory codeInvestigation + anti-patterns by @mattleibow in #3515
  • 📦 Add bug-repro skill for systematic bug reproduction by @mattleibow in #3516
  • 📦 Bug pipeline: redesign triage/repro/fix schemas and skill improvements by @mattleibow in #3517
  • 📦 Overhaul AI bug pipeline: skills, persist scripts, benchmark runner by @mattleibow in #3518
  • 📦 Add learnings from Copilot memory audit to docs and instructions by @mattleibow in #3529
  • 🏗️ Add daily API docs generation workflow and rewrite docs guide by @mattleibow in #3530
  • 🏗️ Remove update-docs workflow (moved to mono/SkiaSharp-API-docs) by @mattleibow in #3532
  • 🐧 Update libfontconfig-dev for loong64 from 2.17.1-4 to 2.17.1-5 by @mattleibow in #3531
  • 🐧Add SkiaSharp.Views.Gtk4 using GirCore.Gtk-4.0 bindings by @mattleibow in #3527
  • 🏗️ Add AI triage-and-repro workflow with Copilot CLI action by @mattleibow in #3543
  • 🪟 Fix artifact upload on Windows for triage workflow by @mattleibow in #3544
  • 📦 Make add-comment risk dynamic based on content and confidence by @mattleibow in #3547
  • 📦 Make skill action schemas automation-ready with required data fields by @mattleibow in #3548
  • 📦 Update skill-creator from upstream anthropics/skills by @mattleibow in #3550
  • 📦 Enable blank issues in issue template configuration by @mattleibow in #3551
  • 📦 Add Skia core CVE tracking to security audit skill by @mattleibow in #3556
  • 📦 Update skills: add update-skia, sync skill-creator from upstream by @mattleibow in #3558
  • 🏗️ Update to .NET 10 SDK with workload version set pinning by @mattleibow in #3514
  • 🍎 Fix tvOS: split device/simulator native builds to match iOS pattern by @mattleibow in #3561
  • 🍎 Fix tvOS NativeReference targets to split device/simulator frameworks by @mattleibow in #3563
  • 🐧 Fix Cairo assertion crash in GTK4 SKDrawingArea by @mattleibow in #3562
  • 🏗️ Simplify Docker build infrastructure and fix CI by @mattleibow in #3564
  • 🏗️ Enable dotnetUseGlobalJson in Azure pipeline by @mattleibow in #3566
  • 🍎 Fix generator: add macOS SDK system includes for CppAst by @mattleibow in #3568
  • 🏗️ Fix generate.ps1 error propagation by @mattleibow in #3569
  • 🏗️ Add GitHub workflow to publish samples using latest NuGet version by @mattleibow in #3570
  • 📦 Update issue pipeline skills: persist to output/ai/ and path fixes by @mattleibow in #3571
  • 📦 Strengthen update-skia skill enforcement after compliance failures by @mattleibow in #3573
  • 📦 Improve update-skia skill: extract references, add scripts, improve tone by @mattleibow in #3574
  • 📦 Update explore agent launch instructions in SKILL.md by @mattleibow in #3575
  • 📦 Add review-skia-update skill and unify persist pattern by @mattleibow in #3567
  • 📦 Move documentation/ files to documentation/dev/ subfolder by @mattleibow in #3577
  • 📦 Add HTML review viewer and direct diff for changed files by @mattleibow in #3579
  • 📦 Add render step to review-skia-update skill Phase 4 by @mattleibow in #3580
  • 🏗️ Pin .NET SDK to 10.0.1xx band (10.0.105) to fix CI by @mattleibow in #3582
  • 📦 Improve HTML viewer: syntax highlighting, DEPS layout, companion PR by @mattleibow in #3581
  • 📦 review-skia-update: add relatedFiles cross-links and fix viewed checkbox by @mattleibow in #3585
  • 🌐 Redesign Gallery as interactive Blazor WASM showcase with 21 demos by @mattleibow in #3578
  • 📦 Improve review-skia-update skill: require verification of removed patches by @mattleibow in #3586
  • 🏗️ Split NuGet mega-packages to stay under 500MB feed limit by @mattleibow in #3584
  • 🎨 Refactor SKManagedStream: replace parent/child chain with SKData snapshot for duplicate/fork by @mattleibow in #3589
  • 📦 Update Console sample with improved drawing and README by @mattleibow in #3590
  • 🌐 Update Browser WebAssembly sample with README and screenshot by @mattleibow in #3591
  • 🐧 Update GTK 3 sample with multi-page layout and README by @mattleibow in #3593
  • 🐧 Update GTK 4 sample with multi-page layout and README by @mattleibow in #3594
  • 🤖 Update Android sample with Material 3 multi-page layout by @mattleibow in #3595
  • 🍎 Update iOS sample with split-view sidebar and multi-page layout by @mattleibow in #3596
  • 🍎 Update Mac Catalyst sample with tab bar and multi-page layout by @mattleibow in #3597
  • 🍎 Update macOS sample with toolbar tabs and multi-page layout by @mattleibow in #3598
  • 🍎 Update tvOS sample with tab bar and GPU pages by @mattleibow in #3599
  • 📦 Update MAUI sample with Shell flyout and multi-page layout by @mattleibow in #3600
  • 🌐 Update Blazor WebAssembly sample with multi-page layout and README by @mattleibow in #3601
  • 🪟 Update WPF sample with multi-page layout and drawing support by @mattleibow in #3602
  • 🪟 Update Windows Forms sample with multi-page layout and drawing by @mattleibow in #3603
  • 🪟 Update WinUI 3 sample with NavigationView and multi-page layout by @mattleibow in #3604
  • 📦 Update Web (ASP.NET Core) sample with modernized code and README by @mattleibow in #3605
  • 🏗️ Restructure Docker samples and add READMEs by @mattleibow in #3606
  • 📦 Improve review-skia-update skill: fix header link, add expand/collapse by @mattleibow in #3613
  • 🪟 Use DesignMode property directly in WindowsForms controls by @mattleibow in #3614
  • 🏗️ Validate-samples skill, samples build refactor, and stale file cleanup by @mattleibow in #3616
  • 🌐 Fix WASM Docker build scripts for ARM hosts and add features argument by @mattleibow in #3618
  • 📦 Update Tizen support: Studio 6.1, TFM fixes, and 3-tab sample by @mattleibow in #3619
  • 📦 Add Tizen x64 and arm64 native build support by @mattleibow in #3620
  • 🌐 Add workflow to deploy Gallery WASM sample to GitHub Pages by @mattleibow in #3622
  • 📦 Add landing page, migrate docs to main, and unify site deployment by @mattleibow in #3623
  • 🏗️ Update rollForward from latestPatch to latestFeature by @mattleibow in #3624
  • 🏗️ Reduce disk usage in Docker sample builds by @mattleibow in #3625
  • 📦 Target net6.0-tizen8.0 in Tizen sample for broader device compatibility by @mattleibow in #3626
  • 📦 Enforce -Wl,--no-undefined linker flag for Linux and Android native builds by @mattleibow in #3629
  • 🪟❤️ Update FullFrameworkTargetFrameworks to net48 by @4Darmygeometry in #3631
  • 🪟 Delay-load D3D12 DLLs to prevent crashes on systems without DX12 by @mattleibow in #3633
  • 🌐 Build WASM natives in docs workflow instead of ...
Read more

Version 3.119.3 (Preview 1)

11 Feb 12:59

Choose a tag to compare

Pre-release

New Features

What's Changed

New Contributors

Full Changelog: v3.119.2...v3.119.3-preview.1.1

Version 3.119.2

07 Feb 13:39
2888c73

Choose a tag to compare

What's Changed

  • 🐧❤️ Add Spectre mitigation flag for libSkiaSharp.so. (originally by @sshumakov in #3502) by @github-actions in #3503

Full Changelog: v3.119.2-preview.3.1...v3.119.2