rust-lang / cargo-bisect-rustc

Bisects rustc, either nightlies or CI artifacts
https://rust-lang.github.io/cargo-bisect-rustc/
Apache License 2.0
174 stars 55 forks source link

prefer using toolchains already installed #283

Open matthiaskrgr opened 11 months ago

matthiaskrgr commented 11 months ago

Let's say we would naturally try to bisect a change between the 1st and the 30th of a month, the bisect might go something like this:

check 30th

check 1st

check 15th

check 7th

check 11th

check 9th

check 10th <- regression

For each of these steps we might have to download a new nightly.

Now, if we already have, from a previous bisection, nightlies of the 14th, 6th, 11th and 8th installed, I believe we could just use these to already limit our search space so that the total number of nightlies we have to download is reduced to "between 8th and 11th"?

Should save a bunch of bandwith and time.

apiraino commented 4 months ago

@matthiaskrgr Maybe I am misreading this issue, but wasn't the --preserve parameter exactly for this (i.e. do not delete nightlies after finishing the bisection)? Or did you mean something else at the time?

(this issue is a bit old so I'm not sure about its status)

matthiaskrgr commented 4 months ago

No, given I have a bisection from "01.01.2024 -${today}" And I run it on monday with --preserve, I download all the needed toolchains and find the commit. Then, I run the same bisection AGAIN except today is now friday, it would basically have to re-download most of the toolchains if the respective "middles" of the bisections shift even by one, to a later day.

I want CBR to be smart enough to notice "we already have some toolchain installed" and use these as initial testing-points even if they do not perfectly match the testing points of a "new/fresh" bisection.