Add windows gui / msi installer [difficult]
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 22h 40m
- Merged PRs (30d)
- 46
Description
To complete the Rust installation experience on Windows we want to be installing rustup via an msi.
Make a proof-of-concept rustup msi installer that embeds libmultirust. The behavior of this msi will be heavily customized - all it does is the standard rustup install, but presented in a windowsy way. To start with it can be really simple:
- On installation, present a screen that says more-or-less what the console installer says now. Have install/cancel buttons.
- After they press install, go to another window that displays whatever status updates we reasonably can as the install is progressing.
- After install show another screen that indicates success.
- Register the uninstaller with windows so it works from the add/remove programs screen.
This will require a lot of refactoring of the existing install code to get it embedded in this new context.
Our options for GUI's will be limited but we can't use something heavy. I'm thinking either something rust-centric like conrod, or just a very thin win32 wrapper.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing console rustup installer and the libmultirust installation path to understand what must be embedded. Then evaluate a lightweight Rust GUI or thin Win32 wrapper for the install, progress, success, and cancellation screens. Done means a proof-of-concept MSI that performs the standard rustup install and appears in Windows Add/Remove Programs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100