microsoft / microsoft/winget-pkgs
[New Feature]: Synchronise the multiple terms used for the same licences (e.g. for GPL)
- Dominant language
- No language data
- Stars
- 11.1k
- Forks
- 9.7k
- PR merge metrics
- PR metrics pending
Description
### Description of the new feature/enhancement
Some licences have somewhat inconsistent names throughout this repo's packages, so I presume they could be merged so that each licence type has one `License:` value each.
I've for instance noticed at least 12 names used for for GPL-3.0 in `License` values:
```
GPL-3.0
GPL3
GPLv3
GPL-3
GPL-3.0 License
GPLv3 License
GPL-3 Licence
GPL-3 License
GNU General Public License v3
GNU General Public License v3 (GPLv3)
GNU General Public License v3.0
GNU General Public License v3.0 (GPLv3)
```
GPL-3.0 seems to be used in a large plurality of the packages, and would be the most obvious candidate to become the licence's synchronised `License:` name. But if anyone have other thoughts on the sync name, I'd be all ears.
A little over 1,000 packages seem affected, of which around 380 have those that are not `License: GPL-3.0`.
I presume the same situation applies to GPL-2.0, BSD-3, and to a smaller degree MIT.
### Proposed technical implementation details (optional)
Get a bot to run the following case-insensitive RegExes in the repo:
* (For GPL-3.0 if synced to "GPL-3.0") `^License: (GPL-3( ?Licen[sc]e)?|(GNU )?General Public Licen[sc]e[ -]v?3(\.0)?( ?\(GPLv3\))?|GPLv?3(\.0)?( ?Licen[sc]e)?|GPL-3\.0 ?Licen[sc]e)$` → `License: GPL-3.0`
* (For GPL-2.0 if synced to "GPL-2.0") `^License: (GPL-2( ?Licen[sc]e)?|(GNU )?General Public Licen[sc]e[ -]v?2(\.0)?( ?\(GPLv2\))?|GPLv?2(\.0)?( ?Licen[sc]e)?|GPL-2\.0 ?Licen[sc]e)$` → `License: GPL-2.0`
* I'd be able to calculate for BSD-3 on request.
Contributor guide
Research direction
Start by locating the package manifests containing License values and checking the proposed case-insensitive GPL-3.0 and GPL-2.0 patterns against them. Determine how a bot or bulk-edit process would safely update the affected packages, then verify that all intended variants are normalized without changing unrelated metadata.
Written by the indexing model from the issue text.
Assessment
- Domain
- content, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100