Tracking: Simplify download and/or TLS backends
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 22h 40m
- Merged PRs (30d)
- 46
Description
Part of https://github.com/rust-lang/rustup/issues/1611.
Motivation
The direct motivation of this change is to simplify Rustup's building process in order to make Rustup more cross-build friendly and prevent surprise stable-only CI build errors like the ones we've encountered while bumping OpenSSL to v3, i.e. https://github.com/rust-lang/rustup/pull/3478, https://github.com/rust-lang/rustup/pull/3668, https://github.com/rust-lang/rustup/issues/4707, etc.
Status quo
- The default currently is to use reqwest with native-tls (OpenSSL on Linux, native stacks on macOS and Windows)
- If
RUSTUP_USE_CURLis set, we use the curl backend, which defaults to openssl- If
RUSTUP_USE_RUSTLSis set, we use reqwest with rustls
https://github.com/rust-lang/rustup/pull/3788#issuecomment-2076819462
Goal
The eventual goal would be removing RUSTUP_USE_CURL and/or RUSTUP_USE_RUSTLS, leaving a single stack "in favor of maximally-Rust solutions", while "making sure we minimize the risk of getting users stuck".
To minimize frictions during this change, some necessary refactoring patches will be developed in the meantime, with a primary focus on improving Rustup's observability by interfacing with the tracing ecosystem.
https://github.com/rust-lang/rustup/pull/3788#issuecomment-2076679922
Tasks
- https://github.com/rust-lang/rustup/pull/3793
- https://github.com/rust-lang/rustup/pull/3868
- https://github.com/rust-lang/rustup/pull/3803
- https://github.com/rust-lang/rustup/pull/3879
- https://github.com/rust-lang/rustup/pull/3873
- https://github.com/rust-lang/rustup/pull/3871
- https://github.com/rust-lang/rustup/pull/3877
- https://github.com/rust-lang/rustup/pull/3891
- https://github.com/rust-lang/rustup/pull/3798
- https://github.com/rust-lang/rustup/pull/3903
- https://github.com/rust-lang/rustup/pull/3815
- https://github.com/rust-lang/rustup/pull/3788
- #4277
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
Review parent issue #1611 and the task pull requests listed here, especially the backend and tracing refactors; this issue names no file or test entry point. Done means the download/TLS backend plan advances toward a single maximally-Rust stack while minimizing the risk of users getting stuck and preserving the cross-build goals.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100