Generally speaking, it's been a long-standing goal and project to make contributing to specific parts of the compiler easier (e.g., using a just-compiled std without building the compiler and LLVM). But that's hard, and we currently have no people with the time and resources to do so (AFAIK).
std
on master is only reliably buildable with either a) a beta compiler, if you pass --cfg bootstrap
or b) latest master toolchain (e.g. via rustup-toolchain-install-master
).
Nightly may work, too, but it's not really guaranteed to, and indeed I would expect semi-frequent breakage, unless you only start working at the "perfect time" when master is equivalent to the latest nightly.
Also, thank you for this post! I personally think one of the major challenges with making the contribution experience easy is getting feedback, and I think we don't get anywhere near enough of that.
With that in mind, I have a few questions -- you mention that the formatting check was an obstacle for you. You also mentioned that "The issue is just that it's not trivial to reproduce outside of a bootstrapped rust repo." -- I would personally hope that this is not true, in that the reproduction should essentially consist of using our rustfmt.toml and (roughly) the same nightly rustfmt we do (found in src/stage0.txt). Rustfmt changes on nightly quite rarely, so most likely any recent nightly rustfmt would do. Did you find this to not be the case? Are you not using rustfmt on save generally?
(I think getting feedback from users on whether that's the case is super valuable, and if not I'd be interested in hearing why -- if you've posted elsewhere, a link would be fine. I personally find rustfmt suboptimal most of the time but far better than trying to deal with formatting things myself.)