Windows MSI - Append version number to name?
- Dominant language
- Python
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 40
Description
# Facts
* Per [this document](https://docs.microsoft.com/en-us/windows/win32/msi/productversion) MSI artifacts support no more than three dot separated numbers for the version (even though my Win 10 VM shows a few versions with four dot separated numbers!).
* A given application, per [PEP 440](https://www.python.org/dev/peps/pep-0440/), may have a more complex/rich version string, for example `1.1.0a2` for an alpha release, or `0.3.1rc1` for a release candidate.
# Impact
Even though the MSI files produced by `briefcase` are differently named, suffixed by the PEP 440 version string, installing an MSI packaged application at release `1.0.0rc3` vs `1.0.0` results in the same version meta-information being displayed in the Windows "Programs and Features" dialog: `1.0.0`.
# Thought
If `briefcase` appended the PEP 440 version string to the package name, the "Programs and Features" dialog would become more informative, so to say. Otherwise, unless the application itself has some kind of "about box", there's no easy way to tell which version is installed.
I see three possible automatic behaviours in this regard:
1. Never append PEP 440 version to name -- what we have today.
2. Always append PEP 440 version to name.
3. Only append PEP 440 version to name when some information could be lost, such as the comonly used dev/alpha/beta/rc/post suffixes.
Maybe `briefcase` could default to 3. and an optional command argument would make it behave as in 1. or 2.
Furthermore, if appending is considered, deciding on how to append is left for further discussion (danger, bikeshedding ahead!). :)
Contributor guide
Research direction
The issue names no files, tests, or entry points. Start by reviewing Briefcase's Windows MSI packaging and how version metadata appears in Programs and Features, then resolve whether and when the PEP 440 version belongs in the package name. Done means an agreed naming policy and corresponding behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100