beeware / beeware/briefcase

Windows MSI - Append version number to name?

Open
#385 3 comments 0 reactions 0 assignees View on GitHub
enhancement not quite right windows
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.