beeware / beeware/briefcase

Update templated content after initial call to create

Open
#472 6 comments 0 reactions 0 assignees View on GitHub
android bug enhancement iOS linux macOS windows
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

Screen Shot 2020-08-17 at 6 18 58 pm

**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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.