Author: Stephan Sokolow
Created at: 2025-11-18 08:29
Number: 73
Clean content: I claim that one of the major reasons for this failure is that cargo is almost unique among build systems in providing absolutely no structured mechanisms for: (1) communicating with other package build scripts in the same dependency graph (2) communicating with the downstream user who invokes cargo (such as a distro packager, or a github actions pipeline) This is a known problem that’s been discussed more or less since v1.0 came out in 2015 but more pressing issues keep jumping ahead of it in the queue. (eg. The 2025H2 roadmap is prioritizing stabilizing an MVP of -Zbuild-std so that embedded and low-level projects like Rust for Linux (i.e. kernelspace Rust) don’t need to use either a nightly compiler or the secret switch to use API-unstable features on stable channel.) If you want to search up existing discussions, what was done to incorporate Rust builds into Bazel got mentioned a lot. Pre-PEP: Rust for CPython Core Development Nothing in particular. PEP 11’s requirements for each tier’s support are broad enough (language-agnostic enough) that it’s very possible that no changes are required, but I did raise my eyebrows at the intersection with Rust’s own support tiers. It should be noted that, if I understand “GCC Testing Efforts” site:gnu.org correctly, GCC’s support for all platforms would count as “Tier 3, at varying degrees of stubbornness” by Rust testing standards since I don’t see any mention of any of the “Current efforts” entries being integrated to the same “CI on every push and will block merging into main if it fails” degree. Rust’s approach to Tiers 1 and 2 leans in the direction of “We don’t trust our testing to be sufficient for Continuous Deployment, but we’ll do it as diligently as if we were pushing directly to stable channel”. EDIT: …and, apparently, there’s also a limit on number of posts for new users so I can’t get it all in without breaking the rule about no substantial edits. I’ll drop an in-reply-to-embed and add a GitHub Gist containing the source for the entire thing as it was before I started making any changes to try to crunch it in. In total, the posts being replied to, as represented in the auto-updating Discourse permalink URLs, are 4, 9/12, 15, 16, 18, 19, 30, and 38, and a few I forgot to grab URLs for while blockquoting, and the bits which don’t fit include an answer to the concern about Trusting Trust attacks, a clarification about “Rust guarantees that code outside an unsafe {} block is safe”, a mention of #[repr(transparent)] , and a few other little things.
