Skip to content

Revert SkiaSharp version bump & remove unnecessary runtimes#4278

Merged
Jack251970 merged 4 commits intodevfrom
SkiaSharp_runtimes
Feb 23, 2026
Merged

Revert SkiaSharp version bump & remove unnecessary runtimes#4278
Jack251970 merged 4 commits intodevfrom
SkiaSharp_runtimes

Conversation

@Jack251970
Copy link
Member

@Jack251970 Jack251970 commented Feb 22, 2026

Revert Skia Sharp version bump and remove unnecessary runtimes from packages.

Follow on with #4260.


Summary by cubic

Trim unnecessary SkiaSharp runtimes in the BrowserBookmark plugin to reduce package size and clean outputs.

  • Refactors
    • Filter out linux-musl-riscv64 and linux-riscv64 in OutputPath and PublishDir.
    • Revert SkiaSharp to 3.119.1 for compatibility.

Written for commit 9e66f71. Summary will update on new commits.

Included linux-musl-riscv64 and linux-riscv64 in both OutputPath and PublishDir of Flow.Launcher.Plugin.BrowserBookmark.csproj to ensure runtime files for RISC-V 64-bit architectures are available during build and publish.
Added MSBuild targets to delete unnecessary SkiaSharp .pdb files from output and publish directories after build and publish steps, reducing artifact size.
Copilot AI review requested due to automatic review settings February 22, 2026 13:23
@Jack251970 Jack251970 added the Dev branch only An issue or fix for the Dev branch build label Feb 22, 2026
@github-actions github-actions bot added this to the 2.1.0 milestone Feb 22, 2026
@prlabeler prlabeler bot added Code Refactor enhancement New feature or request labels Feb 22, 2026
@gitstream-cm
Copy link

gitstream-cm bot commented Feb 22, 2026

🥷 Code experts: jjw24

Jack251970, jjw24 have most 👩‍💻 activity in the files.
Jack251970 has most 🧠 knowledge in the files.

See details

Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj

Activity based on git-commit:

Jack251970 jjw24
FEB
JAN
DEC
NOV
OCT
SEP 2 additions & 2 deletions 116 additions & 3 deletions

Knowledge based on git-blame:
Jack251970: 96%

✨ Comment /gs review for LinearB AI review. Learn how to automate it here.

@gitstream-cm
Copy link

gitstream-cm bot commented Feb 22, 2026

Be a legend 🏆 by adding a before and after screenshot of the changes you made, especially if they are around UI/UX.

1 similar comment
@gitstream-cm
Copy link

gitstream-cm bot commented Feb 22, 2026

Be a legend 🏆 by adding a before and after screenshot of the changes you made, especially if they are around UI/UX.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request extends the cleanup of unnecessary SkiaSharp runtime directories by adding RISC-V architectures to the removal list and introducing a workaround for SkiaSharp issue #3519 that removes PDB files. This is a follow-up to PR #4260 which updated SkiaSharp from 3.119.1 to 3.119.2. The changes reduce package size by excluding runtime binaries for platforms that Flow Launcher doesn't target (Windows-only application).

Changes:

  • Added linux-musl-riscv64 and linux-riscv64 runtime directories to the cleanup list for both Build and Publish targets
  • Added new MSBuild targets to remove PDB files as a workaround for SkiaSharp issue #3519

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj">

<violation number="1" location="Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj:91">
P2: Avoid deleting build artifacts in post-build targets; prefer configuring the project to exclude PDBs up front (e.g., adjust DebugType/DebugSymbols or item metadata) so outputs are deterministic and less brittle.

