Skip to content

Fix release-line Skia sync startup - #4657

Merged
mattleibow merged 1 commit into
mainfrom
mattleibow-fix-workflow-failure
Aug 4, 2026
Merged

Fix release-line Skia sync startup#4657
mattleibow merged 1 commit into
mainfrom
mattleibow-fix-workflow-failure

Conversation

@mattleibow

Copy link
Copy Markdown
Contributor

Description

Remove the pre-agent native base build and cache added by #4573. That build ran while the parent checkout still contained the workflow branch's files, even after externals/skia had been aligned to a release branch. In run 30932472778, release/4.150.x therefore built its m150 Skia submodule against main's m151 scripts/VERSIONS.txt and failed before the agent could check out the resolved parent branch.

The agent again owns parent/submodule feature-branch checkout and the mandatory source build. Its instructions now require branching from the exact resolved bases before merging or building and note that the first cold native build normally takes 10–20 minutes.

Related issues

N/A. Fixes the regression observed in workflow run 30932472778.

Required skia PR

None.

Areas affected

  • Managed API (binding/)
  • Native / C API (externals/skia/src/c, include/c)
  • Generated P/Invoke bindings
  • Native dependency or Skia update (libpng, HarfBuzz, FreeType, zlib, milestone bump, …)
  • Views & integrations (MAUI, Uno, WPF, WinUI, Blazor, …)
  • Rendering output / visual behavior
  • Performance
  • Tests
  • Build, packaging, or CI
  • Documentation or samples

Changes

None — CI-only; no public API or product behavior changes.

Testing

Regenerated the locked workflow with gh aw compile auto-skia-sync --validate. Strict validation completed with 0 errors and 0 warnings. No separate test was added because this removes the faulty optimization and the generated workflow is the executable artifact.

Checklist

  • Tests added or updated (not applicable; workflow source and generated output were compiler-validated)
  • Changes above lists all public API and behavioral changes (or "None.")
  • New/changed public API? N/A — no public API changes
  • Native change? N/A — no native changes

Remove the pre-agent native base build and cache so release syncs do not build an aligned Skia submodule against workflow-branch metadata. Reinforce exact base branching and document the expected 10-20 minute cold build.

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

Copilot-Session: e98e70c5-d7b0-4a58-8991-9fd2d751fc03
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

📦 Try the packages from this PR

Warning

Do not run these scripts without first reviewing the code in this PR.

Step 1 — Download the packages

bash / macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 4657

PowerShell / Windows:

iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 4657"

Step 2 — Add the local NuGet source

dotnet nuget add source ~/.skiasharp/hives/pr-4657/packages --name skiasharp-pr-4657
More options
Option Description
--successful-only / -SuccessfulOnly Only use successful builds
--force / -Force Overwrite previously downloaded packages
--list / -List List available artifacts without downloading
--build-id ID / -BuildId ID Download from a specific build

Or download manually from Azure Pipelines — look for the nuget artifact on the build for this PR.

Remove the source when you're done:

dotnet nuget remove source skiasharp-pr-4657

@mattleibow
mattleibow merged commit b623810 into main Aug 4, 2026
4 of 6 checks passed
@mattleibow
mattleibow deleted the mattleibow-fix-workflow-failure branch August 4, 2026 18:06
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

📖 Documentation Preview

The documentation for this PR has been deployed and is available at:

🔗 View Staging Site
🔗 View Staging Docs
🔗 View Staging Gallery (Blazor)
🔗 View Staging Gallery (Uno Platform)
🔗 View Staging SkiaFiddle

This preview will be updated automatically when you push new commits to this PR.


This comment is automatically updated by the documentation staging workflow.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

📊 SkiaSharp benchmarks — PR #4657

this PR (full source build) vs 🌙 nightly · Linux · Windows · macOS

Informational only — this never blocks the PR. 🟢 faster / less allocation · 🔴 slower / more allocation; moves under 5% are hidden as noise.

⏱️ Times are raw BenchmarkDotNet means, and the ⭐ PR and baseline legs run on separate CI runners, so microbenchmarks can swing run-to-run — treat small time deltas as noise. Allocations are deterministic and the reliable signal. The interactive perf-dashboard (linked below) applies smoothing for the trend view.

Highlights

⏱️ Time — 🔴 1 slower · 🟢 1 faster

  • 🔴 ColorParseBenchmark.Parse(Iterations: 1000) · Linux · 59.16 µs → 76.79 µs (+30%)
  • 🟢 ColorParseBenchmark.Parse(Iterations: 1000) · Windows · 76.74 µs → 55.34 µs (-28%)
Full per-OS benchmark deltas

Linux

⏱️ Time (vs 🌙 nightly 4.151.0-nightly.124)

Benchmark baseline this PR Δ
ColorParseBenchmark.Parse(Iterations: 1000) 59.16 µs 76.79 µs 🔴 +30%

Windows

⏱️ Time (vs 🌙 nightly 4.151.0-nightly.124)

Benchmark baseline this PR Δ
ColorParseBenchmark.Parse(Iterations: 1000) 76.74 µs 55.34 µs 🟢 -28%

📈 Full interactive perf-dashboard & run details →

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

📦 Artifact size report

Packages from this PR (build 1539737) vs the latest nightly baseline 4.151.0-nightly.124 (observed 2026-08-04).

Total .nupkg size: 569.4 MB → 569.3 MB (−112.6 KB, -0.0%)

Packages

⚠️ marks growth over 500.0 KB or 2%. Changes under 50.0 KB are treated as noise.

Package baseline this PR Δ Δ%
SkiaSharp.NativeAssets.WinUI 109.1 MB 108.5 MB 🟢 −601.2 KB -0.5%
SkiaSharp.NativeAssets.WebAssembly 69.6 MB 69.7 MB 🔴 +136.8 KB +0.2%
SkiaSharp.NativeAssets.Win32 85.6 MB 85.7 MB 🔴 +118.1 KB +0.1%
SkiaSharp.NativeAssets.Linux 63.1 MB 63.2 MB 🔴 +73.0 KB +0.1%
SkiaSharp.NativeAssets.Linux.NoDependencies 63.0 MB 63.0 MB 🔴 +70.4 KB +0.1%

+35 package(s) unchanged (< 50.0 KB).

Per-file changes

SkiaSharp.NativeAssets.Linux

File Size
🧬 linux-arm64 (runtimes/linux-arm64/native/libSkiaSharp.so) 12.2 MB → 12.2 MB (🔴 +18.2 KB)
🧬 linux-musl-arm64 (runtimes/linux-musl-arm64/native/libSkiaSharp.so) 12.3 MB → 12.3 MB (🔴 +18.1 KB)
🧬 linux-loongarch64 (runtimes/linux-loongarch64/native/libSkiaSharp.so) 11.8 MB → 11.8 MB (🔴 +17.2 KB)
🧬 linux-bionic-arm64 (runtimes/linux-bionic-arm64/native/libSkiaSharp.so) 12.4 MB → 12.5 MB (🔴 +17.0 KB)
🧬 linux-musl-loongarch64 (runtimes/linux-musl-loongarch64/native/libSkiaSharp.so) 12.0 MB → 12.0 MB (🔴 +17.0 KB)
🧬 linux-riscv64 (runtimes/linux-riscv64/native/libSkiaSharp.so) 11.2 MB → 11.2 MB (🔴 +17.0 KB)
🧬 linux-musl-riscv64 (runtimes/linux-musl-riscv64/native/libSkiaSharp.so) 11.3 MB → 11.3 MB (🔴 +16.8 KB)
🧬 linux-arm (runtimes/linux-arm/native/libSkiaSharp.so) 8.8 MB → 8.8 MB (🔴 +11.8 KB)
🧬 linux-musl-arm (runtimes/linux-musl-arm/native/libSkiaSharp.so) 8.8 MB → 8.8 MB (🔴 +11.6 KB)
🧬 linux-x86 (runtimes/linux-x86/native/libSkiaSharp.so) 13.3 MB → 13.3 MB (🔴 +3.5 KB)
🧬 linux-x64 (runtimes/linux-x64/native/libSkiaSharp.so) 12.3 MB → 12.3 MB (🔴 +3.4 KB)
🧬 linux-musl-x64 (runtimes/linux-musl-x64/native/libSkiaSharp.so) 12.4 MB → 12.4 MB (🔴 +3.3 KB)
🧬 linux-bionic-x64 (runtimes/linux-bionic-x64/native/libSkiaSharp.so) 12.3 MB → 12.3 MB (🔴 +2.3 KB)

SkiaSharp.NativeAssets.Linux.NoDependencies

File Size
🧬 linux-arm64 (runtimes/linux-arm64/native/libSkiaSharp.so) 12.2 MB → 12.2 MB (🔴 +18.2 KB)
🧬 linux-musl-arm64 (runtimes/linux-musl-arm64/native/libSkiaSharp.so) 12.3 MB → 12.3 MB (🔴 +18.2 KB)
🧬 linux-loongarch64 (runtimes/linux-loongarch64/native/libSkiaSharp.so) 11.8 MB → 11.8 MB (🔴 +17.1 KB)
🧬 linux-bionic-arm64 (runtimes/linux-bionic-arm64/native/libSkiaSharp.so) 12.4 MB → 12.5 MB (🔴 +17.0 KB)
🧬 linux-musl-loongarch64 (runtimes/linux-musl-loongarch64/native/libSkiaSharp.so) 12.0 MB → 12.0 MB (🔴 +17.0 KB)
🧬 linux-riscv64 (runtimes/linux-riscv64/native/libSkiaSharp.so) 11.1 MB → 11.1 MB (🔴 +17.0 KB)
🧬 linux-musl-riscv64 (runtimes/linux-musl-riscv64/native/libSkiaSharp.so) 11.3 MB → 11.3 MB (🔴 +16.8 KB)
🧬 linux-arm (runtimes/linux-arm/native/libSkiaSharp.so) 8.7 MB → 8.7 MB (🔴 +11.8 KB)
🧬 linux-musl-arm (runtimes/linux-musl-arm/native/libSkiaSharp.so) 8.8 MB → 8.8 MB (🔴 +11.6 KB)
🧬 linux-x64 (runtimes/linux-x64/native/libSkiaSharp.so) 12.3 MB → 12.3 MB (🔴 +3.5 KB)
🧬 linux-x86 (runtimes/linux-x86/native/libSkiaSharp.so) 13.3 MB → 13.3 MB (🔴 +3.5 KB)
🧬 linux-musl-x64 (runtimes/linux-musl-x64/native/libSkiaSharp.so) 12.4 MB → 12.4 MB (🔴 +3.3 KB)
🧬 linux-bionic-x64 (runtimes/linux-bionic-x64/native/libSkiaSharp.so) 12.3 MB → 12.3 MB (🔴 +2.3 KB)

SkiaSharp.NativeAssets.WebAssembly

File Size
🧬 wasm 5.0.6/st,simd · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/5.0.6/st,simd/libSkiaSharp.a) 18.2 MB → 18.2 MB (🔴 +25.4 KB)
🧬 wasm 5.0.6/st · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/5.0.6/st/libSkiaSharp.a) 17.9 MB → 18.0 MB (🔴 +25.4 KB)
🧬 wasm 5.0.6/mt,simd · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/5.0.6/mt,simd/libSkiaSharp.a) 18.2 MB → 18.2 MB (🔴 +25.2 KB)
🧬 wasm 5.0.6/mt · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/5.0.6/mt/libSkiaSharp.a) 17.9 MB → 17.9 MB (🔴 +25.2 KB)
🧬 wasm 3.1.56/st · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.56/st/libSkiaSharp.a) 17.8 MB → 17.8 MB (🔴 +22.4 KB)
🧬 wasm 3.1.56/mt · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.56/mt/libSkiaSharp.a) 17.7 MB → 17.8 MB (🔴 +22.4 KB)
🧬 wasm 3.1.56/st,simd · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.56/st,simd/libSkiaSharp.a) 18.0 MB → 18.1 MB (🔴 +21.8 KB)
🧬 wasm 3.1.56/mt,simd · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.56/mt,simd/libSkiaSharp.a) 18.0 MB → 18.0 MB (🔴 +21.7 KB)
🧬 wasm 3.1.34/st,simd · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/st,simd/libSkiaSharp.a) 15.9 MB → 15.9 MB (🔴 +20.7 KB)
🧬 wasm 3.1.34/st · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/st/libSkiaSharp.a) 15.6 MB → 15.6 MB (🔴 +20.7 KB)
🧬 wasm 3.1.34/mt · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/mt/libSkiaSharp.a) 15.5 MB → 15.6 MB (🔴 +20.5 KB)
🧬 wasm 3.1.34/mt,simd · libSkiaSharp.a (buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/mt,simd/libSkiaSharp.a) 15.8 MB → 15.8 MB (🔴 +20.5 KB)

SkiaSharp.NativeAssets.Win32

File Size
runtimes/win-x64/native/libSkiaSharp.pdb 94.1 MB → 94.3 MB (🔴 +244.0 KB)
runtimes/win-x86/native/libSkiaSharp.pdb 96.8 MB → 97.1 MB (🔴 +244.0 KB)
runtimes/win-arm64/native/libSkiaSharp.pdb 91.0 MB → 91.2 MB (🔴 +220.0 KB)
🧬 win-arm64 (runtimes/win-arm64/native/libSkiaSharp.dll) 11.0 MB → 11.0 MB (🔴 +17.5 KB)
🧬 win-x64 (runtimes/win-x64/native/libSkiaSharp.dll) 12.8 MB → 12.8 MB (🔴 +4.5 KB)
🧬 win-x86 (runtimes/win-x86/native/libSkiaSharp.dll) 11.1 MB → 11.1 MB (🔴 +3.5 KB)

SkiaSharp.NativeAssets.WinUI

File Size
runtimes/win-arm64/native/libGLESv2.pdb 64.5 MB → 64.4 MB (🟢 −112.0 KB)
runtimes/win-x64/native/libGLESv2.pdb 66.6 MB → 66.5 MB (🟢 −112.0 KB)
runtimes/win-x86/native/libGLESv2.pdb 67.3 MB → 67.2 MB (🟢 −96.0 KB)

Informational only — this never blocks the PR. Native binaries are labelled by os/arch.

@mattleibow mattleibow added this to the 4.152.0-preview.1 milestone Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant