rust-lang / rust-lang/rustup

Add windows gui / msi installer [difficult]

Open
#253 61 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted O-windows
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.