microsoft / microsoft/winget-pkgs

[New Feature]: Removal PRs should skip the Validation Pipeline

Open
#138,411 3 comments 8 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Validation-Pipeline Issue-Feature
Dominant language
No language data
Stars
11.1k
Forks
9.7k
Avg merge
1h 32m
Merged PRs (30d)
376

Description

Description of the new feature/enhancement

A removal PR is where a manifest version is removed. To contrast with an addition PR, which adds a manifest version.

Example of a removal PR: https://github.com/microsoft/winget-pkgs/pull/138377/files

This would both conserve pipeline resources and also greatly reduce the time that removal PRs spend in pipeline. Removing a PR should skip most checks:

  • No need to verify URL (static scan).
  • No need to verify the manifest.
  • No need to install and verify installer operation and application execution.
  • No need to install and scan (dynamic scan).
Proposed technical implementation details (optional)
  • Have some mechanism for detecting removal PRs.
    • One method is using the plus/minus ("+" or "-") which GitHub prepends to raw diffs:
      • If all of a file's lines start with minus "-", then the file is being removed.
      • If all files in the PR are being removed, then it's a removal PR.
    • Another method is to detect based on PR title. This is easier to implement but much more error-prone.
    • Other methods might exist. (Possibly in API calls)
  • Have removal PRs be exempted from pipeline checks which are unnecessary for removal.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Validation Pipeline and how it identifies pull-request changes; the issue names no files or tests. Determine how a manifest removal PR can be detected reliably, then verify that removal PRs skip URL, manifest, installer, application-execution, and dynamic-scan checks while other PRs retain their existing validation.

Written by the indexing model from the issue text.

Assessment

Domain
ci-cd, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.