microsoft / microsoft/winget-cli

Only compare the first 3 parts of the version number for msi and wix installers as default

Open
#2,743 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Issue-Feature
Dominant language
C++
Stars
26.4k
Forks
1.8k
Avg merge
1d 11h
Merged PRs (30d)
15

Description

Description of the new feature / enhancement

According to the documentation, "Windows Installer uses only the first three fields of the product version. If you include a fourth field in your product version, the installer ignores the fourth field". Therefore, without any additional configuration, winget should only compare the first 3 version fields, too.

Proposed technical implementation details

If the version number of an msi or wix installer is compared to the version number in apps and features, only the first 3 version fields should be compared. If the fourth field is missing or differs, it should be handled as the same version.

Only if the AppsAndFeatures field in the manifest is set, the whole version number should be compared.

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 with the version-comparison path for MSI and WiX installers and the manifest's AppsAndFeatures field. Verify how versions are compared when that field is absent or present, using cases where the first three fields match but the fourth is missing or differs. Done means default comparisons ignore the fourth field, while an explicit AppsAndFeatures value compares the whole version.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.