Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
c6c4134
Initial prototype as shown in demo
mhsmith Oct 9, 2025
f719293
Merge branch 'main' into briefcase
marcoesters Oct 14, 2025
201a3ed
Switch to install_launcher option
mhsmith Oct 29, 2025
a12eb59
Update schema properly
mhsmith Oct 29, 2025
52b3d34
Move MSI file rather than copying it
mhsmith Oct 29, 2025
9286bb4
Dummy commit
lrandersson Nov 12, 2025
92735f0
Temporarily disable verbosity
lrandersson Nov 12, 2025
efe3ef3
Set appropriate version, raise error on missing executable
lrandersson Nov 12, 2025
0d0063b
Update github workflow and briefcase test integration
lrandersson Nov 12, 2025
a32f560
Fixed typo in os-function
lrandersson Nov 12, 2025
6a23b55
Add missing argument
lrandersson Nov 12, 2025
3d11d7f
Change version field to 1.0.0 instead of X
lrandersson Nov 13, 2025
fc95186
Add initial test changes
lrandersson Nov 13, 2025
2aeddae
More fixes
lrandersson Nov 13, 2025
946f89a
Add dependency and env variable for github workflow
lrandersson Nov 14, 2025
9be1852
Some more fixes
lrandersson Nov 14, 2025
6b94025
Fix spelling error
lrandersson Nov 14, 2025
5d3c3cd
Undo earlier change sine it wasn't the correct way
lrandersson Nov 14, 2025
50a47b9
Initial work for pre_uninstall
lrandersson Nov 19, 2025
9663143
Add tests for initial setup
lrandersson Nov 20, 2025
aad10ac
A few fixes
lrandersson Nov 20, 2025
13e2cbe
Add batfile as a docstring right now
lrandersson Nov 20, 2025
b7898b5
Pre-commit and add script
lrandersson Nov 20, 2025
9a69231
Add working uninstallation
lrandersson Nov 21, 2025
3dc6e48
Update test and add missing comma-sign
lrandersson Nov 21, 2025
4e6606a
Improve documentation and fixing language
lrandersson Nov 24, 2025
702f8ef
Fix code clarity and removal of 'envs' dir
lrandersson Nov 24, 2025
80851eb
Add separate clean up of pkgs
lrandersson Nov 25, 2025
ef398ec
Fix formatting
lrandersson Nov 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,18 @@ jobs:
run: conda list
- name: conda config
run: conda config --show-sources

- name: Checkout Briefcase (pinned)
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: beeware/briefcase
ref: efb0e08c2a9ce72dcebd0a62c12f5662fd5eb0e0 # this is a commit with latest necessary changes on the main branch
path: briefcase
fetch-depth: 1

- name: Install Briefcase (editable)
run: |
pip install -e briefcase
- name: Run unit tests
run: |
pytest -vv --cov=constructor --cov-branch tests/ -m "not examples"
Expand All @@ -153,6 +165,7 @@ jobs:
AZURE_SIGNTOOL_KEY_VAULT_URL: ${{ secrets.AZURE_SIGNTOOL_KEY_VAULT_URL }}
CONSTRUCTOR_EXAMPLES_KEEP_ARTIFACTS: "${{ runner.temp }}/examples_artifacts"
CONSTRUCTOR_SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x86/signtool.exe"
CONSTRUCTOR_VERBOSE: 1
run: |
rm -rf coverage.json
pytest -vv --cov=constructor --cov-branch tests/test_examples.py
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,13 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

# VS Code
.vscode/

# macOS
.DS_Store

# Rever
rever/

Expand Down
8 changes: 6 additions & 2 deletions CONSTRUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ The type of the installer being created. Possible values are:
- `sh`: shell-based installer for Linux or macOS
- `pkg`: macOS GUI installer built with Apple's `pkgbuild`
- `exe`: Windows GUI installer built with NSIS
- `msi`: Windows GUI installer built with Briefcase and WiX

The default type is `sh` on Linux and macOS, and `exe` on Windows. A special
value of `all` builds _both_ `sh` and `pkg` installers on macOS, as well
Expand Down Expand Up @@ -317,8 +318,11 @@ Name of the company/entity responsible for the installer.
### `reverse_domain_identifier`

Unique identifier for this package, formatted with reverse domain notation. This is
used internally in the PKG installers to handle future updates and others. If not
provided, it will default to `io.continuum`. (MacOS only)
used internally in the MSI and PKG installers to handle future updates and others.
If not provided, it will default to:

* In MSI installers: `io.continuum` followed by an ID derived from the `name`.
* In PKG installers: `io.continuum`.

### `uninstall_name`

Expand Down
9 changes: 7 additions & 2 deletions constructor/_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class WinSignTools(StrEnum):
class InstallerTypes(StrEnum):
ALL = "all"
EXE = "exe"
MSI = "msi"
PKG = "pkg"
SH = "sh"

Expand Down Expand Up @@ -401,6 +402,7 @@ class ConstructorConfiguration(BaseModel):
- `sh`: shell-based installer for Linux or macOS
- `pkg`: macOS GUI installer built with Apple's `pkgbuild`
- `exe`: Windows GUI installer built with NSIS
- `msi`: Windows GUI installer built with Briefcase and WiX

The default type is `sh` on Linux and macOS, and `exe` on Windows. A special
value of `all` builds _both_ `sh` and `pkg` installers on macOS, as well
Expand Down Expand Up @@ -484,8 +486,11 @@ class ConstructorConfiguration(BaseModel):
reverse_domain_identifier: NonEmptyStr | None = None
"""
Unique identifier for this package, formatted with reverse domain notation. This is
used internally in the PKG installers to handle future updates and others. If not
provided, it will default to `io.continuum`. (MacOS only)
used internally in the MSI and PKG installers to handle future updates and others.
If not provided, it will default to:

* In MSI installers: `io.continuum` followed by an ID derived from the `name`.
* In PKG installers: `io.continuum`.
"""
uninstall_name: NonEmptyStr | None = None
"""
Expand Down
Loading