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]: Warn if number of installer nodes is inconsistent between versions #92688

Closed
Trenly opened this issue Dec 31, 2022 · 2 comments
Closed
Assignees
Labels
Area-Validation-Pipeline Issues related to the manifest validation pipeline. Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work.
Milestone

Comments

@Trenly
Copy link
Contributor

Trenly commented Dec 31, 2022

Description of the new feature/enhancement

This suggestion comes from the discussion in #92590.

When new manifests are submitted, the validation pipelines should be able to identify if the number of installer nodes differs from the previous version's manifest. This can be the basis for a set of validation parameters which could trigger warnings.

Proposed technical implementation details (optional)

First iteration - Apply a label such as Possible-Missing-Metadata if number of installer nodes is less than previous version.

Second iteration - Compare not only the number of installers, but also the node type. For example - v1.0 contains x86-user-exe and x86-machine-exe, v2.0 (in PR) contains x86-unspecified-exe and x64-unspecified-exe; even though number of nodes are the same, not all the node types from the first manifest are present in the second manifest. Apply the label.

Third Iteration - Compare not only number and type, but also metadata fields. Example - v1.0 contains AppsAndFeaturesEntries (or ReleaseDate, Commands, FileExtensions, etc.) but v2.0 (in PR) does not. Apply the label

@Trenly Trenly added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Dec 31, 2022
@ghost ghost added the Needs-Triage This work item needs to be triaged by a member of the core team. label Dec 31, 2022
@Trenly
Copy link
Contributor Author

Trenly commented Dec 31, 2022

@stephengillie - Area-Validation-Pipeline please

@denelon denelon added Area-Validation-Pipeline Issues related to the manifest validation pipeline. and removed Needs-Triage This work item needs to be triaged by a member of the core team. labels Jan 1, 2023
@mdanish-kh
Copy link
Contributor

One reason why newer manifests don't retain metadata from the previous ones is simply because their fork is out of sync with the upstream branch. Many users use YamlCreate to update manifests and it uses the local latest manifest as the base manifest for an update. If the users don't update their fork and git pull into their local repo, they won't have the latest changes that were applied to the older manifest. (I recently encountered this where I added the scope-related switches for a manifest to resolve an issue and a newer one was added by a user using YamlCreate that did not contain the switches, causing the original issue again where users were not able to upgrade the package due to scope mismatch. I noticed the user's fork was some 3000 commits behind the upstream)

We can mitigate the issue if we update YamlCreate to fetch the latest manifest from the upstream repo, or have an option for users to sync their branch first before updating a manifest. The issue doesn't appear with winget-create as it always fetches the latest manifest from the repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Validation-Pipeline Issues related to the manifest validation pipeline. 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

4 participants