-
Notifications
You must be signed in to change notification settings - Fork 892
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
Project: simplification #1611
Comments
I'd be happy to assist here. But I've never hacked on Rustup so I'd need a little babysitting. |
I think
My suggestion may be besides the point, sorry. |
I'd personally recommend removing all but the |
This kind of simplification sounds sensible. If you're interested in non-core contributions toward this then I'm very interested in helping. |
I'd actually recommend removing the curl backend and using only reqwest. Is there some reason we can't have a Rust tool use more Rust and less C? |
@nrc @alexcrichton could you give more information regarding "support fewer ways to install Rust" and "simplify filesystem transaction handling code" please? If it's likely to generate a back-and-forth, then perhaps in its own issue. Meanwhile I've opened an issue dedicated to the crate merging: #1644 |
Also, it's probably good to spin out the curl vs reqwest discussion into a thread and come to a conclusion. |
iirc, there are a lot of ways to install Rust via Rustup but the only ones anyone ever uses are |
For rustc devs they also use Other than that
But I don't exactly see how or where that happens in the code (I'm looking at |
@h-michael @alexcrichton @seanmonstar Created a PR for the removal of the cURL backend. Figure discussion could happen there with respect to @dwijnand 's request for a place to hold one. |
Were v2 manifests generated for older releases? I think we shouldn’t break the ability for future rustup.rs to install, say, Rust 1.2.0. (I’ve used this to find old regressions.) |
cc @brson |
@SimonSapin afaik, no I'm in agreement with everything in the op, except for possibly removing v1 support. The multi-backend support was a pet project just because I wanted to see if I could support all the HTTP/HTTPS implementations, particularly to support production usage of rustls. It's fine to strip down to just reqwest, assuming nobody is using the curl backend - I know at some point somebody needed to explicitly use the curl backend because reqwest didn't work. It's probably reasonable to remove it and see if anybody complains (though if they do complain there's no recovery - they'll need to downgrade until the subsequent release that re-adds curl). multirust and very-old rustup compat code can probably be deleted at this kind, though if possible, emitting an error would prevent rustup from doing something destructive in the case those scenarios do come up. Re multiple ways for rustup to install rust, the only ways I recall are from the xz-tarballs and gz-tarballs (even on windows). I don't recall rustup having windows installer support, though there is a rustup-win-installer subdirectory that I assume still doesn't do anything useful. That can be deleted. The gz support can't be removed as long as rustup supports pre-xz toolchains. I don't have any insight into whether people use The notification system should be dropped. I agree it's unnecessarily complex. |
Telemetry is fine to remove, though I still think having telemetry somewhere is a good idea. |
I left a comment on the curl-removal PR about the prudence of both making reqwest the default and removing curl in the same release. |
If you could give some more specifics or pointers that would be great.
Oh! Thanks, @brson! |
It's convenient way to use Rust packaged by Linux distributions. Not like I'm using it often but it comes handy. |
I'm using |
|
So I think I do wonder if there might be something even more nice we could do for supporting system-managed toolchains (e.g. converting components, targets, etc, into package names and reporting useful commands such as Of course, this doesn't quite fall under the topic of simplification, so I'll shut up now :D |
Agreed on I know I wanted to |
EDIT: #1570 |
We could simplify Rustup a lot. It was built with some very ambitious goals and it is clear that some of things will never happen, but the code is designed to accommodate them causing unnecessary complexity. It is also backwards compatible with very old versions of Rust and Rustup. There is lots of opportunity to reduce complexity. Some ideas:
cc @rust-lang/cargo for any suggestions of things we should/should not do
Tasks
The text was updated successfully, but these errors were encountered: