Fix release-line Skia sync startup - #4657
Conversation
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
📦 Try the packages from this PRWarning 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 -- 4657PowerShell / 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-4657More options
Or download manually from Azure Pipelines — look for the Remove the source when you're done: dotnet nuget remove source skiasharp-pr-4657 |
|
📖 Documentation Preview The documentation for this PR has been deployed and is available at: 🔗 View Staging Site This preview will be updated automatically when you push new commits to this PR. This comment is automatically updated by the documentation staging workflow. |
📊 SkiaSharp benchmarks — PR #4657⭐ this PR (full source build) vs 🌙 nightly · Linux · Windows · macOS
Highlights⏱️ Time — 🔴 1 slower · 🟢 1 faster
Full per-OS benchmark deltasLinux⏱️ Time (vs 🌙 nightly
Windows⏱️ Time (vs 🌙 nightly
|
📦 Artifact size reportPackages from this PR (build Total Packages
+35 package(s) unchanged (< 50.0 KB). Per-file changes
|
| 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.
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/skiahad been aligned to a release branch. In run 30932472778, release/4.150.x therefore built its m150 Skia submodule against main's m151scripts/VERSIONS.txtand 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
binding/)externals/skia/src/c,include/c)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
Changesabove lists all public API and behavioral changes (or "None.")