Skip to content

Add MSI experimental support#1251

Draft
lrandersson wants to merge 22 commits into
conda:mainfrom
lrandersson:dev-ra-briefcase-integration
Draft

Add MSI experimental support#1251
lrandersson wants to merge 22 commits into
conda:mainfrom
lrandersson:dev-ra-briefcase-integration

Conversation

@lrandersson
Copy link
Copy Markdown
Contributor

Description

This branch is a copy of the branch briefcase-integration containing the entire feature branch for MSI installers.

Checklist - did you ...

  • Add a file to the news directory (using the template) for the next release's release notes?
  • Add / update necessary tests?
  • Add / update outdated documentation?

@lrandersson lrandersson self-assigned this May 28, 2026
@conda-bot conda-bot added the cla-signed [bot] added once the contributor has signed the CLA label May 28, 2026
@github-project-automation github-project-automation Bot moved this to 🆕 New in 🔎 Review May 28, 2026
mhsmith and others added 19 commits May 28, 2026 12:22
* Initial prototype as shown in demo

* Switch to install_launcher option

* Update schema properly

* Move MSI file rather than copying it

* Add fallbacks for invalid versions and app names

* Use absolute paths in install script

* Check that briefcase.exe exists

* Add briefcase to dependencies, and make it and tomli-w Windows-only

* Move Windows-specific dependencies from environment.yml to extra-requirements-windows.txt

---------

Co-authored-by: Marco Esters <mesters@anaconda.com>
* Add tests

* Some more fixes

* Test commit to see if this resolves test failure

* Set version back to X also for the other failing test

* Review fixes

* pre-commit

* Add str conversion

* Remove request usage for MSI
* Add Install Options Page - WIP

* Review fixes

* Fix description

* Remove comment and fix format

* Review fixes

* Remove 'self'

* Review fixes
* Work in progress

* Work in progress

* Remove unnecessary packages

* Remove call to 'pause' that was used for debugging

* Fix grammar in error message

Co-authored-by: Marco Esters <mesters@anaconda.com>

---------

Co-authored-by: Marco Esters <mesters@anaconda.com>
* Reorganize payload into a class and add tests

* Ensure new tests are Windows only

* Add jinja templating, payload as tar, tests

* Update docstring

* Update briefcase.py

* Inline test utility function

* Remove payload tar, update pre_uninstall.bat

* Use conda-standalone for extracting tar

* Merge archive functions, update root as cached property

* Remove template_file.py improve handling of templates

* Add missing .dst

* Remove compresslevel arg

* Review fixes

* Fix typo in file name causing build errors

* Dynamically set archive type from file name

* Rename class function and update docstring

* Update uninstallation scripts

* Update pre_uninstall.bat

* Add logging

* Improve log handling for msi tests

* Add register_envs

* Fix syntax error with remove

* Ensure .exe test not running for MSI

* Properly disable test for MSI

* Add more tests and another check errorlevel

* Make logging more neat

* Removed all use of 'sanity'

* Updated test for MSI (remove pytest.skip)

* Update to use CLI for newer conda-standalone

* Fix missing quote and properly use --log-file

* Docstring formatting

* pre-commit fix

* Hopefully fix issue with conda-standalone canary

* Fix typo in workflow

* Automatically create 'dst'

* Remove TemplateFile

* Fix docstring

* FIx pre-commit

* Always log to file

* Generalize install/uninstall logs and move into INSTDIR

* pre-commit fix

* Remove PayloadLayout

* Fix remaining syntax error

* Review fixes
* Add implementation for installer and uninstall options

* Disable protected base test for MSI

* Ensure yaml always is generated

* Ensure we write to 64-bit registry

* Make test more precise

* pre-commit fix

* Misc updates

* Fix review comments

* Remove manual delete of .nonadmin

* Removed one more redundant test

* Update comments and printed output

* add removal of configuration files

* Change to .nonadmin check instead of REG_HIVE

* Update test

* add another consistency check

* Update constructor/briefcase/pre_uninstall.bat

Co-authored-by: Marco Esters <mesters@anaconda.com>

---------

Co-authored-by: Marco Esters <mesters@anaconda.com>
…1182)

* Add virtual specs

* fix: pre-commit

* fix: update tests

* Add condarc support for MSI installers

* add tests also t test_utils.py

* enable more examples for MSI

* update calculation of MSI path

* try use existing parse function

* add temporary skip for MSI

* pre-commit fix

* MSI: Add .condarc during preconda

* update .condarc handling for all installers
* Add support for script_env_variables

* add to uninstall

* update docs

* Update construct.schema.json due to earlier changes

* review fixes

* Fix issue with virtual specs
* add support for extra_envs, work in progress

* Fix rebase issues

* Add more examples to MSI testing

* fix error: TypeError: unhashable type

* Changed default value of shortcut option for consistency with NSIS

* Add debug output

* Always uninstall with conda-standalone

* Add debug output

* Improve debug output

* Remove debug output, skip test

* Remove more debug statements

* Use pytest.xfail

* Review fix

* Add suggestion from review

Co-authored-by: Marco Esters <mesters@anaconda.com>

* Bump min conda-standalone

---------

Co-authored-by: Marco Esters <mesters@anaconda.com>
* Add support for user supplied scripts

* Enable some new examples

* Fix type error for test

* Change copying of extra_files to base environment

* Fix issue with license file not being copied

* Add debug output

* Fix order of user script, fixes last error
* Enable test for MSI

* Dummy commit

* Account for 'base' in test for MSI

* pre-commit fix
* add signing of installers - work in progress

* Review fixes: sign before move, docstring update, rename func
* Update write_images and add tests

* Update calls to write_images

* Add second test

* Add image generation to MSI installers

* Remove obsolete old code

* Update docs

* Update formatting and add comment

* Add news

* Make fixes for issues visible from tests

* pre-commit fix

* review fixes

* Review fixes, update docs, remove invalid test

* Update doc to be explicit
* Enable test for MSI

* Apply fixes from review

* Fix list default
* Add function to modify text font

* Add tests and misc improvements
* Add experimental warning

* Dont include branding images into payload

* Fix order of installer options

* Remove comment
@lrandersson lrandersson force-pushed the dev-ra-briefcase-integration branch from 6106faa to d2336c2 Compare May 28, 2026 16:24
Comment thread news/1235-msi-branding
@@ -0,0 +1,19 @@
### Enhancements

* MSI: Add branding image support (`welcome_image`, `header_image`, `icon_image`). (#1235)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO


{%- for condarc in write_condarc %}
{{ condarc }}
{%- endfor %}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO; dont remember the origin of this change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed [bot] added once the contributor has signed the CLA

Projects

Status: 🆕 New

Development

Successfully merging this pull request may close these issues.

3 participants