Skip to content
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

[New Feature]: Superseding packages #95553

Open
heaths opened this issue Feb 3, 2023 · 1 comment
Open

[New Feature]: Superseding packages #95553

heaths opened this issue Feb 3, 2023 · 1 comment
Labels
Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work.

Comments

@heaths
Copy link
Member

heaths commented Feb 3, 2023

Description of the new feature/enhancement

When packages get renamed - branding, ownership, for whatever reason - having a supersedence story is important so that, for example, Bar v2 can replace Foo v1. There's nothing stopping any package from doing this already e.g., an MSI with an appropriate Upgrade table can easily replace any other MSI, but having these then-errant package manifests installed could be confusing both to the user and possibly to winget itself. I imagine, for example, this could be a problem for microsoft/winget-cli#2634.

Proposed technical implementation details (optional)

Similar in concept to the Windows Installer Upgrade table (though not using GUIDs), a version manifest could define something like:

replaces: # could also use "supersedes" or "deprecates"
- id: Foo
  minVersion: 1 # optional
  maxVersion: 2 # optional
  # possibly language, arch, etc. specifiers here, but not sure how useful those are in practice

Alternatively, the old package could reference the new package like choco does, but without ownership protections in place already for manifests here, it seems unnecessary to publish a new version of the old package when the new package can just say they replace the old package.

Note: this is not meant as an upgrade behavior and should probably be documented as such. People should use existing upgrade authoring - ideally implementing it in their package, especially for MSIs that support it natively.

@heaths heaths added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Feb 3, 2023
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage This work item needs to be triaged by a member of the core team. label Feb 3, 2023
@denelon
Copy link
Contributor

denelon commented Feb 3, 2023

@denelon denelon removed the Needs-Triage This work item needs to be triaged by a member of the core team. label Feb 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work.
Projects
None yet
Development

No branches or pull requests

2 participants