-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Add a new Windows installer supporting both user and machine scopes #27284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: l0rd The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
b0a7c83
to
06b7c3a
Compare
I assume |
06b7c3a
to
bf0a47d
Compare
Yes. The And
|
[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore. |
contrib/win-installer/README.md
Outdated
-v531SetupExePath ".\contrib\win-installer\podman-5.3.1-dev-setup.exe" ` | ||
-provider hyperv | ||
``` | ||
`` pwsh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't we need 3 of ` for block formatting here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, you are right. But I removed that anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM as best I can tell.
@anjannath This might also be of interest to you/us. |
@craigloewen-msft ptal |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tried on my machine. Works great 👍
if ($version[0] -eq "v") { | ||
$version = $version.Substring(1) | ||
# Check if WiX Toolset is installed | ||
Invoke-Expression 'dotnet tool list --global wix' ` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the doc you added that one must install wix version 5.0.2 (dotnet tool install --global wix --version 5.0.2
) but here there is no check about the version. Not sure if there was a reasoning behind it bc i generated the binary with wix version 6 and it worked fine but you could add a version check if it's important.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's related to the new WiX licensing model. Currently we cannot use WiX 6 when releasing the Podman installer. If a user tests locally with WiX 6 it should work too though so I don't think it's worth adding a version check here. But I have added an explanation for the v5.0.2 suggestion.
bf0a47d
to
9b87a04
Compare
Fixes containers#22994 and containers#25968 Signed-off-by: Mario Loriedo <[email protected]>
9b87a04
to
9dbc33b
Compare
LGTM as well. |
Fixes #22994 and #25968
This PR introduces a redesigned Windows installer for Podman that supports both user-level and machine-level installation scopes.
The new installer uses a simpler single MSI architecture compared to the legacy WiX Bundle-based approach, making it easier to maintain and debug.
New installer details
1. Installer Architecture
2. Dual-Scope Support
Users can now choose between:
%LOCALAPPDATA%\Programs\Podman
(same path as Podman Desktop)%PROGRAMFILES%\Podman
(no moreRed Hat
in the path)3. Automated Testing
test.ps1
: validates both user and machine scope installations5. Build
contrib/win-installer/build.ps1
for better claritywinmake.ps1
to support new installer architecture6. CI and release process
.github/workflows/release.yml
,upload-win-installer.yml
)Legacy Installer
The previous WiX Bundle-based installer has been moved to
contrib/win-installer-legacy/
for reference and will be removed in a future release once the new installer is proven stable.Important: Users with existing Podman installations must uninstall Podman first before installing with the new installer.
The new installer will return an error if an existing installation is detected:
The good news is that uninstalling Podman doesn't delete the data (containers, images, machines etc...). The uninstall process only removes the Podman binaries and installation files. After uninstalling the old version, you can install the new version and continue using your existing containers, images, and machines without any data loss.
Does this PR introduce a user-facing change?