-
Notifications
You must be signed in to change notification settings - Fork 841
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
Windows installer #613
Comments
@conklech speaking of self-upgrading, have you ensured that if a user does |
@radix - I allow the user to choose where to install stack, but the default follows the suggestion on the Downloads page to install to In the default case, I could make the installation location non-customizable, but that feels somehow wrong. It might also be possible to add some documentation to the installer. (I don't know; |
@conklech that sounds good. A message describing this would be nice but I have indeed heard that NSIS is pretty difficult to use so I don't blame you :) |
Very cool. Regarding uninstallation, I think all it should have to do to remove the "cached build artifacts or compilers" is delete the whole stack root directory ( I am definitely happy to merge this installer into stack's release process. |
The main reason I didn't just delete And, as discussed a little bit on the other issue, we're going to need a non-uninstallation mechanism of cleaning out the stack directory anyway, as users start accumulating outdated lts and nightly snapshots. |
Ok, what you say makes sense. Until there is a |
I've pushed an update to include uninstaller options to delete I could add extra warning prompts, but |
Would it be possible to have this installer be "thin" and actually download the latest stack executable from the Github release, rather than include the executable with the installer itself? That way we wouldn't need to update the installer with every release. |
Possible, but with additional infrastructure work. Sourceforge is still (!) down, so there's no NSIS documentation without trawling through Google caches, but stackoverflow suggests there's at least one plugin out there to do something along these lines. The Haskell bindings would need to be updated to include it. I think #532 would be a pre-requisite for that feature. |
You could probably write a tiny exe to download stack and just run it during install. Of course, you could also package up something like |
Updating the Haskell nsis to wrap the http lib is no problem at all - just raise an nsis ticket and I'll do it if you want. Having stack gc sounds like an excellent plan, I too get very scared by uninstalling. |
Might be nice to have HTTPS and/or hash verification. Last I checked the nsis plugin did not support those? Maybe it doesn't matter for this case. |
Wouldn't it be better to install a slightly old version then stack upgrade after install? That way stack can have all the verification junk. |
That was my idea: let the user upgrade as needed, to avoid duplicating
|
@conklech: I've started work on building this into the stack release process now. In testing today on Windows 10, only one problem I've noticed: In Settings -> System -> Apps & features (formerly the Add or Remove Programs control panel), selecting stack and choosing Uninstall doesn't seem to do anything (it doesn't launch |
@borsboom: Could you check that the Registry key HKCU/Software/Microsoft/Windows/CurrentVersion/Uninstall/stack is correctly populated with the path to the uninstaller? |
Thanks, fixing that did the trick. I've uploaded experimental installers to the v0.1.6.0 release: Please download them and give them a try. |
Has anyone had a chance to try the Windows installers? |
Just tried it. Worked nicely for me. |
I used the 64 bit installer a week or two ago on my Windows 10 machine. Worked without a hitch. |
I've made a simple Windows installer using the
nsis
package. The source is available at conklech/stack-installer, and I've made a preliminary binary release packaging 32-bit stack version 0.1.2.0. I've tested it on my Windows 8.1 machine, but that's about it.To make an actual installer from the source code, you need to compile and run the Haskell program, which will generate an NSIS script that must in turn be compiled. I used the unicode NSIS compiler available at http://www.scratchpaper.com/. If using a non-unicode version, be sure to use a "long strings" build to avoid corrupting the user's %PATH%. The
.nsi
script expects stack.exe to be in the same directory.If it's useful, I'd prefer that it get merged into the stack or commercialhaskell project. I can't commit to maintaining it or making updated builds. Because stack is self-upgrading, having a cutting-edge installer is helpful but not critical.
The main shortcoming at the moment is related to #133: the uninstaller does not remove cached build artifacts or compilers installed by stack. (This makes the uninstaller slightly pointless; its main function is to restore the user %PATH%.) I think that functionality should be built into
stack
; perhaps the installer can optionally runstack rm
.The text was updated successfully, but these errors were encountered: