Skip to content

feat: upgrade dependencies, add CI workflows, icons, and modernize codebase - #21

Merged
Belim merged 19 commits into
builtbybel:mainfrom
Stensel8:main
May 7, 2026
Merged

feat: upgrade dependencies, add CI workflows, icons, and modernize codebase#21
Belim merged 19 commits into
builtbybel:mainfrom
Stensel8:main

Conversation

@Stensel8

@Stensel8 Stensel8 commented May 6, 2026

Copy link
Copy Markdown
Contributor

This PR brings CI/CD infrastructure, tooling, assets, and a few codebase cleanups.

CI / tooling

  • Add GitHub Actions build workflow that validates x64 and arm64 on every push and pull request
  • Add CodeQL workflow for automated security scanning using autobuild mode
  • Add Renovate for automated dependency management with SHA-pinned actions

Build / project

  • Drop x86 from Platforms and RuntimeIdentifiers (x64 and arm64 only)
  • Fix RuntimeIdentifier condition casing for arm64
  • Add AppIcon.avif and Banner.avif to the Assets folder

Other

  • Add run.ps1 helper script for local development
  • Small README update
  • Remove unused solution items from FluentCleaner.slnx

Related issues

Closes #1


Note: the following items were already picked up in your newer commits, so they are no longer part of this PR:

  • Upgrade Microsoft.WindowsAppSDK from 1.8 to 2.0.1 (reverted per maintainer request)
  • Upgrade CommunityToolkit.Mvvm from 8.3.2 to 8.4.2 (already in upstream)
  • Upgrade Microsoft.Windows.SDK.BuildTools (held back per maintainer request)
  • Fix RuntimeIdentifier conditions for win-x64 and win-arm64 (already in upstream)
  • Add explicit <RuntimeIdentifiers> for self-contained builds (already in upstream)
  • Fix MSB3030 copy error caused by missing icon file (already in upstream)
  • Bump TargetFramework to 26100 (reverted per maintainer request)
  • Convert [ObservableProperty] backing fields to partial properties (already in upstream)
  • Minor XAML cleanup in MainWindow and SettingsPage (already in upstream)

Copilot AI review requested due to automatic review settings May 6, 2026 14:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR upgrades the app’s Windows/WinUI and MVVM dependencies, adds CI/security automation, and modernizes the WinUI app codebase while also adding missing icon assets and a local dev helper script.

Changes:

  • Upgrade Windows App SDK / BuildTools / CommunityToolkit.Mvvm and adjust the project for new build/runtime targeting.
  • Add GitHub Actions workflows (build + CodeQL) plus Renovate configuration for automated dependency updates.
  • Modernize MVVM observable properties and update UI/icon assets (plus a run.ps1 helper for local runs).

Reviewed changes

Copilot reviewed 13 out of 18 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
renovate.json Adds Renovate configuration to manage NuGet + GitHub Actions dependency updates.
README.md Switches README banner to a repository asset path.
FluentCleaner/Views/SettingsPage.xaml Updates Settings “About” icon to use the new PNG asset.
FluentCleaner/ViewModels/SettingsPageViewModel.cs Migrates observable state to [ObservableProperty] partial properties.
FluentCleaner/ViewModels/CleanerPageViewModel.cs Migrates observable state to [ObservableProperty] partial properties.
FluentCleaner/ViewModels/CleanerEntryViewModel.cs Migrates observable state to [ObservableProperty] partial properties and updates constructor usage.
FluentCleaner/ViewModels/CleanerCategoryViewModel.cs Migrates observable state to [ObservableProperty] partial properties.
FluentCleaner/run.ps1 Adds a local build-and-run helper with Windows App Runtime pre-checks.
FluentCleaner/MainWindow.xaml Updates titlebar icon to use the new PNG asset.
FluentCleaner/FluentCleaner.csproj Updates target framework/dependencies and adds runtime identifier logic + PNG asset inclusion.
FluentCleaner/AppInfo.cs Rewrites file (but currently introduces stray control characters/line-ending issues).
FluentCleaner.slnx Removes x86 solution platform mapping.
.github/workflows/codeql.yml Adds CodeQL scanning workflow.
.github/workflows/build.yml Adds CI build workflow for x64/arm64.

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

