# Rustup roadmap and help needed

**URL:** <https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233>\
**Category:** Uncategorized\
**Created:** [May 12, 2017, 2:23am UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233 "2017-05-12T02:23:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [May 12, 2017, 2:23am UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233/1 "2017-05-12T02:23:09Z")

</div>

Hi there.

Today, @Diggsey, @alexcrichton and I did some triage of the rustup issue tracker to try to get a handle on what needs to be done next.

rustup is a project with fairly limited scope, but there are some important features left to implement, and lots of bugs, and lots that needs polish. It could use more contributors, so @Diggsey and I will try to keep the issue tracker better triaged, and escalate tasks that are amenable to contribution.

There are only a few big features on the roadmap:

- [Update signing](https://github.com/rust-lang-nursery/rustup.rs/issues/241)
  - Today rustup does not validate signatures of the things it installs. We want to do this via the [tuf](https://theupdateframework.github.io/) framework, of which@heartsucker has started a [rust implementation](https://github.com/heartsucker/rust-tuf).

- [Windows GUI](https://github.com/rust-lang-nursery/rustup.rs/issues/253)
  - rustup on windows looks pretty bootleg still. @Boddlnagg has some [work finished](https://github.com/rust-lang-nursery/rustup.rs/pull/661) on this but I’ve dropped the ball on pushing it forward.

- [Component dependencies](https://github.com/rust-lang-nursery/rustup.rs/issues/1111)
  - The rustup `rls` package requires `rust-analysis` and `rust-src`, and today they must all be installed explicitly. Fixing this will require defining an extension to the rustup manifest format, then modifying rustup.

- [Default-optional components](https://github.com/rust-lang-nursery/rustup.rs/issues/1006)
  - The `docs` package is always installed today, but not always desired. Again the manifest format needs to be updated.

- [Overrides that can be checked into version control](https://github.com/rust-lang-nursery/rustup.rs/issues/460)
  - Today rustup version pinning is local, but applications stuck on nightlies (like servo) frequently want a way to express this in their VCS, ala rbenv

Volunteers are needed for these, though the windows GUI and update signing issues are large projects. The overrides feature I intend to do myself.

There’s an outstanding problem with both rustup and rustc [not recognizing the 2017 build tools](https://github.com/rust-lang-nursery/rustup.rs/issues/1003). @retep998 has some

[code](https://github.com/retep998/msvc-bunny) that can do the discovery, but it needs to be imported into both rustc and rustup. This is on the [1.18 milestone](https://github.com/rust-lang/rust/milestone/35).

If anybody can help move that forward it would be appreciated, though otherwise I will get to it sometime this cycle.

Next, there are a number of smaller issues that look relatively important to me, and are mostly relatively easy to pick up without much context:

- [Wrong exit code when rustup update fails](https://github.com/rust-lang-nursery/rustup.rs/issues/1095)
- [Build with panic=abort](https://github.com/rust-lang-nursery/rustup.rs/issues/992)
- [Extract rustup manifest definition and validator share with rustbuild](https://github.com/rust-lang-nursery/rustup.rs/issues/1112)
- [`target add` and `component add` should succeed if target/component is already installed](https://github.com/rust-lang-nursery/rustup.rs/issues/1009)
- [Please show me the version I’m downloading/updating](https://github.com/rust-lang-nursery/rustup.rs/issues/1007)
- [“update not yet available” message should not error](https://github.com/rust-lang-nursery/rustup.rs/issues/990)
- [Windows confirmation prompt not disabled with -y](https://github.com/rust-lang-nursery/rustup.rs/issues/916)
- [rustup tries to sync channel updates for non-updatable channels](https://github.com/rust-lang-nursery/rustup.rs/issues/756)
- [No info printed on `rustup target remove`](https://github.com/rust-lang-nursery/rustup.rs/issues/306)
- [Use ShellExecute to open docs on windows](https://github.com/rust-lang-nursery/rustup.rs/issues/499)
- [Improve error message when override doesn’t exist](https://github.com/rust-lang-nursery/rustup.rs/issues/820)
- [Should download and install concurrently](https://github.com/rust-lang-nursery/rustup.rs/issues/731)
- [Optimize disk access during install](https://github.com/rust-lang-nursery/rustup.rs/issues/904)

---

<div class="post-metadata">

**Author:** ![josh](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/josh/32/5934_2.png) [@josh](https://internals.rust-lang.org/u/josh)\
**Post date:** [May 12, 2017, 6:09pm UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233/2 "2017-05-12T18:09:26Z")

</div>

Is “upload rustup and its dependencies to [crates.io](http://crates.io)” ([https://github.com/rust-lang-nursery/rustup.rs/issues/835](https://github.com/rust-lang-nursery/rustup.rs/issues/835)) on the roadmap anywhere? What help would be needed to get to that point? It would make packaging (and ongoing maintenance of packaging) far simpler.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [May 12, 2017, 6:15pm UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233/3 "2017-05-12T18:15:19Z")

</div>

> [@josh](#):
>
> Is "upload rustup and its dependencies to [crates.io](http://crates.io)" on the roadmap anywhere?

I'm afraid it is not a priority for me, and it is not clear how it would work technically. Having cargo install rustup is quite a dependency inversion.

---

<div class="post-metadata">

**Author:** ![Diggsey](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/diggsey/32/6311_2.png) [@Diggsey](https://internals.rust-lang.org/u/Diggsey)\
**Post date:** [May 12, 2017, 10:49pm UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233/4 "2017-05-12T22:49:41Z")

</div>

Could you give some more details of how this would work / be useful? Currently rustup is designed to be installed _before_ you have a working cargo/rustc, and in fact may fail to install if rust is already installed, so it’s not clear what it would mean for rustup to exist on [crates.io](http://crates.io)?

---

<div class="post-metadata">

**Author:** ![josh](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/josh/32/5934_2.png) [@josh](https://internals.rust-lang.org/u/josh)\
**Post date:** [May 12, 2017, 11:06pm UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233/5 "2017-05-12T23:06:51Z")

</div>

Having it available as a crate, and all of its dependencies available as crates, would make it much easier to package and maintain rustup in Linux distributions. That, in turn, makes it easier for people to experiment with nightly Rust, or install a cross-compiler.

---

<div class="post-metadata">

**Author:** ![josh](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/josh/32/5934_2.png) [@josh](https://internals.rust-lang.org/u/josh)\
**Post date:** [May 12, 2017, 11:07pm UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233/6 "2017-05-12T23:07:50Z")

</div>

It’s a matter of being able to build rustup using Cargo, and have the dependencies available to do so. (And the assumption would be that you have rustc and cargo installed by some other means, not via rustup.)

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [March 25, 2019, 8:13am UTC](https://internals.rust-lang.org/t/rustup-roadmap-and-help-needed/5233/7 "2019-03-25T08:13:38Z")

</div>

Closed on March 25, 2019, 8:13am UTC

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
