-
Notifications
You must be signed in to change notification settings - Fork 37
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
Add scripts for using git bisect
#354
Conversation
@sbrus89, I believe this is working now. It is ready for you to test and review. I don't plan to document it beyond |
@xylar, very cool! I'll take a look. |
0f1f880
to
ceab314
Compare
I've been trying to clean this up a bit (e.g. make sure the |
Using this approach, I was able to trace the unexpected non-BFB changes in baroclinic channel runs in #326 to E3SM-Project/E3SM#4752. That's good to know but not concerning. |
6ea1210
to
a64d918
Compare
@sbrus89, please don't forget to review this when you can. |
@xylar, will do. |
@xylar, I'm seeing a |
Now I'm not seeing it. Probably something on my end. |
4030e9d
to
9a8456f
Compare
4123980
to
a45d4f5
Compare
a45d4f5
to
2b19d91
Compare
A config file determines the "good" and "bad" commits, and provides the paths to the MPAS code, the laod script, etc. It also provides the commands for building the code, setting up the test case(s) and running them. A driver script sets things up and makes the calls to `git bisect`, passing along the `bisect/bisect_step.py` script for running each step of the bisection. The `bisect/bisect_step.py` script updates and builds the MPAS code, then sets up the compass test case(s) and runs compass.
2b19d91
to
73981af
Compare
@sbrus89, any chance of giving this a look in the next few weeks? It would be nice to have it in. |
@xylar, sure I'll put it on my todo list. |
@sbrus89, I'm not sure what changed but I'm not having any luck with this. My runs just hang when I try to run on an interactive node and they fail in ways I haven't figured out yet when I try to run a job. |
Oh, I take that back. The job script worked fine, it just returned an error code for reasons I don't understand. It seems like it found the bad commit and then tried to run again or something. I need to investigate sometime but don't have time right now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested this and it works great! I'm a huge fan of this capability. I have a couple minor suggestions pointed out above.
The only other comment I have is it may be convenient to create a summary log file that just prints the commit information along with the PASS/FAIL status of each of the commits that is checked-out in the process. I think that is very optional though...
@sbrus89, I don't feel like I have time to do that right now. I would welcome a follow-up PR to add this, though! Could you take a look and see if I've addressed your suggestions? I think so. If so, I'll merge after CI has finished unless you want to run another test. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved. Thanks very much, @xylar!
@sbrus89, great, thanks! |
A config file determines the "good" and "bad" commits, and provides the paths to the MPAS code, the load script, etc. It
also provides the commands for building the code, setting up the test case(s) and running them.
A driver script sets things up and makes the calls to
git bisect
, passing along theutils/bisect/bisect_step.py
script for running each step of the bisection.The
utils/bisect/bisect_step.py
script updates and builds the MPAS code, then sets up the compass test case(s) and runs compass.