-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Winget confuses vim.vim and vim.vim.nightly #5196
Comments
|
They seem to think it's a problem for here: |
Apologies for the circular routing. |
[Policy] Area-Matching |
I can replicate this:
I don't know the internal logic of the upgrade commands, but looking at the end of the list of manifests for package versions:
I wonder if it's as simple as |
Do the nightly builds generate any unique entries to distinguish between "stable" and "nightly" builds for the Apps&Features entries? If they don't then WinGet has no way to disambiguate between them. |
I'm not sure what that means. I'll check if you can explain where to look. They have different |
Alternatively, you can use this PowerShell function to return your entire function Get-ARPTable {
$registry_paths = @('HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKCU:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*')
return Get-ItemProperty $registry_paths -ErrorAction SilentlyContinue |
Select-Object DisplayName, DisplayVersion, Publisher, @{N = 'ProductCode'; E = { $_.PSChildName } } |
Where-Object { $null -ne $_.DisplayName }
} WinGet, like most other Windows Components, uses the information in the Apps&FeaturesEntries to determine exactly what is installed. The best practice is for each application to have its own ProductCode that gets written so that each package can be identified separately; however, not all publishers do this. If both the nightly and the stable version write the exact same data to the registry, then to any Windows Component looking in, then there is no way to identify the channel that was installed. |
@denelon - After more investigation, it looks like these packages *do* in fact write the same data to
|
@chrisbra - Tagging you as I see your username associated with the latest submissions of Vim over at winget-pkgs.
|
I don't get that. What does that mean? We are using nightly.yml and stable.yml to release under different projects. What exactly should be changed here? |
@chrisbra - The issue is that the installer for both This means that Windows Components perceive the nightly and the stable as the same package. The only real way for them to be separate applications is to have them under different Product Codes ( |
But that would require a source change to differentiate the two channels . That is not how it works. Each change to the source is a stable version. Since we release a few patches every day, that would mean we have a new stable release every day (which annoys some users). Therefore, we split this up, use the nightly for the daily patches and roughly every hundred patches one release is promoted to the stable "channel". |
Understandable. In that case, I think a decision needs to be made as to whether -
- or -
|
Brief description of your issue
I installed vim.vim (currently at v. 9.1.1039), but afterward, winget thinks I have vim.vim.nightly installed and therefore offers to "upgrade" it (to v. 9.1.1071).
Steps to reproduce
winget list vim
and/orwinget upgrade
Expected behavior
Package is shown as vim.vim and no upgrade is offered.
Actual behavior
Package is listed as vim.vim.nightly and an available upgrade is shown.
Environment
The text was updated successfully, but these errors were encountered: