Tracking: Deduplicate toolchains, components and/or artifacts
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
Hướng nghiên cứu
Bắt đầu bằng cách xem xét các trường hợp đã được báo cáo (#555, #1974, #1366 và #2617), hành vi của rustup toolchain install và các đề xuất liên quan #3937, #731 và #4636. Issue này mang tính thăm dò: để hoàn tất sẽ cần có một thiết kế được thống nhất nhằm loại bỏ trùng lặp các artifact, component hoặc toolchain trước khi có thể xác định phạm vi triển khai.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem you are trying to solve
It happens from time to time that the user gets confused about why rustup toolchain install stable, rustup toolchain install 1.92 and rustup toolchain install 1.92.0 require separate and duplicate/redundant downloads when they are essentially the same thing (given that the current stable is 1.92.0).
Such reports include:
- #555
- https://github.com/rust-lang/rustup/issues/1974
- https://github.com/rust-lang/rustup/issues/1366
- https://github.com/rust-lang/rustup/issues/2617
The status quo is very well explained in the quote below:
Firstly, 1.70 and 1.70.0 are not the same toolchain. They might be on a given date, but once 1.70.1 releases, they are not.
Secondly, the installed components are currently defined as separate for each toolchain; adding a component that isn't expected might be strange and conceivable a bug for some developers - and turning minor versions into symlinks to concrete versions will have that effect, as you would no longer have separate component lists.
https://github.com/rust-lang/rustup/issues/1366#issuecomment-1633065070
In short, 1.92.0 is a "fixed target" that will always be pointing to that very version of the toolchain, but the other two are "moving target"s: 1.92 will be upgradable to any later 1.92.*, and stable to any later stable. These toolchains are logically separated and I have no intentions to change that, but physically this separation is not an absolute must.
Solution you'd like
A potential solution is to borrow from PNPM and use hard links or junctions that reference a user-global artifact pool. This might have some interesting interactions with multiple proposals, e.g.
- #3937
- #731
- #4636
Another choice could be providing a user-global component (or even toolchain) pool instead of an artifact pool, depending on the flexibility we'd like to achieve.
I personally think choosing the toolchain pool is a bad idea since it turns out sometimes multiple toolchains share the same component esp. when they are not updated.
Notes
No response
- Ngôn ngữ chính
- Rust
- Star
- 7.1k
- Fork
- 1.1k
- Merge trung bình
- 1 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 42
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của rust-lang/rustup
-
enhancement O-shell
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 50/100
Maintainer thường phản hồi trong vòng 1 ngày
-
rust-analyzer fallback recurses through Homebrew’s wrapperCó thể đã có người làm @rami3l đã nhận 5 ngày trước. Đang mởenhancement O-macos
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
rust-lang/rustup#5133 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Verbose output for removing components on toolchain updateCó thể đã có người làm @rami3l đã nhận 13 ngày trước. Đang mởenhancement
rust-lang/rustup#5122 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Continuous performance tracking to avoid major regressionsCó thể đã có người làm @rami3l đã nhận 20 ngày trước. Đang mởmeta
rust-lang/rustup#5103 · 3 bình luận · 5 reaction · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của rust-lang/rustup
Issue tương tự
-
rustix::termios::Termios::OutputModes does not expost some const e.g. OLCUC for musl and macOSĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
bytecodealliance/rustix#1706 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 11 ngày
-
`LazyFrameRemote` and `ExecuteRemote` sinks do not accept `Path`, like `LazyFrame` sinks do.Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
Bump anybuf version to ^1.0.0Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
wormhole-foundation/wormhole#5062 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
RUSTSEC-2026-0348: Brotli certificate decompression can allocate up to 1 GiB before authenticationĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100