$ the-wire · showcase
crates.io rejects publish tarballs missing target sources
By RepoJournal · Filed · About Rust · Composed from the cited sources · methodology
crates.io tightened what a publish tarball must contain, gained explicit owner-removal namespaces, and the compiler absorbed a borrowck soundness fix and a const-generics ICE, with triagebot extending milestone sync to rustfmt.
Reject missing Cargo target source files rust-lang/crates.io
Publishing now derives metadata for each build script, library, and binary from the manifest and rejects any target declaration whose path is absent from the uploaded tarball. Crates that shipped without their declared sources will fail at upload instead of silently publishing.
Rollup merge of #161305 - amandasystems:issue-160670, r=lqd,jackh726 rust-lang/rust
For Polonius alpha, variance is now computed from the entire type of a dropped local. The previous edge direction registered a region as contravariant where it should have been invariant, a soundness bug in region handling.
Backfill target metadata for existing versions rust-lang/crates.io
A background job range-fetches Cargo.toml from each crate zip, extracts target metadata from the zip JSON manifest, and persists it after analysis. That backfills target_metadata for versions published before the rejection rule existed.
Support explicit prefixes in owner removals rust-lang/crates.io
Owner removals accept crates.io:username and github:username, and the crate settings page now sends the crates.io: prefix when removing individual owners. Unprefixed names keep their existing GitHub login matching, and GitHub team identifiers are unchanged.
Rollup merge of #160212 - Dnreikronos:traits/rigid_alias_liveness, r=adwinwhite rust-lang/rust
Borrowck liveness for an opaque return type with an associated type bound no longer hits the solver debug assertion: unnormalized item bounds were being passed to extract_verify_if_eq, which expects rigid aliases. The trigger is a bound of the form <impl Foo<'x> as Foo<'x>>::Out: 'static.
reintroduce check RibKind::ConstParamTy did in direct consts rust-lang/rust
With type const removed, the ConstParamTy nameres rib check had no counterpart for gca!-rhs direct consts; it is now reintroduced there. A related array valtree mismatch, tracked as issue 160553, is also fixed by a second PR that reimplements an earlier approach in reverse.
middleware: Remove `WEB_CDN_USER_AGENT` configuration (#14707) rust-lang/crates.io
WEB_CDN_USER_AGENT is no longer a server config key, which drops a value that had not changed in years and was never able to hold multiple entries anyway. The middleware no longer needs access to server config.
milestones (rustfmt): Sync r-l/r milestones to r-l/rustfmt when merging subtree syncs rust-lang/triagebot
triagebot's milestone_prs::handle now syncs rust-lang/rust milestones to rust-lang/rustfmt after an r-l/r subtree sync PR is merged, requiring both the T-rustfmt and subtree-sync labels; on the rustfmt side rustbot only sets the milestone on closed PRs previously labeled release-notes.