Add validate-samples skill and building-samples documentation#3553
Closed
mattleibow wants to merge 275 commits into
Closed
Add validate-samples skill and building-samples documentation#3553mattleibow wants to merge 275 commits into
mattleibow wants to merge 275 commits into
Conversation
- nuget.org is disallowed in CI, must be removed before merging - buildExternals must be reset to 'latest' before merging - Add note about temporarily adding nuget.org during development
XyzCanInverts and AdobeRGB1998IsRGB tests fail with PRECISION=4 due to floating-point differences in matrix operations across .NET versions. Reduce to precision 3 which is sufficient for these colorspace tests.
- Capture Tizen workload install output and check for error patterns - Fail the script if Tizen installation fails (even if exit code is 0) - Remove --source nuget.org from dotnet workload install (disallowed) - Use Azure DevOps error format ##[error] for visibility
The Samsung script's shebang (#!/bin/bash -e) is ignored because there are comment lines before it. Explicitly passing -e to bash ensures the script exits immediately when dotnet workload install fails.
Samsung's LatestVersionMap doesn't include 10.0.100 yet, so the script fails to auto-detect the correct manifest. Explicitly pass --dotnet-target-version-band 10.0.100 to fix this.
Replace Samsung's install script (which hardcodes nuget.org URLs) with a simpler approach: 1. Download Tizen manifest nupkg from dotnet-public feed 2. Extract data/ folder to SDK manifests directory 3. Run 'dotnet workload install tizen --skip-manifest-update' This avoids blocked nuget.org URLs in CI and works with .NET 10 where Samsung's LatestVersionMap doesn't include 10.0.100 yet. Tested successfully in Docker with .NET 10 SDK.
- Change Tizen param to BAND/VERSION format (e.g., 10.0.100/10.0.123) - Combine all workloads into single dotnet workload install call - Remove --skip-manifest-update (not needed after manifest extraction) - Add maui-android workload on Linux - Reduce script from 89 to 69 lines Tested successfully in Docker with .NET 10 SDK.
- MacCatalyst: 13.1 -> 15.0 - macOS: 11.0 -> 12.0 - tvOS: 11.0 -> 12.2 - MAUI iOS: 14.2 -> 12.2 - MAUI MacCatalyst: 14.0 -> 15.0 Also update MAUI sample TFMs from net9.0 to net10.0.
The .NET 10 static web assets compression runs before TypeScript compilation completes, causing 'asset not found' errors. Block MSBuild TypeScript compilation and use pre-compiled JS files checked into git instead.
Contributor
Author
7e759b7 to
5c26b73
Compare
…ase-preview patterns
Audited all 1533 versions on the SkiaSharp-CI feed. Added missing patterns:
- commit builds: 0.0.0-commit.{sha}.{build} (752 versions, most common)
- custom branches: 0.0.0-branch.{name}.{build} (e.g. v2.80.4)
- release previews: 0.0.0-branch.release.{ver}-preview.{n}.{build}
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The CI feed uses wrapper packages (0.0.0-branch.main.N) that contain the real NuGet packages (3.119.4-preview.0.76) inside their tools/ dir. Download args select the CI wrapper; build args use the real version. Removed the CI feed version pattern table from the skill doc since those are internal implementation details, not user-facing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build system: - Add TFMMinimum=net6.0 for platforms where device runtime lags behind SDK - Add TPVTizenMinimum=8.0 for minimum Tizen platform version - Update Tizen Studio to 6.1 with both MOBILE-6.0 and TIZEN-8.0 native dev - Add x64/arm64 builds to native/tizen/build.cake using tizen-8.0 rootstraps - Update Skia GN BUILDCONFIG to support x64 and arm64 target_cpu for Tizen - Add #if NET7_0_OR_GREATER guard for LibraryImport in GRGlInterface.cs - Update global.json rollForward to latestFeature for SDK compatibility Packaging: - Add tizen-x64 and tizen-arm64 RIDs to IncludeNativeAssets targets - Fix x86 RID from linux-x86 to tizen-x86 - Add all 4 architecture PackageFile entries to NativeAssets.Tizen csprojs Tizen sample: - Port from legacy ElmSharp to modern Tizen.NUI framework - Simplified to CPU canvas demo (gradient, circles, text) - Target net6.0-tizen8.0 (runs on all Tizen 8.0+ devices) - Update tizen-manifest.xml to api-version 8 New script: - Add workload-install-tizen.ps1 for Samsung Tizen .NET workload Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Tizen Linux build was disabled due to #2933. Re-enable it now that Tizen Studio 6.1 is used with both MOBILE-6.0 and TIZEN-8.0 native development packages supporting all 4 architectures (arm, x86, x64, arm64). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Tizen Studio 6.1 installer fails if the target directory already exists (from a retry). Add cleanup step before install. The Tizen Studio package manager requires Python 3.8 which isn't in Ubuntu 22.04 default repos. Install from deadsnakes PPA on Linux. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The LLVM 10 clang++ from Tizen Studio requires libtinfo.so.5 which is not installed by default on Ubuntu 22.04 (it ships libtinfo6). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add libtinfo5 to TIZEN_LINUX_PACKAGES (LLVM 10 clang++ needs it) - Dynamically set project_def.prop profile to tizen-8.0 for 64-bit builds (x64/arm64) to match the rootstrap platform libs - Clean build output between architecture builds to avoid stale artifacts Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The system FreeType in the mobile-6.0-device.core rootstrap is too old for the current Skia code which uses COLRv1 color font APIs (FT_Get_Color_Glyph_Paint, etc.). This is the same pre-existing issue that originally caused the Linux build to be disabled. Windows and macOS Tizen builds work because they handle FreeType linking differently during cross-compilation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Mar 30, 2026
- build.cake: covered by #3615 (samples cake refactor) - source/SkiaSharp.Build*.props: covered by #3592 (Tizen) - WindowsForms controls: covered by #3614 (DesignMode fix) - samples/ deletions: orphaned without additions, reverted - .github/skills/validate-samples/: new skill, not needed yet - documentation/dev/building-samples.md: orphaned docs - global.json: minor rollForward change, reverted Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep only the validate-samples skill and building-samples documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Mar 30, 2026
Contributor
Author
|
Closing this PR — all changes have been extracted into focused PRs:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


























Add a Copilot skill and developer documentation for building and validating SkiaSharp sample projects.
Changes
validate-samples skill
A Copilot skill that automates building and validating sample projects using CI-produced NuGet packages. It downloads the latest CI artifacts, detects the preview version, and runs the samples cake target to verify all samples compile correctly.
Building samples documentation
Developer guide explaining how to build samples using the CI artifacts feed, wrapper package structure, the samples cake target, manual local builds, and troubleshooting.
Other changes from the original PR have been extracted into focused PRs: