Skip to content

Improve update-skia merge conflict guidance#3662

Open
mattleibow wants to merge 2 commits intomainfrom
dev/improve-merge-conflict-guidance
Open

Improve update-skia merge conflict guidance#3662
mattleibow wants to merge 2 commits intomainfrom
dev/improve-merge-conflict-guidance

Conversation

@mattleibow
Copy link
Copy Markdown
Contributor

Summary

Adds a mandatory git log skiasharp -- <file> step before resolving merge conflicts during Skia milestone updates.

Motivation

During the m133 update, src/gpu/ganesh/gl/iOS/GrGLMakeNativeInterface_iOS.cpp was resolved with git checkout --theirs, silently overwriting an intentional iOS fork patch (commit ef484fb377) that replaced upstream's macOS-only dlopen path with dlsym(RTLD_DEFAULT). The skill's conflict resolution table had no guidance for non-C-API upstream source files.

Changes

SKILL.md (Phase 4)

  • Added mandatory step: check git log --oneline skiasharp -- <file> before resolving any conflict
  • Added table row for non-C-API upstream source: "Check history first"

known-gotchas.md

  • Added gotcha Improved Build #15: documents the failure mode, the real m133 example, the mandatory process, and signal words to look for in fork patch commit messages

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 10, 2026

📦 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 -- 3662

PowerShell / Windows:

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

Step 2 — Add the local NuGet source

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

Add mandatory 'git log skiasharp -- <file>' step before resolving any
merge conflict. This prevents silently overwriting intentional fork
patches with upstream code.

Adds gotcha #15 documenting the m133 iOS GL file incident where
--theirs replaced a deliberate dlsym(RTLD_DEFAULT) patch with an
upstream macOS-only OpenGL.framework path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattleibow mattleibow force-pushed the dev/improve-merge-conflict-guidance branch from 858b227 to afc8cf2 Compare April 10, 2026 21:27
github-actions bot pushed a commit that referenced this pull request Apr 10, 2026
@github-actions
Copy link
Copy Markdown

📖 Documentation Preview

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

🔗 View Staging Site
🔗 View Staging Docs
🔗 View Staging Gallery

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


This comment is automatically updated by the documentation staging workflow.

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

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant