-
Notifications
You must be signed in to change notification settings - Fork 100
Description
Description of the new feature / enhancement
Many packages in the winget repository use a different marketing version than the DisplayVersion they write to the Registry. As such, their manifests include both the PackageVersion & DisplayVersion field. Many publishers follow a consistent pattern with their PackageVersion & DisplayVersion values. As such DisplayVersion can be known for such publishers without manually installing the package.
The current flow for such packages is to create a PR first using wingetcreate, then manually update the DisplayVersion field in the PR. wingetcreate should offer a way to update the DisplayVersion as part of the autonomous update.
Proposed technical implementation details
A simple --display-version arg wouldn't suffice as DisplayVersion can be different per installer node. There should be a way to provide it for each installer URL with overrides as we have right now for architecture & scope. I'm thinking of the following UX, would love additional thoughts or concerns:
-
wingetcreate update x.x --version 1.2.3 --display-version 4.5.6 --urls <InstallerUrls>...-> Looks for all installer nodes that have a DisplayVersion value and replaces it with4.5.6. Do nothing for those that do not have a previous DisplayVersion value. -
wingetcreate update x.x --version 1.2.3 --urls "<InstallerUrl1>|1.2" "<InstallerUrl2>|x64|2.3" "<InstallerUrl3>|machine|3.4" "<InstallerUrl4>|x86|user|4.5"-> Replaces the DisplayVersion of installer nodes that match the arch,scope etc with the provided values. If the existing nodes do not have a DisplayVersion value then do nothing. -
wingetcreate update x.x --version 1.2.3 --display-version 4.5.6 --urls "<InstallerUrl1>|1.2" "<InstallerUrl2> " "<InstallerUrl3>" "<InstallerUrl4>"-> Matching installer node for InstallerUrl1 gets DisplayVersion1.2, rest will get the value provided with--display-versionarg. For those existing nodes do not have a DisplayVersion value, do nothing.