[IMPROVEMENT] Do not show WinGet updates that WinGet itself cannot install (example: MSYS2)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
Start with the named entry points: NativeWinGetHelper.GetAvailableUpdates_UnSafe(), WinGetCliHelper.ParseAvailableUpdates(), and WinGetPkgOperationHelper; read related issue #882 and the Miniconda case in #2296. Check how WinGet distinguishes its normal upgrade table from the explicit-targeting table, then compare the two helper paths and the handling of error 0x8A150114. Done means explicit-targeting-only packages are not presented as installable normal updates, with the expected error explanation or ignore option handled consistently.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Please confirm these before moving forward.
- I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- This improvement refers to an existing feature. If you want to suggest a new feature, please use this template.
- This improvement is not a bug. If you want to report a bug, please use this template.
Describe the improvement
Summary
UniGetUI shows an update for MSYS2. The update always fails.
WinGet marks this package as "explicit upgrade only". UniGetUI does not use this mark.
What happens
- UniGetUI shows "MSYS2 Installer 20260611 -> 20260927" in Software Updates.
- I start the update. WinGet stops with this message:
"The package cannot be upgraded using WinGet. Please use the method
provided by the publisher for upgrading this package." (0x8A150114) - I change the scope to "user" and set the install location. The update fails again.
MSYS2 updates itself with its own package manager (pacman).
WinGet cannot install this update. It does not matter which options I set.
What WinGet does
WinGet knows about this. The command winget upgrade does not show MSYS2
in the list of normal updates. WinGet shows MSYS2 in a separate list:
"The following packages have an upgrade available, but require explicit
targeting for upgrade."
What I expect
UniGetUI does the same as WinGet:
- UniGetUI does not show these packages as normal updates.
- Or: UniGetUI shows them with a clear note, for example
"This package updates itself". - If WinGet returns 0x8A150114, UniGetUI tells the user why the update failed.
UniGetUI then offers "Ignore updates for this package".
Workaround
I ignore updates for this package manually.
Where this happens in the code (current main)
- NativeWinGetHelper.GetAvailableUpdates_UnSafe() adds each package that has
IsUpdateAvailable = true. It does not check for "explicit upgrade only". - WinGetCliHelper.ParseAvailableUpdates() reads all tables from
winget update. It also reads the "require explicit targeting" table
as normal updates. - WinGetPkgOperationHelper handles the error code 0x8A150014.
It does not handle 0x8A150114.
Related issues: #882 (explicit-targeting table), #2296 (same problem with Miniconda).
Environment
- UniGetUI 2026.3.2
- WinGet v1.29.380
- Windows 11 Pro, build 26300
- MSYS2 installed for the current user only
Describe how this improvement could help users
Users see an update that can never succeed. They try it, it fails, and they
do not know why. Then they try other options and it fails again.
With this improvement, UniGetUI shows only updates that WinGet can install.
For packages that update themselves (MSYS2, Miniconda, and others), users
get a clear note and know which tool to use. This saves time and avoids
confusing error messages.
- Lenguaje dominante
- C#
- Estrellas
- 26.7k
- Forks
- 955
- Merge medio
- 16 h 22 min
- PR fusionados (30 d)
- 97
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Devolutions/UniGetUI
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Devolutions/UniGetUI#5548 ·
Los mantenedores suelen responder en 1 día
-
bug needs-author-answer npm
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
Devolutions/UniGetUI#5605 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
enhancement priority: low
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Devolutions/UniGetUI#5594 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
install for this userAbiertoenhancement priority: low
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Devolutions/UniGetUI#5581 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[IMPROVEMENT] UI/UX Architecture layers: Package Bundle Catalogue and Startup Operations IntegrationAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
Devolutions/UniGetUI#5524 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Devolutions/UniGetUI
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
README says main uses .NET 9 while the current branch targets .NET 10Posiblemente ocupada @dajiaohuang la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 94/100
ardalis/CleanArchitecture#1098 ·
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
madeyoga/AuthEndpoints#365 ·
Los mantenedores suelen responder en 1 día
-
ConnectionOpened reports pre-redirect URL when OnConnectingAsync changes the targetPosiblemente ocupada @akashchamp la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
majorsilence/Reporting#493 ·
Los mantenedores suelen responder en 1 día