Open
3 of 4 issues completedDescription
Part of #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. #3478, #3668, 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_CURL
is set, we use the curl backend, which defaults to openssl- If
RUSTUP_USE_RUSTLS
is set, we use reqwest with rustls
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.
Tasks
- chore(deps): unpin
openssl
version #3793 - refactor(test): execute all
#[rustup_macros::unit_test]
s within atokio
context #3868 - chore(dist/features): ship
tracing
and friends by default #3803 - docs(dev-guide/tracing): mention
RUSTUP_LOG
and console-based tracing #3879 - feat(log): unhide
tracing::instrument
from behindfeature = "otel"
#3873 - Pass Process around explicitly #3871
- Process cleanup #3877
- test(clitools): revive
run_inprocess()
#3891 - feat(download-backend)!: make
reqwest/rustls
the new default #3798 - feat(download/rustls): use
rustls-platform-verifier
#3903 - feat(download): reflect the download/TLS backends in the user agent #3815
- refactor(download): remove curl backend #3788