support of minimum age directly in managers #4809
Open
Gabriel Dufresne (GabrielDuf) wants to merge 1 commit into
Open
support of minimum age directly in managers #4809Gabriel Dufresne (GabrielDuf) wants to merge 1 commit into
Gabriel Dufresne (GabrielDuf) wants to merge 1 commit into
Conversation
Copilot started reviewing on behalf of
Sébastien Duquette (sduquette-devolutions)
May 21, 2026 18:44
View session
Marc-André Moreau (mamoreau-devolutions)
approved these changes
May 21, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refines how UniGetUI models and displays package managers’ ability to provide package release dates, replacing the previous binary “supported / not supported” logic with a 3-level capability (No, Partial, Yes) exposed via ManagerCapabilities.KnowsPackageReleaseDate. This improves UI accuracy for features that depend on release dates (notably the “minimum update age” settings).
Changes:
- Added
PackageReleaseDateSupportenum and aKnowsPackageReleaseDatecapability onManagerCapabilities. - Updated multiple manager implementations to declare their release-date support level (including WinGet as
Partial). - Updated WinUI and Avalonia settings UIs to consume the capability instead of hardcoded manager name lists; added new English localization strings and improved WinGet manifest parsing to read root-level
ReleaseDate.
Reviewed changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/UniGetUI/Pages/SettingsPages/ManagersPages/PackageManager.xaml.cs | Uses KnowsPackageReleaseDate to enable/disable and describe per-manager minimum update age setting (No/Partial/Yes messaging). |
| src/UniGetUI/Pages/SettingsPages/GeneralPages/Updates.xaml.cs | Builds release-date compatibility table using PackageReleaseDateSupport and adds a “Partial” badge state. |
| src/UniGetUI.PackageEngine.Managers.WinGet/WinGet.cs | Declares WinGet release-date support as Partial. |
| src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/PingetPackageDetailsProvider.cs | Populates UpdateDate from manifest root ReleaseDate with optional installer override. |
| src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs | Declares vcpkg release-date support as No. |
| src/UniGetUI.PackageEngine.Managers.Snap/Snap.cs | Declares Snap release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Scoop/Scoop.cs | Declares Scoop release-date support as No. |
| src/UniGetUI.PackageEngine.Managers.PowerShell7/PowerShell7.cs | Declares PowerShell 7 release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.PowerShell/PowerShell.cs | Declares PowerShell release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Pip/Pip.cs | Declares Pip release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Pacman/Pacman.cs | Declares Pacman release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Npm/Npm.cs | Declares Npm release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Homebrew/Homebrew.cs | Declares Homebrew release-date support as No. |
| src/UniGetUI.PackageEngine.Managers.Flatpak/Flatpak.cs | Declares Flatpak release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Dotnet/DotNet.cs | Declares DotNet release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Dnf/Dnf.cs | Declares Dnf release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Chocolatey/Chocolatey.cs | Declares Chocolatey release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Cargo/Cargo.cs | Declares Cargo release-date support as Yes. |
| src/UniGetUI.PackageEngine.Managers.Bun/Bun.cs | Declares Bun release-date support as Yes (and fixes initializer trailing comma). |
| src/UniGetUI.PackageEngine.Managers.Apt/Apt.cs | Declares Apt release-date support as Yes. |
| src/UniGetUI.PackageEngine.Enums/ManagerCapabilities.cs | Introduces PackageReleaseDateSupport and ManagerCapabilities.KnowsPackageReleaseDate. |
| src/UniGetUI.Avalonia/Views/Pages/SettingsPages/PackageManagerPage.axaml.cs | Avalonia per-manager minimum update age UI now uses KnowsPackageReleaseDate with No/Partial/Yes messaging. |
| src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/UpdatesViewModel.cs | Avalonia release-date compatibility table now supports “Partial” state. |
| src/Languages/lang_en.json | Adds English strings for “Partial” and the partial-support explanatory message. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request enhances how package managers' support for package release dates is represented and displayed in the application. Instead of a simple yes/no, the new implementation introduces a three-level enum (
No,Partial,Yes) to reflect whether release date information is fully, partially, or not at all available for each package manager. This change improves both the user interface and the accuracy of information shown to users.Key changes include:
Core capabilities and data model updates:
Introduced a new enum,
PackageReleaseDateSupport, with valuesNo,Partial, andYesto represent the level of release date support for package managers. TheManagerCapabilitiesstruct now uses this enum in the newKnowsPackageReleaseDateproperty.Updated all package manager implementations (e.g.,
Apt,Bun,Cargo,Chocolatey,Dnf,DotNet,Flatpak,Homebrew,Npm,Pacman,Pip,PowerShell,PowerShell7,Scoop,Snap,Vcpkg) to set the appropriate value forKnowsPackageReleaseDatebased on their actual capabilities.User interface improvements:
Updated the settings UI (
UpdatesViewModel.cs,PackageManagerPage.axaml.cs) to use the new enum, removing hardcoded lists and instead dynamically displaying whether release date support is full, partial, or absent for each manager. The UI now shows a yellow "Partial" badge and description where appropriate.Localization and messaging:
These changes result in a more accurate, maintainable, and user-friendly way to display package release date support across different package managers.