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
[TASK] Rewrite Windows installer from scratch, fixes #1840 #1880
Conversation
Thanks! I'll wait until you say to try it out. However, an official installer will be built in the artifacts build, I'll try to post a link to that when it runs. |
Oh, I wanted to make sure that the full wish list for the installer is visible, please edit with your wishlist:
|
Yeah, has to fail currently because it's WIP. First running build without the Add to Path will be available soon.... |
Currently planed links with names:
|
402cae3
to
ad53b85
Compare
Current build should success and is a preview of the start menu link creation. Will continue later... |
@rfay I added a task list to the initial description. Feel free to extend (don't know if this is possible, else post me a comment) |
@rfay do you know why this fails? |
IIRC nsis wants all backslash-delimited paths. Even on a linux build. And even though Windows code is happy to accept forward slashes. |
6748463
to
85d7c59
Compare
I have only the most minor of nits to report. (I haven't actually tested the results, just ran through the installer)
|
85d7c59
to
9f86fe6
Compare
Yeah, it will become great imho :) I'm still optimizing, next build includes the logic to show only licenses for tools which are selected for install. I will tell you when everything should work but currently there are still some things to do... Will continue later... |
Yeah, was a branding preview, not fully functional
imho this should work fine on Windows but will think about it. I tried to streamline everything and also using the same official naming ofc... Chaning the install folder to DDEV-Local is not possible because it will break the updates
I thought about this too but have to test. If it's breaking will come up with an alternative solution ofc |
3bc46b9
to
a29daf6
Compare
88a143e
to
90d5bac
Compare
I took the liberty of pushing the (successful) experiment of shortening the submenu in 6ac96e5 I was just going to give a diff, but figured it was better to just push it. If you don't like it you can revert/remove/whatever. |
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.
I read through the changes, and of course I'm not very good with nsis, but it seemed like massive improvement. I made some minor comments that might be worth checking on.
@@ -0,0 +1,84 @@ | |||
Name "DDEV Lib Test" |
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.
This seems like a nice thing.
I do suspect that this will be bundled into the release build by accident.
Is there a way that we can extend or use this as part of "make test"?
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.
I created this to test the two libs and thought I will include it for later manual tests after changes in the libs. For the normal build process this it not needed ofc.
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 currently not possible to use this test automated, you have to compile the installer and run it. Then verify the output of the installer...
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.
We could do that on the Windows test runners. It has potential for the future.
6ac96e5
to
56a5dae
Compare
I had to rebase this to fix timezone-related test failure. So you'll need to reset your fork. |
Current build installer is at https://19228-80669528-gh.circle-artifacts.com/0/artifacts/ddev_windows_installer.v1.11.2-16-g56a5daec.exe |
56a5dae
to
a711191
Compare
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.
I had to rebase this to fix timezone-related test failure. So you'll need to reset your fork.
Didn't see that, sorry. Pushed some changes again, possible issues on updates are solved now, means the install directory page and start menu page are not shown in update mode. If the user likes to change e.g. the install directory he has to uninstall first and run then the installer
I also didn't see your changes before, have to merge them and push it again...
Will have a look at this |
Yes, if something is still running it will fail to remove the directory. We can also omit the message but I think it's important for the user to see something went wrong. |
That's probably because you didn't uninstall before? |
a711191
to
bced12f
Compare
Ofc this is possible but I don't think this is needed. Nowadays uninstaller links aren't created in the start menu. You can right click to the start menu Windows icon on the bottom left and choose Apps and Features on the top to see all installed products and their uninstaller |
Should be updated now and you can rebase it again @rfay and we can test this version again before releasing an alpha... |
Please rebase against upstream/master so it can pass tests, thanks. |
bced12f
to
a05906f
Compare
Done |
a05906f
to
46493ce
Compare
Is this solved now by removing the two links to GH? |
This patch introduces the following new features: - include plugin EnVar for better path handling - create unicode installer by default - use SOLID lzma compression - introduce installation types `Full`, `Simple` and `Minimal` - use of DDEV branding images - show license pages of selected components only - use start menu selection page - provide option to run `mkcert -install` for attended install - allow downgrade of DDEV - copy license files for all installed components - power off DDEV before update - clean up multiple path entries in the registry - copy icons for nice start menu links - write various link helpers for start menu short cuts to Links directory - create various start menu short cuts - introduce section groups for a better overview - create mkcert install and uninstall links and start menu short cuts - remember last install directory for updates - clean up mistakenly created keys in the registry - add links and icon to the uninstaller entry - log external calls to the install files window - improve 64 bit OS support and abort on 32 bit - provide option to download and install Docker Desktop - provide option to open the Docker Toolbox download page - provide option to run `mkcert -uninstall` in uninstaller - cleanly remove installed files - license pages will be shown on first install only And some other goodies simplifying development on the installer: - allow manual compilation e.g. from an IDE - short description of how to do common changes to the installer - inline documentation - test project to test libraries - docker support can be disabled by option `/DDOCKER_EXCLUDE` The new graphics can be found in winpkg/graphics and their sources (psd) in winpkg/graphics/sources. Additional plugins are stored in winpkg/plugins.
46493ce
to
be903d3
Compare
I pushed a release build for final verification, think this can go in if it manually tests OK. The built release is https://19482-80669528-gh.circle-artifacts.com/0/artifacts/ddev_windows_installer.v1.11.3-alpha4.exe for a final run-through. My own testing of that says it seems to be just fine now, ready for pull and an alpha release. One note: It's not necessary to combine all your commits into one because the final PR merge will be a squash merge. When you keep just one commit going it's impossible to see what you might have done to fix a problem (like the one you just fixed). Thanks for all your amazing work on this. I know it's been a long haul, and everybody in the community is going to appreciate it very much. |
You're right, for the lastest commits this would have been better |
I tested again on various systems: Win 10 & 7, Win 10 32 bit (to see the error message). I did fresh installs and updates, looks everything fine so far. |
You're welcome! And thanks for DDEV :) |
…ev#1880) This patch introduces the following new features: - include plugin EnVar for better path handling - create unicode installer by default - use SOLID lzma compression - introduce installation types `Full`, `Simple` and `Minimal` - use of DDEV branding images - show license pages of selected components only - use start menu selection page - provide option to run `mkcert -install` for attended install - allow downgrade of DDEV - copy license files for all installed components - power off DDEV before update - clean up multiple path entries in the registry - copy icons for nice start menu links - write various link helpers for start menu short cuts to Links directory - create various start menu short cuts - introduce section groups for a better overview - create mkcert install and uninstall links and start menu short cuts - remember last install directory for updates - clean up mistakenly created keys in the registry - add links and icon to the uninstaller entry - log external calls to the install files window - improve 64 bit OS support and abort on 32 bit - provide option to download and install Docker Desktop - provide option to open the Docker Toolbox download page - provide option to run `mkcert -uninstall` in uninstaller - cleanly remove installed files - license pages will be shown on first install only And some other goodies simplifying development on the installer: - allow manual compilation e.g. from an IDE - short description of how to do common changes to the installer - inline documentation - test project to test libraries - docker support can be disabled by option `/DDOCKER_EXCLUDE` The new graphics can be found in winpkg/graphics and their sources (psd) in winpkg/graphics/sources. Additional plugins are stored in winpkg/plugins.
The Problem/Issue/Bug:
How this PR Solves The Problem:
[FEATURE] Rewrite Windows installer from scratch
This patch introduces the following new features:
Full
,Simple
andMinimal
mkcert -install
for attended installmkcert -uninstall
in uninstallerAnd some other goodies simplifying development on the installer:
/DDOCKER_EXCLUDE
The new graphics can be found in winpkg/graphics and their sources (psd) in winpkg/graphics/sources.
Additional plugins are stored in winpkg/plugins.
Manual Testing Instructions:
Full
selects all componentsSimple
selects all components except WinNFSd groupMinimal
selects DDEV components onlymkcert -install
for attended install sets up mkcert correctlymkcert -uninstall
is shown in uninstaller and executed if mkcert is presentAutomated Testing Overview:
Related Issue Link(s):
#1840
Release/Deployment notes: