feat: upgrade dependencies, add CI workflows, icons, and modernize codebase - #21
Conversation
There was a problem hiding this comment.
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.ps1helper 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.
|
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. |
|
@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 🙂 |
|
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😄 |
|
@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; Next one will be: |
|
microsoft/winget-pkgs#369166 is successfully merged. Windows App SDK V2 is now being made available via WinGet. |
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.
|
Rebased on top of your 26.05.02 release. Changes from our side that remain:
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. |
|
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? |
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
yup, intentional for now 😄 also guilty of generating some of the banners with dall-e for now until i figure out a more consistent visual style |
|
@Stensel8 |
|
@Belim don't forget to activate the Renovate dependenfy scanner at: 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😄 |
|
@Stensel8 should we provide a self-contained build as well? quite a few users seem to struggle with installing the required runtime/sdk dependencies 😕 |
|
Honestly not sure what the best approach is here either! Two things I can think of: Option 1: Option 2: Handle it in |
This PR brings CI/CD infrastructure, tooling, assets, and a few codebase cleanups.
CI / tooling
Build / project
Other
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:
<RuntimeIdentifiers>for self-contained builds (already in upstream)[ObservableProperty]backing fields to partial properties (already in upstream)