Skip to content

Conversation

@nschimme
Copy link
Contributor

@nschimme nschimme commented Feb 2, 2026

Summary by Sourcery

Update Snap and AppImage configurations to use newer Qt and base runtimes while adjusting build and DPI settings accordingly.

Enhancements:

  • Change Qt high-DPI scale factor rounding policy from pass-through to rounded behavior for improved display handling.

Build:

  • Update Snap configuration to core24 base, new platform syntax, GPU helper part, and modern cleanup dependencies.
  • Switch Snap build to use Qt6/kf6 core24 SDK snaps, enable mold, and adjust SSL/zlib packages and license metadata.
  • Update AppImage CI workflow to add the KDE Neon repository before installing Qt6 build dependencies.

CI:

  • Fix Snap GitHub workflow step label to correctly describe generating a SHA256 checksum for the Snap artifact.

@sourcery-ai
Copy link

sourcery-ai bot commented Feb 2, 2026

Reviewer's Guide

Updates Snap and AppImage build configurations to target newer Qt/core base stacks, modernizes dependency setup, and tweaks Qt high-DPI rounding behavior, while fixing a workflow label typo for Snap checksums.

File-Level Changes

Change Details Files
Update Snap configuration to core24/KF6/Qt6 stacks and add GPU wrapper integration.
  • Switch Snap base from core22 to core24 and declare platforms via the new platforms stanza instead of architectures.
  • Add license metadata, Qt6/KF6 build snaps, and enable mold as the linker with corresponding build and stage packages updates.
  • Remove the old KDE Neon apt package-repository configuration and adjust cleanup part to strip files from core24 and kf6-core24 instead of core22 variants.
  • Introduce gpu-2404 part that pulls in Canonical gpu-snap cleanup tooling and primes the gpu-2404-wrapper binary while excluding extra docs from the prime stage.
snapcraft.yaml
Adjust GitHub workflow for AppImage builds to pull Qt/KDE from KDE Neon and separate apt update from dependency install.
  • Add a dedicated step to add the KDE Neon APT repository and key, then run apt update.
  • Move installation of Qt6 and other build dependencies into a separate step that assumes the Neon repo is configured.
.github/workflows/build-appimage.yml
Change Qt high-DPI scale factor rounding policy for the application.
  • Update QApplication::setHighDpiScaleFactorRoundingPolicy to use Qt::HighDpiScaleFactorRoundingPolicy::Round instead of PassThrough to adjust scaling behavior under Qt6.
src/main.cpp
Fix wording in Snap GitHub workflow for checksum generation.
  • Rename the checksum generation step description from referring to AppImage to referring to Snap to match the artifact being processed.
.github/workflows/build-snap.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-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.

Hey - I've found 2 issues, and left some high level feedback:

  • Changing the high DPI scale factor rounding policy from PassThrough to Round alters rendering behavior on fractional scaling; consider making this configurable (e.g., via an environment variable or command-line flag) or at least gating it by platform/Qt version if some users rely on the previous behavior.
  • In the AppImage workflow, the KDE Neon repository is hardcoded to jammy; if the GitHub runner base image changes, this may become incompatible, so consider tying the suite to the runner OS version (e.g., via a matrix variable) to avoid future mismatch issues.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Changing the high DPI scale factor rounding policy from `PassThrough` to `Round` alters rendering behavior on fractional scaling; consider making this configurable (e.g., via an environment variable or command-line flag) or at least gating it by platform/Qt version if some users rely on the previous behavior.
- In the AppImage workflow, the KDE Neon repository is hardcoded to `jammy`; if the GitHub runner base image changes, this may become incompatible, so consider tying the suite to the runner OS version (e.g., via a matrix variable) to avoid future mismatch issues.

## Individual Comments

### Comment 1
<location> `.github/workflows/build-appimage.yml:29` </location>
<code_context>
-    - name: Install Build Dependencies
+    - name: Add KDE Neon repository
       run: |
+        wget -qO - http://archive.neon.kde.org/public.key | sudo gpg --dearmor -o /usr/share/keyrings/kde-neon.gpg
+        echo "deb [signed-by=/usr/share/keyrings/kde-neon.gpg] http://archive.neon.kde.org/user jammy main" | sudo tee /etc/apt/sources.list.d/kde-neon.list
         sudo apt update -qq
</code_context>

<issue_to_address>
**🚨 issue (security):** Fetch the Neon key over HTTPS instead of HTTP to avoid a man-in-the-middle risk when importing the signing key.

Because this step bootstraps trust in the Neon repository, fetching the key over plain HTTP allows a network attacker to swap in a malicious key. The host already supports TLS, so please change the URL to `https://archive.neon.kde.org/public.key` to avoid this risk.
</issue_to_address>

### Comment 2
<location> `.github/workflows/build-appimage.yml:30` </location>
<code_context>
+    - name: Add KDE Neon repository
       run: |
+        wget -qO - http://archive.neon.kde.org/public.key | sudo gpg --dearmor -o /usr/share/keyrings/kde-neon.gpg
+        echo "deb [signed-by=/usr/share/keyrings/kde-neon.gpg] http://archive.neon.kde.org/user jammy main" | sudo tee /etc/apt/sources.list.d/kde-neon.list
         sudo apt update -qq
+
</code_context>

<issue_to_address>
**suggestion (bug_risk):** Mixing a Jammy-based Neon repo on non-Jammy runners could introduce dependency or ABI mismatches.

Since `ubuntu-latest` now maps to 24.04 (noble), enabling a Jammy Neon repo there risks pulling in incompatible libraries or toolchains. Please either constrain this workflow to a Jammy runner (`runs-on: ubuntu-22.04`) so the suite matches the base distro, or add an apt preferences file to pin specific Neon packages and prevent core system libraries from being upgraded from that repo.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

- name: Add KDE Neon repository
run: |
wget -qO - http://archive.neon.kde.org/public.key | sudo gpg --dearmor -o /usr/share/keyrings/kde-neon.gpg
echo "deb [signed-by=/usr/share/keyrings/kde-neon.gpg] http://archive.neon.kde.org/user jammy main" | sudo tee /etc/apt/sources.list.d/kde-neon.list
Copy link

Choose a reason for hiding this comment

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

suggestion (bug_risk): Mixing a Jammy-based Neon repo on non-Jammy runners could introduce dependency or ABI mismatches.

Since ubuntu-latest now maps to 24.04 (noble), enabling a Jammy Neon repo there risks pulling in incompatible libraries or toolchains. Please either constrain this workflow to a Jammy runner (runs-on: ubuntu-22.04) so the suite matches the base distro, or add an apt preferences file to pin specific Neon packages and prevent core system libraries from being upgraded from that repo.

@codecov
Copy link

codecov bot commented Feb 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 75.72%. Comparing base (26d1a9d) to head (0602015).
⚠️ Report is 185 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #449      +/-   ##
==========================================
+ Coverage   66.48%   75.72%   +9.24%     
==========================================
  Files          85       94       +9     
  Lines        4186     4355     +169     
  Branches      255      295      +40     
==========================================
+ Hits         2783     3298     +515     
+ Misses       1403     1057     -346     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nschimme nschimme merged commit 5d17dd7 into MUME:master Feb 2, 2026
20 checks passed
@nschimme nschimme deleted the core24 branch February 2, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant