-
Notifications
You must be signed in to change notification settings - Fork 13.3k
rustbuild: Dist on cross builds produce way too many tarballs #38365
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
A closer look at the list shows we're certainly building target-agnostic components over and over, which is everything! (I incorrectly assumed the std is different and require full cross product, but upon looking at the dist directory layout at static.rust-lang.org I immediately realized it's not the case.) So we only have to skip the execution of steps that have |
I think that's along the right lines, yeah. I'm not sure if that's precisely the strategy that we want, but it sounds about right. In general the build triple builds everything, so we should only package from there. I think for packaging the rustc package, however, there may be some snags. In any case would be great to test out! |
FYI it seems that the |
(Or you could directly push into my branch instead, the fix would just be an additional test for |
@alexcrichton Take this build for an example. |
Ah yeah distcheck takes forever in its own right, but we hope to fix that soon! |
…hton rustbuild: Eliminate duplication of dist tarballs Fixes rust-lang#38365 by not constructing the duplicate steps in the first place, as suggested. The source package step is lacking the check as in other steps, so it is added as well. Tested locally with the `alexcrichton/rust-slave-linux-cross:2016-11-11` container (with the build slave init replaced with no-op, of course). r? @alexcrichton
The dist step on cross builds takes over half an hour, and that's a crazy amount of time for something which should take at most 5 minutes.
The list of tarballs created is massively duplicated. Namely we create around 60 source tarballs (!!). Looks like we're also packaging up the standard library dozens of times for the same target.
My guess as to what's happening is that by default rustbuild is doing a cross product of (host x target) and doing all the builds. We should skip a massive number of them for distribution and ideally not even put them into the step list at all!
Note that this isn't a fire at the moment as everything's just overwriting what was previously created, but this sounds like something that could become a fire!
Should also be a relatively easy bug to knock out for anyone who wants to become familiar with rustbuild!
The text was updated successfully, but these errors were encountered: