microsoft / microsoft/winget-pkgs

[New Feature]: Validate the manifest License field against the SPDX License List and suggest SPDX identifiers

Open
#408,103 0 comments 5 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)
616

Description

### Description of the new feature/enhancement

When a manifest PR sets the `License` field to a value that looks like it should be an SPDX license but isn't an exact SPDX short identifier, the validation pipeline should post a **non-blocking suggestion** on the PR recommending the correct identifier from the [SPDX License List](https://spdx.org/licenses/). If the value is already a valid SPDX identifier — or is clearly a custom/proprietary license not in the list — no action is taken.

This came out of microsoft/winget-cli#3840 and pairs with the documentation update tracked in #408101.

### Proposed technical implementation details (optional)

In the manifest validation stage, compare the `License` value against the current SPDX License List (short identifiers + full names):

- **Exact SPDX short identifier** (e.g., `MIT`, `Apache-2.0`) → pass silently.
- **Close but not exact** (e.g., `MIT License` → `MIT`, `Apache 2.0` → `Apache-2.0`, `GPLv3` → `GPL-3.0-only` / `GPL-3.0-or-later`) → add a **suggestion** comment on the PR proposing the SPDX identifier. Non-blocking (does not fail validation).
- **No confident match** (custom/proprietary text) → no comment.

Keep the SPDX reference data current (e.g., sourced from the published SPDX license list).

*Created with GitHub Copilot.*

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 at the manifest validation stage and trace how validation results are posted to pull requests. Review the SPDX License List as the reference for exact identifiers, full names, and possible suggestions. Done means valid identifiers pass silently, confident near-matches receive non-blocking suggestions, and custom license text receives no comment.

Written by the indexing model from the issue text.

Assessment

Tech stack
github
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.