Update templated content after initial call to create
- Dominant language
- Python
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 40
Description
**Describe the bug**
After following the Beeware Tutorial, I decided to build a 2nd MSI Installer for Windows with a bump to the app version to 0.0.2. This created a file : `Hello World-0.0.2.msi` which I ran (I had already installed the previous `Hello World-0.0.1.msi`. When I look in the Control Panel\Programs\**Programs and Features** I see two instances of the app and both show version 0.0.1
**To Reproduce**
Steps to reproduce the behavior:
1. On a Windows PC, complete the Beeware Tutorial to the end of Tutorial 3.
https://docs.beeware.org/en/latest/tutorial/tutorial-3.html
2. Run the MSI created at the end of Tutorial 3 to install the application.
`Hello_World-0.0.1.msi`
3. Proceed with Tutorial 4 which updates the application code.
4. Bump the project version to 0.0.2 in `pyproject.toml`
```[tool.briefcase]
project_name = "Hello World"
bundle = "com.example"
version = "0.0.2"
```
5. Build a new MSI installer by running these commands :
```
briefcase update
briefcase package
```
6. Run the 2nd MSI created at install the application update.
`Hello_World-0.0.2.msi`
**Expected behavior**
I was expecting the 2nd MSI version to update the already installed version. While it does appear installed app code is updated (C:\Users\User\AppData\Local\Programs\Hello World\app\helloworld\app.py is the latest version), I don't think there should be multiple apps to uninstall in **Programs and Features**.
**Screenshots**
Attached
**Environment:**
- Operating System: Windows 10 Pro, Version 2004
- Python version: Python 3.7.7
- Software versions:
- Briefcase: 0.3.3
- Toga: 0.3.0.dev22

**Additional context**
RKM 2022-12-22: Although this was originally reported as a specific bug with Windows, it's a manifestation of a more generic problem - any content generated from template is locked in stone. We need a generic ability to update templated content after the original template has been generated, without the need to delete and re-generate the project.
Contributor guide
Research direction
Reproduce the Windows flow from the Beeware Tutorial through Tutorial 4, using pyproject.toml and the `briefcase update` and `briefcase package` commands. Trace how templated content is generated and retained after the initial `create` call. Done means template-derived content can be updated without deleting and regenerating the project, including avoiding duplicate installed entries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100