Comment thread FluentCleaner/AppInfo.cs Outdated
Comment thread FluentCleaner/run.ps1 Outdated
@Belim

Belim commented May 6, 2026

Copy link
Copy Markdown
Member

thanks for the pr! most of this is already fixed in the upcoming insider build, runtimeidentifier conditions, msb3030 and the communitytoolkit migration to 8.4.2 are all in. holding off on the buildtools bump for now

one thing though, please drop the targetframework bump from 19041 to 26100. that would make windows 11 24h2 the minimum requirement and lock out every windows 10 user, not happening

@Stensel8

Stensel8 commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

thanks for the pr! most of this is already fixed in the upcoming insider build, runtimeidentifier conditions, msb3030 and the communitytoolkit migration to 8.4.2 are all in. holding off on the buildtools bump for now

one thing though, please drop the targetframework bump from 19041 to 26100. that would make windows 11 24h2 the minimum requirement and lock out every windows 10 user, not happening

Nice to hear :)

Target is bumped back to Windows 10 20H2.

@Belim

Belim commented May 6, 2026

Copy link
Copy Markdown
Member

@Stensel8 could you close this for now and reopen once the todays https://github.com/builtbybel/FluentCleaner/releases/tag/26.05.02 build drops? most of it will already be in and we avoid the merge conflicts. appreciate the work though 🙏the ci/codeql/renovate stuff and the readme update are all welcome though. if you want, split those into a separate pr, that one we can merge straight away without any conflicts 🙂

@Belim

Belim commented May 6, 2026

Copy link
Copy Markdown
Member

also skipping the sdk 2.0 upgrade for now, still getting comfortable with winui3 and thats too big of a jump at this stage.baby steps😄

@Stensel8

Stensel8 commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

@Belim, you can continue with the V26.05.02 release. I will rebase this one as soon as it's needed and I have the time to do so :)

Glad you like it though. 😁

WinAppSDK can be bumped back to V1.8.7.

Keep in mind that I made a request to get v2.0.1 on WinGet. So it will be merged soon: microsoft/winget-pkgs#369166

Current winget manifest for 1.8.7 is; Microsoft.WindowsAppRuntime.1.8.

Next one will be: Microsoft.WindowsAppRuntime.2.0.

@Stensel8

Stensel8 commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

microsoft/winget-pkgs#369166 is successfully merged. Windows App SDK V2 is now being made available via WinGet.

@Stensel8
Stensel8 marked this pull request as draft May 6, 2026 19:17
@Stensel8 Stensel8 changed the title feat: upgrade dependencies, add CI workflows, icons, and modernize codebase WIP: feat: upgrade dependencies, add CI workflows, icons, and modernize codebase May 6, 2026
Stensel8 and others added 16 commits May 6, 2026 23:34
Add Dependabot config to update GitHub Actions weekly and add renovate.json to manage NuGet updates
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…ent under Renovate (#4)

* ci: add build/CodeQL workflows, migrate all deps to Renovate with SHA pinning

Agent-Logs-Url: https://github.com/Stensel8/FluentCleaner/sessions/7ec7abba-1574-4f4b-a12d-2332ad04be21

Co-authored-by: Stensel8 <102481635+Stensel8@users.noreply.github.com>

* fix(ci): suppress missing ApplicationIcon to fix CS7064 build failure

Agent-Logs-Url: https://github.com/Stensel8/FluentCleaner/sessions/539636e0-8880-40a7-85fc-34beb09524ff

Co-authored-by: Stensel8 <102481635+Stensel8@users.noreply.github.com>

* fix(ci): add minimal AppIcon.ico so MSB3030 copy error is resolved

Agent-Logs-Url: https://github.com/Stensel8/FluentCleaner/sessions/9a112768-cc94-432d-ac68-3ea092f891c8

Co-authored-by: Stensel8 <102481635+Stensel8@users.noreply.github.com>

* ci: remove dotnet format --verify-no-changes (pre-existing style conflicts)

Agent-Logs-Url: https://github.com/Stensel8/FluentCleaner/sessions/479db4c1-2a77-42d1-99e8-2b471bdd891b

Co-authored-by: Stensel8 <102481635+Stensel8@users.noreply.github.com>

* fix: convert ObservableProperty fields to partial properties (MVVMTK0045)

Agent-Logs-Url: https://github.com/Stensel8/FluentCleaner/sessions/94353c49-7af2-46a3-8ab0-bbc097a22261

Co-authored-by: Stensel8 <102481635+Stensel8@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Stensel8 <102481635+Stensel8@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… ARM64 and x64

Co-authored-by: Copilot <copilot@github.com>
- Introduced `run.ps1` to handle the build and execution of the FluentCleaner application.
- Implemented checks for Windows App Runtime 2.0 or higher using multiple detection methods.
- Configured script parameters for build configuration (Debug/Release).
- Added logic to determine the target framework and runtime identifier based on system architecture.
- Included error handling for build failures and missing executable.

Co-authored-by: Copilot <copilot@github.com>
25H2 -> 20H2.

Target 19045 for the latest Win 10 build, which is 22H2. I think that would be the best.

However, based on feedback, this one will be bumped back to 19041.
@Stensel8
Stensel8 marked this pull request as ready for review May 6, 2026 21:36
@Stensel8 Stensel8 changed the title WIP: feat: upgrade dependencies, add CI workflows, icons, and modernize codebase feat: upgrade dependencies, add CI workflows, icons, and modernize codebase May 6, 2026
Per @Belim's feedback on PR #21: SDK 2.0 upgrade is too big a jump at
this stage. Revert WindowsAppSDK to 1.8.260209005 and BuildTools to
10.0.26100.4654 to match upstream.
@Stensel8

Stensel8 commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

Rebased on top of your 26.05.02 release.

Changes from our side that remain:

  • Added some CI workflows (build.yml, codeql.yml)
  • Renovate config
  • RuntimeIdentifier fixes (x64/arm64 only, removed x86)
  • Assets (AppIcon.avif, Banner.avif)
  • run.ps1 local dev helper
  • README update

Reverted WindowsAppSDK back to 1.8.260209005 and BuildTools to 10.0.26100.4654 as requested. The MVVM partial property migration is now superseded by your refinement pass, so no conflicts there.

Ready when you are.

@Stensel8

Stensel8 commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

Quick question while reviewing the rebase: noticed the taskbar shows a blue F icon (AppIconAlt.png used in TitleBar) but the in-app settings page and the README banner show the purple logo. Two different assets pointing to different visuals.

Not something introduced by this PR - just spotted it during the rebase. Should we align these, or is the blue F intentional for the new build?

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Stensel8 and others added 2 commits May 7, 2026 01:35
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@Belim

Belim commented May 7, 2026

Copy link
Copy Markdown
Member

Quick question while reviewing the rebase: noticed the taskbar shows a blue F icon (AppIconAlt.png used in TitleBar) but the in-app settings page and the README banner show the purple logo. Two different assets pointing to different visuals.

Not something introduced by this PR - just spotted it during the rebase. Should we align these, or is the blue F intentional for the new build?

yup, intentional for now 😄
still not 100% happy with the icon direction myself tbh

also guilty of generating some of the banners with dall-e for now until i figure out a more consistent visual style

@Belim
Belim merged commit 145d367 into builtbybel:main May 7, 2026
@Belim

Belim commented May 7, 2026

Copy link
Copy Markdown
Member

@Stensel8
just skimmed through it and approved 👌
everything looks good from what ive seen so far, really appreciate the huge PR 😄

@Stensel8

Stensel8 commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

@Belim don't forget to activate the Renovate dependenfy scanner at:

https://developer.mend.io/

You should be able to authorize and it will auto suggest updates for your dependencies. I have been using it a lot and really like it😄

@Belim

Belim commented May 7, 2026

Copy link
Copy Markdown
Member

@Stensel8 should we provide a self-contained build as well?
is that basically the standard approach for WinUI 3 apps nowadays?

quite a few users seem to struggle with installing the required runtime/sdk dependencies 😕

@Stensel8

Stensel8 commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

Honestly not sure what the best approach is here either!

Two things I can think of:

Option 1: WindowsAppSDKSelfContained=true
Bundles everything so users don't need to install anything separately. Downside is you end up with ridiculously large files.

Option 2: Handle it in run.ps1
The run.ps1 already detects the runtime, which is nice. What I sometimes do is just install all the required dependencies via the startup script automatically using winget. Downside of that approach is you don't really end up with a proper executable you can just hand to someone.

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

App icon

4 participants