-
Notifications
You must be signed in to change notification settings - Fork 283
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
Integrate ASV with Nox #4378
Integrate ASV with Nox #4378
Conversation
Closes #4255 |
This looks great @trexfeathers, I've started to review but it'll take a bit of time to test the functionality. While I get going, could you confirm it's doing the right thing? Here's what I've done so far:
The lines I'm concerned about:
This appears to be installing the environment from one commit and running the benchmarks from another. Either the log messages are wrong, or the environment is wrong. |
This has so far not been a problem. From memory the ASV team are concerned about path length for certain file systems, but nothing has come to light in all my testing on my own linux machine, using Cirrus CI and using GHA. |
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.
Comments inline. Looks like a nice addition although maybe a little complicated for new contributors to get stuck into. Not saying this is something you need to change, sometimes complicated things are complicated.
You'll need to also add documentation on how to use the two new nox commands (I think I did it wrong by just doing nox -s benchmarks
). Also an explanation of how nox and asv relate would be helpful and perhaps reduce the barrier to entry described above.
ASV needs to set up an environment before it gets started. It's quite verbose about this:
But once this is done and the commit-to-commit benchmarking has started, the messages become briefer:
From working with ASV I've learned that it's still doing the same build+install steps after checking out a given commit but before benchmarking it. I don't know why it bothers with building and installing |
Ah yes, that rings a bell. I think that was the reason for the log message on L65 of |
for more information, see https://pre-commit.ci
@jamesp thanks for your thorough review 👍
I'll have to come back to this later in the week. Some thought will need to be given to exactly where benchmarking should be mentioned in the documentation, with correct formatting, references etcetera, and that's not something I can do with the time I have remaining today! |
OK, benchmark CI is passing with the new code which gives me confidence this is working as expected. You can do either of the following:
Once done I'll merge. |
I'd prefer this option. Not because I'm lazy1, but because I consider this PR just another step towards an acceptable solution. There are still other problems I want to solve before I'd be happy officially sharing with the outside world (e.g. what to do when we want to incorporate large files into benchmarking). #4385
Similar to the above, this is moving us closer to not having the offline overnight runner, so I'd prefer not to invest any resources into improving that, since said resources could continue to improve the 'online' runner. 1 well maybe I am, but it's not relevant here |
* main: (44 commits) [pre-commit.ci] pre-commit autoupdate (SciTools#4395) min pin for numpy (nep29) (SciTools#4386) Updated environment lockfiles (SciTools#4393) Extend stock.mesh api (SciTools#4389) Updated environment lockfiles (SciTools#4388) Integrate ASV with Nox (SciTools#4378) NetCDF save - stream ALL lazy arrays. (SciTools#4375) adopt flake8 maccabe complexity metric (SciTools#4380) Accept inverse_flattening = 0 for spherical ellipsoid (closes SciTools#4146) (SciTools#4368) Updated environment lockfiles (SciTools#4379) Prevent warning in `test_Saver` (SciTools#4376) drop pyugrid in site.cfg (SciTools#4373) `flake8` dependency (SciTools#4371) update latest whosnew (SciTools#4372) Allow `check_graphic` to be more flexible (SciTools#4370) [pre-commit.ci] pre-commit autoupdate (SciTools#4365) Updated environment lockfiles (SciTools#4364) Update latest.rst (SciTools#4362) More clarity on setting `iris-test-data` location. (SciTools#4359) update whatsnew (SciTools#4361) ...
🚀 Pull Request
Description
tests
session.Consult Iris pull request check list