(Based on your team's feedback about avoiding post-build file removal.) [FEEDBACK_USED]</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@Jack251970 Jack251970 removed enhancement New feature or request Code Refactor labels Feb 22, 2026
@Jack251970 Jack251970 enabled auto-merge February 22, 2026 13:30
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 22, 2026

No actionable comments were generated in the recent review. 🎉


ℹ️ Recent review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d511872 and 9e66f71.

📒 Files selected for processing (1)
  • Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj
🚧 Files skipped from review as they are similar to previous changes (1)
  • Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj

📝 Walkthrough

Walkthrough

Adds linux-riscv64 and linux-musl-riscv64 to runtime-removal lists in the BrowserBookmark plugin csproj and downgrades the SkiaSharp NuGet reference from 3.119.2 to 3.119.1. No public API changes.

Changes

Cohort / File(s) Summary
BrowserBookmark csproj
Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj
Added linux-riscv64 and linux-musl-riscv64 to RemoveUnnecessaryRuntimesAfterBuild/RemoveUnnecessaryRuntimesAfterPublish lists; changed SkiaSharp package reference from 3.119.23.119.1. No exported/public declarations changed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • jjw24
  • taooceros
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: removing unnecessary SkiaSharp runtimes from packages, which is the primary objective of the PR.
Description check ✅ Passed The description is directly related to the changeset, explaining the removal of unnecessary SkiaSharp runtimes and referencing the follow-up nature (#4260) and the workaround for compatibility issues.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch SkiaSharp_runtimes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj (1)

54-55: Nit: entries are out of alphabetical order.

linux-musl-riscv64 should precede linux-musl-s390x, and linux-riscv64 should precede linux-s390x. No functional impact, but keeping the lists sorted makes future maintenance easier.

♻️ Suggested ordering (Build target shown; apply the same to Publish)
                            $(OutputPath)runtimes\linux-musl-arm;
                            $(OutputPath)runtimes\linux-musl-arm64;
+                           $(OutputPath)runtimes\linux-musl-riscv64;
                            $(OutputPath)runtimes\linux-musl-x64;
                            $(OutputPath)runtimes\linux-musl-s390x;
                            $(OutputPath)runtimes\linux-ppc64le;
+                           $(OutputPath)runtimes\linux-riscv64;
                            $(OutputPath)runtimes\linux-s390x;
                            $(OutputPath)runtimes\linux-x64;
                            $(OutputPath)runtimes\linux-x86;
-                           $(OutputPath)runtimes\linux-musl-riscv64;
-                           $(OutputPath)runtimes\linux-riscv64;

Also applies to: 79-80

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj`
around lines 54 - 55, The runtime identifier entries are not alphabetized: move
"runtimes\linux-musl-riscv64" to come before "runtimes\linux-musl-s390x" and
"runtimes\linux-riscv64" to come before "runtimes\linux-s390x" so the lists are
in alphabetical order; apply the same ordering change to both the Build and
Publish runtime lists (the lines containing the runtimes\... entries) so the
csproj's runtime lists are consistently sorted.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj`:
- Around line 91-102: The RemoveUnnecessaryPdbFilesAfterBuild target currently
deletes all .pdb files unconditionally; update the Target named
RemoveUnnecessaryPdbFilesAfterBuild to include a Condition so it does not run
for the Debug configuration (preserve developer PDBs), and change the ItemGroup
PdbFilesToRemoveBuild Include from the broad "$(OutputPath)**\*.pdb" glob to
only the SkiaSharp native pdbs (e.g. patterns matching libSkiaSharp.pdb and
libHarfBuzzSharp.pdb); apply the same narrower Include change to the
RemoveUnnecessaryPdbFilesAfterPublish target's PdbFilesToRemovePublish so the
workaround only removes the SkiaSharp native PDB files while leaving plugin
debug symbols intact.

---

Nitpick comments:
In
`@Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj`:
- Around line 54-55: The runtime identifier entries are not alphabetized: move
"runtimes\linux-musl-riscv64" to come before "runtimes\linux-musl-s390x" and
"runtimes\linux-riscv64" to come before "runtimes\linux-s390x" so the lists are
in alphabetical order; apply the same ordering change to both the Build and
Publish runtime lists (the lines containing the runtimes\... entries) so the
csproj's runtime lists are consistently sorted.

@coderabbitai coderabbitai bot added the enhancement New feature or request label Feb 22, 2026
Copy link
Member

@jjw24 jjw24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the version bump necessary? I would rather see if they would do anything about the increased size than to apply this workaround ourselves. Maybe we just reverse the bump in dev.

@Jack251970 Jack251970 merged commit 727aac4 into dev Feb 23, 2026
13 checks passed
@Jack251970 Jack251970 deleted the SkiaSharp_runtimes branch February 23, 2026 09:01
@jjw24 jjw24 changed the title Remove Skia sharp unnecessary runtimes from packages Revert SkiaSharp version bump & remove unnecessary runtimes Feb 23, 2026
@jjw24 jjw24 added bug Something isn't working and removed enhancement New feature or request Code Refactor Dev branch only An issue or fix for the Dev branch build 1 min review labels Feb 23, 2026
@jjw24 jjw24 modified the milestones: 2.1.0, 2.2.0 Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants