-
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
Support redirecting manifests #1899
Comments
Discussion merged from #1513 There is also a need to support "optional" or "conditional" redirects here. 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. Corsair still maintains and provides updates to the 3.xx application to support older devices that are still on the market.
Additionally, some open source software that is no longer maintained may be picked up by a different user and published under a different package name. Another developer may create their own fork of the project, and continue development. In this case, since its a new publisher, there would be From a user perspective, @denlon provided these stories -
|
just look at how gentoo does it. very well. You can install a specific major version and it will update minor version just fine without updating major version. |
|
Description of the new feature / enhancement
Sometimes a package id gets changed. Usually this happens when the publisher changes, or when the community has determined a better approach for organizing manifests. When this happens, users who have packages.json files could be broken, and the install of those packages that have been moved will fail.
Proposed technical implementation details
Current thinking is that we would leverage a new YAML file "Redirect.yaml". This file would be placed in the package directory (as opposed to the version directories) as a signal that the package has been moved. The client would be able to understand what to install.
Examples:
Foo.Bar has been redirected to Contoso.Bar
winget install Foo.Bar
would inform the user that the package has been redirected to Contoso.Bar, and Contoso..Bar would be installed.winget upgrade Foo.Bar
Upgrading a package that has been redirected.If a user were to perform a search, the "old" package would not be displayed by default.
winget search -e --id Foo.Bar
- No package foundwinget search -e --id Foo.Bar --includeRedirected
- Foo.Bar is found and has been redirected to Contoso.BarThe UX for displaying redirected packages may not fit well in the current table format. Suggestions are welcome.
Settings would be added to change default behavior.
The default behavior would be to exclude.
The text was updated successfully, but these errors were encountered: