Releases: mono/SkiaSharp
Version 4.148.0
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)
Preview of SkiaSharp 4.150 built on Skia engine milestone 150.
📦 NuGet · 📖 Release notes · 🔀 Full changelog
✨ What's New
- Updated Skia engine to milestone 150 by @mattleibow (#4146)
All changes (2 pull requests)
- [skia-sync] Update skia to milestone 150 by @mattleibow in #4146
- feat: Add job-level status to release-status skill pipeline script by @mattleibow in #4159
Version 4.148.0 (RC 1)
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
SKPainttext/font members now emit build errors — update call sites by @ramezgerges (#4068) - Remaining legacy
SKPaintstate-reading APIs marked obsolete; expect new compiler warnings by @mattleibow (#4114)
✨ What's New
- Updated Skia engine to milestone 148 by @mattleibow (#4125)
- Improved lifecycle management for shared singleton
SKObjectinstances by @ramezgerges (#4080)
🐛 Fixes
- Fixed WinUI Projection DLL not resolving for .NET 9 consumers on Windows by @mattleibow (#4084)
- Fixed
SKPixmap.GetPixelSpanoffset calculation (was using Height instead of Width) by @mattleibow (#4128) - Fixed
SKPixmap/SKBitmapGetPixelSpanto useRowBytesfor correct stride by @mattleibow (#4148)
📦 Dependency Updates
- Updated HarfBuzz to 14.2.0 by @mattleibow (#4035)
- Updated expat to 2.8.1 by @mattleibow (#4079)
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 testby @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)
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
HBColorstruct for proper HarfBuzzhb_color_trepresentation 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
- Updated zlib to 1.3.2.1-motley by @mattleibow (#3720)
- Updated FreeType to 2.14.3 by @mattleibow (#3726)
- Updated libjpeg-turbo to 3.1.4.1 by @mattleibow (#4012)
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
- @ebariche made their first contribution in #3849
- @sasakrsmanovic made their first contribution in #3966
Version 3.119.4
Updates bundled libexpat and libpng to their latest versions.
📦 NuGet · 📖 Release notes · 🔀 Full changelog
📦 Dependency Updates
- Updated libexpat to 2.7.5 by @mattleibow (#3722)
- Updated libpng to 1.6.58 by @mattleibow (#3723)
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)
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
SKWebpEncoderby @mattleibow (#3771) - Add
SKStream.GetData()for zero-copy stream-to-data conversion by @mattleibow (#3772)
🐛 Fixes
- Fix finalizer crash in
SKPathwhenSKPathBuilderis 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)
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
- Updated Skia engine to milestone 147 by @ramezgerges (#3702)
- Variable font support added to
SKFontandSKTypefaceby @ramezgerges (#3703) - Color font palette support and improved variable font robustness by @mattleibow (#3742)
- Added Tizen and Android Bionic Library native build support by @mattleibow, @4Darmygeometry (#3620, #3217)
- Added
SKSamplingOptionsoverloads toSKSurface.DrawandSKCanvas.DrawSurfaceby @mattleibow (#3491)
🐛 Fixes
- Fixed
SKGLViewon Android not rendering when using aTabBarby @SimonvBez (#3076) - Fixed default typeface resolution for
SKFont,SKPaint, andSKTypefaceby @ramezgerges (#3730)
📦 Dependency Updates
- Updated libexpat to 2.7.5 by @mattleibow (#3717)
- Updated libpng to 1.6.58 by @mattleibow (#3718)
Thanks to our contributors: @SimonvBez, @ramezgerges, @4Darmygeometry
All changes (63 pull requests)
- Bump SkiaSharp to milestone 132 by @ramezgerges in #3560
- Update build-site workflow to remove path filters by @mattleibow in #3653
- Add Tizen x64 and arm64 native build support by @mattleibow in #3620
- Add PolySharp for C# 13 support on legacy TFMs by @4Darmygeometry in #3642
- Fixed SKGLView on Android not being rendered when using a TabBar by @SimonvBez in #3076
- Fix cgmanifest.json version drift and improve security-audit skill by @mattleibow in #3656
- Improve update-skia skill from m133 bump analysis by @mattleibow in #3658
- Fix review-skia-update milestone detection by @mattleibow in #3665
- Auto-sync submodules and DEPS in review-skia-update orchestrator by @mattleibow in #3667
- [Gallery] Refine Image Decoder metadata overlay by @mattleibow in #3669
- Redesign docs homepage: gallery, features, code showcase & cleanup by @mattleibow in #3668
- Fix docs deploy race condition by serializing Go Live deployments by @mattleibow in #3670
- Improve update-skia merge conflict guidance by @mattleibow in #3662
- Bump skia to milestone 133 (G) by @mattleibow in #3660
- Add Android Bionic Library build support by @4Darmygeometry in #3217
- Add weekly sweep to clean stale PR staging directories by @mattleibow in #3671
- Add release-notes-audit skill for Skia API gap analysis by @mattleibow in #3675
- [build] Split Tizen native CI into per-architecture jobs by @mattleibow in #3672
- Move AI agent config to shared location for Claude Code and GitHub Copilot by @ramezgerges in #3692
- Add daily-digest agentic workflow by @mattleibow in #3694
- Revert "Add daily-digest agentic workflow" by @mattleibow in #3696
- Move skills from .claude/ to .agents/ by @mattleibow in #3697
- Clean up issue-triage skill + add auto-triage workflow by @mattleibow in #3704
- Fix auto-triage: set min-integrity=none for public issue access by @mattleibow in #3706
- Fix issue-triage skill paths for gh-aw sandbox compatibility by @mattleibow in #3707
- Clean up issue-triage skill: semantic enum ordering, cost labels, schema fixes by @mattleibow in #3708
- Add gh-aw agent config and actions lock by @mattleibow in #3709
- [auto-triage] Fix label application and tune scheduling by @mattleibow in #3710
- [auto-triage] Upload triage reports (JSON/MD/HTML) to agent artifact by @mattleibow in #3711
- Update SKIASHARP_VERSION to 3.133.0 by @mattleibow in #3713
- Free disk space on Linux CI agents by @mattleibow in #3712
- Bump SkiaSharpGenerator to CppAst 0.21.4 and make it work on Linux by @ramezgerges in #3714
- [main] Update libexpat to 2.7.5 by @mattleibow in #3717
- [main] Update libpng to 1.6.58 by @mattleibow in #3718
- [CI] Improve Android CI disk space and emulator startup by @mattleibow in #3676
- Improve native-dependency-update skill with post-mortem fixes by @mattleibow in #3727
- Add Suggested Repro Platform to auto-triage workflow by @mattleibow in #3729
- Update Uno Platform sample by @ramezgerges in #3666
- review-skia-update: Add --milestone parameter for explicit milestone input by @mattleibow in #3731
- Fix #3693: move default-typeface resolution to the managed layer by @ramezgerges in #3730
- Bump externals/skia to include sk_fontmgr_legacy_create_typeface by @mattleibow in #3744
- Update devcontainers: split into managed and native configs by @mattleibow in #3745
- Fix debian/13 Docker build for non-loong64/riscv64 architectures by @mattleibow in #3747
- Add staging URL to docs deploy commit message by @mattleibow in #3748
- Replace release-notes-audit with skia-feature-scout skill by @mattleibow in #3746
- Fix YAML syntax error in build-site workflow by @mattleibow in #3750
- Upgrade SkiaSharp major version from 3.x to 4.x by @mattleibow in #3640
- Variable font support by @ramezgerges in #3703
- Fix x86 .NET Framework threading test OOM failures (#3608) by @mattleibow in #3674
- Add color font palette support and improve variable font robustness by @mattleibow in #3742
- Pre-fetch skia PR ref in submodule before companion PR fetch by @mattleibow in #3753
- Add SKSamplingOptions support to SKSurface.Draw and SKCanvas.DrawSurface by @mattleibow with @Copilot in #3491
- Expand API design docs and rename add-api skill to api-add-review by @mattleibow in #3749
- Add gallery sample guidance to api-add-review skill by @mattleibow in #3756
- [samples] Add Uno Platform WebAssembly gallery by @ramezgerges in #3758
- Add download button and fix WASM text rendering in gallery by @mattleibow in #3760
- Add FillPath and TextToPath gallery samples by @mattleibow in #3761
- Update the icon for the new v4 by @mattleibow in #3764
- Add website release notes with AI-powered generation pipeline by @mattleibow in #3763
- [samples] Add SkiaFiddle Uno Platform WebAssembly sample by @ramezgerges in #3762
- Bump skia to milestone 147 by @ramezgerges in #3702
- Delete samples/Gallery/Uno/nuget.config by @mattleibow in #3765
- Update SKIASHARP version to 4.147.0 by @mattleibow in #3774
New Contributors
- @SimonvBez made their first contribution in #3076
Version 3.119.4 (Preview 1)
New Features
- 🐧Add SkiaSharp.Views.Gtk4 using GirCore.Gtk-4.0 bindings by @mattleibow in #3527
- 🐧❤️ Add Linux Bionic native assets support by @4Darmygeometry in #3217
- 📦❤️ Add PolySharp for C# 13 support on legacy TFMs by @4Darmygeometry in #3642
- 📦 Add Tizen x64 and arm64 native build support by @mattleibow in #3620
- 🪟 Delay-load D3D12 DLLs to prevent crashes on systems without DX12 by @mattleibow in #3633
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 ...
Version 3.119.3 (Preview 1)
New Features
- 📦 Update libpng to 1.6.54 by @mattleibow in #3452
- 📦 Bump libexpat from 2.6.4 to 2.7.3 by @mattleibow in #3458
- 📦 Update brotli to 1.2.0 by @mattleibow in #3469
- 📦 Update libwebp to 1.6.0 by @mattleibow in #3478
- 🪟❤️ Add Spectre mitigation flag for libSkiaSharp.dll. by @sshumakov in #3496
- 🐧❤️ Add Spectre mitigation flag for libSkiaSharp.so. by @sshumakov in #3502
- 🎨 Fix AoT crash when IlcDisableReflection=true by @Copilot in #3485
- 🐧 Fix Linux ARM64 crash caused by missing fontconfig in cross-compile sysroot by @mattleibow in #3494
What's Changed
- 🏗️ Bump to the next version (3.119.3) after release by @mattleibow in #3446
- 📦 Document HarfBuzzSharp versioning in release process by @mattleibow in #3447
- 📦 Add API guidelines and implement-issue skill by @mattleibow in #3445
- 🏗️ Fix the version processing by @mattleibow in #3450
- 📦 Add AI release skills and integration test suite by @mattleibow in #3451
- 📦 Add AI skill for native dependency updates by @mattleibow in #3453
- 📦 Update docs submodule by @mattleibow in #3454
- 📦 Update libpng to 1.6.54 by @mattleibow in #3452
- 📦 Update the native dependency bump skills by @mattleibow in #3455
- 🏗️ Update SkiaSharp package source URL in nuget.config by @mattleibow in #3459
- 📦 Update native-dependency-update skill with guardrails by @mattleibow in #3457
- 📦 Update more AI skills by @mattleibow in #3460
- 📦 Remove unused dependencies and add dependencies documentation by @mattleibow in #3463
- 📦 Bump libexpat from 2.6.4 to 2.7.3 by @mattleibow in #3458
- 📦 Update brotli to 1.2.0 by @mattleibow in #3469
- 🏗️ Fix skia submodule to point to squashed commit by @mattleibow in #3474
- 📦 Strengthen skill guidance on submodule merge sequence by @mattleibow in #3475
- 📦 Add debugging methodology documentation by @mattleibow in #3468
- 📦 Improve native-dependency-update skill instructions by @mattleibow in #3477
- 📦 Update libwebp to 1.6.0 by @mattleibow in #3478
- 🏗️ Add NuGet feed management tools and PR package download script by @mattleibow in #3479
- 🏗️ Use the new CI feed to download the pre-built artifacts by @mattleibow in #3486
- 📦 Add structured workflow for adding APIs to SkiaSharp by @Copilot in #3483
- 📦 Improve AI instructions and skills by @mattleibow in #3488
- 🎨 Fix AoT crash when IlcDisableReflection=true by @Copilot in #3485
- 📦 Improve bugfixing skills by @mattleibow in #3493
- 🏗️ Use the dev/ branch prefix by @mattleibow in #3495
- 🐧 Fix Linux ARM64 crash caused by missing fontconfig in cross-compile sysroot by @mattleibow in #3494
- 🪟❤️ Add Spectre mitigation flag for libSkiaSharp.dll. by @sshumakov in #3496
- 📦 Fix release-testing skill package resolution guidance by @mattleibow in #3500
- 📦 Fix release-testing skill consistency issues by @mattleibow in #3501
- 🐧❤️ Add Spectre mitigation flag for libSkiaSharp.so. by @sshumakov in #3502
- 📦 Add semver ordering guidance to release skills by @mattleibow in #3504
- 📦 Fix stable version handling in release skills by @mattleibow in #3505
- 🐧 Add Linux Docker integration tests for release testing by @mattleibow in #3506
- 🏗️ Bump to the next version (3.119.3) after release by @mattleibow in #3507
New Contributors
- @sshumakov made their first contribution in #3496
Full Changelog: v3.119.2...v3.119.3-preview.1.1
Version 3.119.2
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