Nanosoldier.jl
Nanosoldier.jl copied to clipboard
@nanosoldier bisect
It would be lovely to trigger nanosoldier to bisect a MWE. For example
@nanosoldier bisect
using Test
a = 0:1/24:365 - 1/48 - 0.001
b = 0:1/24:365 - 1/48
typeof(a) # StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}
@test a==b # true
@test collect(a)==collect(b) # false!!!
Could run that snippet on various Julia versions and search for when #50039 was introduced, reporting the relevant PR or commit in a comment as well as a link to the full logs which would include the error messages and/or debug output produced form running it on each tested version. It would be helpful performance-wise to cache pre-built versions of Julia on the nanosoldier machines and do bisection in a cache-aware manner. Start and endpoints for the bisection could be optionally provided and default to 1.0.0 and the lastest master.
That's going to require some significant rework of Nanosoldier.jl, which really isn't built for that. I personally don't think it's that useful, with existing tools like git bisect and manyjulias to cache Julia builds. If anything, I think a simple non-Nanosoldier.jl based bot on top of git bisect and manyjulias is much easier, if anybody would want to build that.
Update: I've made a bot that does this for all Julia packages hosted on github. Simply comment @LilithHafnerBot bisect() on an issue or PR anywhere on github. See https://github.com/LilithHafner/Bisect.jl for docs.
Unfortunately it does not bisect the JuliaLang/julia repo because the free github actions minutes/storage are not enough to store many Julia builds or build repeatedly from source.
⚠️ Parse Error
I found @LilithHafnerBot bisect(<args>) but need a code block to proceed. Provide one like this
```julia
@assert true
```