Skip to content

ReplacedBy key for manifests #1513

@Trenly

Description

@Trenly

Description of the new feature/enhancement

Some programs have multiple versions where a newer version replaces an older version, but both packages are maintained separately. One example of this would be Corsair.iCUE.3 and Corsair.iCUE.4, where they are two separate packages but iCUE.3 is replaced by iCUE.4. Additionally, some older software that is no longer maintained may be picked up by a different user and published under a different package name. If there were a manifest key to indicate that a different package may be available than the package they elected to install, it would be possible to inform users of potential upgrades.

Proposed technical implementation details (optional)

Add a manifest key for `ReplacedBy: <Package.Identifier>

When running an install or an upgrade to the package, if the manifest contains the ReplacedBy key, display an informational message to the user that a newer version of this software may be available under a different name and display the Package Identifier. Continue to install the package they requested to install

When running winget list or upgrade with no arguments, display an informational table following the existing output showing which packages may have newer versions available under a different name.

For Consideration

Would we want to treat such a key as a redirect to the other package for upgrades? If this is something that would be wanted, then winget upgrade should clearly show that new versions will install a different package. Example -

Name Id Version Available Source
Corsair iCUE Software Corsair.iCUE.3 3.38.61 [Corsair.iCUE.4] 4.15.153 Winget
Snipping Tool Microsoft.SnippingTool 1.0.0.1 [Microsoft.SnipAndSketch] 10.2008.2277.0 Winget

In such cases, it would probably be best to notify the user and have them decide they want to manually run winget install <Package.Identifier> to upgrade to the new package

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-FeatureThis is a feature request for the Windows Package Manager client.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions