-
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
Schema extension to support multiple ARP entries. #1073
Comments
You probably need wildcard support to find the Firefox ARP key: |
Or we can just update it every time we make a new manifest. I just used Firefox as a example, the JetBrains apps, Python, and a lot of other apps have funny ways of naming things for the ARP table that are different than how you'd want them to appear in the package repository. |
@sredna we've been playing with various regex combinations and the wildcard leads to other trouble with packages that do side by side installs with minor variations depending on architecture, and user vs. machine. We're still thinking through the next best solutions. |
We need to make sure we include documentation on the logic used to perform the matching between the manifest and the entry in Add / Remove Programs. |
How about: AppsAndFeaturesEntries:
- AppName: Foo
AppPublisher: Contoso
AppVersion: 1.2.3
ProductCode: "{AAAAA-AAAAA-AAAAA-AAAAA-AAAAA}"
UpgradeCode: "{ABAAA-ABAAA-ABAAA-ABAAA-ABAAA}"
- AppName: FooService
AppPublisher: Contoso
AppVersion: 2.3.4
ProductCode: "{BBBBB-BBBBB-BBBBB-BBBBB-BBBBB}"
UpgradeCode: "{BCBBB-BCBBB-BCBBB-BCBBB-BCBBB}" Edit: Changed "ProgramsAndFeaturesEntries" to "AppsAndFeaturesEntries" to align with Windows 11 UI naming. "Name", "Publisher", and "Version" renamed to "AppName", "AppPublisher", "AppVersion". |
https://github.com/microsoft/winget-cli/releases/tag/v1.0.12576 The validation pipelines aren't updated yet. Building the new client is a prerequisite as we use the client itself in the validation pipelines. This should be testable via local manifest files, but they are not yet supported in the community repository. That work is in progress. |
Description of the new feature/enhancement
It would be really nice if there was a extension to the schema to allow a package manifest to list all of the ARP entries that an installer adds to support edge cases when winget tries to match packages to entries in the ARP table.
Proposed technical implementation details (optional)
Per installer entry, there would be a array of "Programs" which captures the major metadata that the ARP table captures (property names are off the dome, they may conflict with something):
This would also require changes to the package manager client to allow it to match an ARP entry to a manifest even if the outer PackageName/Publisher/etc didn't match but there was a entry in the Programs array that did, of course. Maybe there's a better way to do this, but we're running into lots of issues where one language/architecture/etc adds a different entry to the ARP table than another language/architecture/etc meaning that winget has trouble matching them.
Edit: In addition to the client itself, there will have to be some (probably breaking) changes to the SQLite preindexed file that is used for the data from the community repo. I'm not jealous of whoever has to implement those...
The text was updated successfully, but these errors were encountered: