Skip to content
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

@nanosoldier bisect #177

Open
LilithHafner opened this issue Aug 8, 2023 · 3 comments
Open

@nanosoldier bisect #177

LilithHafner opened this issue Aug 8, 2023 · 3 comments

Comments

@LilithHafner
Copy link
Contributor

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.

@maleadt
Copy link
Member

maleadt commented Aug 9, 2023

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.

@LilithHafner
Copy link
Contributor Author

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.

@LilithHafnerBot
Copy link

⚠️ Parse Error

I found @LilithHafnerBot bisect(<args>) but need a code block to proceed. Provide one like this

```julia
@assert true
```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants