Skip to content

update skia skill improvements#3644

Closed
ramezgerges wants to merge 1 commit into
mono:mainfrom
ramezgerges:dev/update-skia-skill-improvements
Closed

update skia skill improvements#3644
ramezgerges wants to merge 1 commit into
mono:mainfrom
ramezgerges:dev/update-skia-skill-improvements

Conversation

@ramezgerges

Copy link
Copy Markdown
Contributor

Description of Change

This PR adds lessons learned during #3560.

Bugs Fixed

  • Fixes #

API Changes

None.

Behavioral Changes

None.

Required skia PR

None.

PR Checklist

  • Has tests (if omitted, state reason in description)
  • Rebased on top of main at time of PR
  • Merged related skia PRs
  • Changes adhere to coding standard
  • Updated documentation

- Add upstream merge guide (new reference) covering genuine merge vs
  tree-override, per-file conflict resolution strategies, and
  post-merge verification steps
- Add 11 new lessons to known-gotchas: git history preservation,
  native memory patterns, PR isolation, GPU test gaps, build flag
  churn, gitmodules, fontconfig guards, enum renumbering, changelog
  convention, refcount relaxation, pixel precision changes
- Expand troubleshooting table with 8 new error/fix entries
- Add recurring breaking change categories to the checklist
- Expand Phase 4 with conflict resolution table, tree-override
  warning, and blame verification
- Add API evolution policy to Phase 8
- Add PR review strategy for large diffs
- Expand typical-changes and Phase 10 checklist with missing files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Apr 5, 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 -- 3644

PowerShell / Windows:

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

Step 2 — Add the local NuGet source

dotnet nuget add source ~/.skiasharp/hives/pr-3644/packages --name skiasharp-pr-3644
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-3644

@ramezgerges

Copy link
Copy Markdown
Contributor Author

@mattleibow It was suggested to me that I should update the skills with what I have in my local Claude state + the m132 PR comments. Feel free to close this if it's more noisy than useful.

mattleibow added a commit that referenced this pull request Apr 10, 2026
Incorporate learnings from PR #3644 and our m133 analysis, focusing on
quality over quantity (-50 lines net).

Key changes:
- breaking-changes-checklist.md: Merge Steps 4a/4b/4c into a single
  'Verify the Analysis' section (was duplicating gotchas 11-13). Add
  'Recurring patterns' table consolidating Common C API Patterns and
  PR #3644's 'Recurring Breaking Change Categories' into one reference
- known-gotchas.md: Reorganize into themed sections (C API layer, build
  system, dependencies, diff reading, merge strategy, testing). Merge
  HarfBuzz gotchas 7+10 into one. Add merge strategy (from PR #3644),
  fontconfig guards, enum renumbering, pixel precision, GN flag churn
- SKILL.md Phase 2: Replace verbose 'three mandatory checks' with
  single reference to checklist. Phase 4: Add --no-commit merge,
  per-file conflict resolution table, git blame verification gate
  (from PR #3644)
- typical-changes.md: Add BUILD.gn, .gitmodules, sk_types_priv.h,
  native/*/build.cake, GRDefinitions.cs (from PR #3644)
- Remove 'MANDATORY' headers that diluted the signal — everything
  in the skill is mandatory by default

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow added a commit that referenced this pull request Apr 10, 2026
Improve the update-skia skill from m132→m133 lessons (#3658)

Context: #3560
Context: #3644

The m132→m133 bump work exposed a few places where `update-skia` was too easy
to follow into the wrong answer: moved headers looked deleted, struct layout
changes were easy to miss until late validation, and reordered fields could be
misread as removed API. Some of the existing guidance also leaned on
"comment it out" workarounds that hide the real upstream change.

Tighten the skill around those failure modes and fold the useful pieces of
#3644 into a single, easier-to-follow workflow. The checklists and gotchas are
now consolidated instead of duplicated, validation explicitly calls out struct
size audits and relocation searches, and the guidance now pushes maintainers
toward investigating the replacement API or enum strategy rather than silently
suppressing the break.

  * reorganize gotchas by topic and add recurring-pattern references
  * bring merge strategy and `git blame` verification into the main flow
  * treat removed enums and legacy BUILD.gn flags as compatibility work to
    resolve, not shortcuts to paper over
@ramezgerges

Copy link
Copy Markdown
Contributor Author

Closing in favor of #3658

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant