-
Notifications
You must be signed in to change notification settings - Fork 181
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 an option for bypassing commit filtering for asv publish. #748
base: main
Are you sure you want to change the base?
Conversation
The "no-commit-filtering" option will ensure that every commit that has a corresponding benchmark will appear in the output graphs, instead of just commits that are reachable via "git rev-parse --first-parent" from one of the listed branches.
… repo. The commit structure is from test_repo.py, which also has a nice diagram of it.
The concept here is more about history "linearization" than "filtering". The graphs and analysis applied to them requires a linear ordering of commits, and there's probably no one best way to do this with significantly branched history. I guess what you intend here is having Ideally, I'd like to see a bit more thought out proposal here with some room left for the different ways one might like to do the linearization. |
Hello, I'm looking at the AppVeyor test failure but I don't quite understand it. It doesn't look like it's related to the code in this PR... can anyone confirm this? If there's some problem with the PR that I need to address, I'd like to get it taken care of. :) |
The appveyor one looks like unrelated maybe temporary conda failure, I don't understand it either. |
Yeah, that's essentially what our goal was. Our thought was that "if we have a benchmark, we want it plotted" because we only had nightly benchmarks run against one particular branch. However, as you say, if a project had benchmarks on more than one branch, our feature certainly wouldn't be very useful!
Thinking about this issue a bit more after reading your comment, it does sound like the best way to address the problem of "what to plot when a project has various benchmark results in a highly branched repo" is to change the behavior of "get_hashes_from_range" and then git/mercurial deal with it. I notice that both a.) if If the loading results stage was split into two parts, so that commits could be reordered according to what was returned by What do you think? |
Yes, I'd prefer to do it in As for the user interface, I'd prefer a flag along the lines of PR #751 seems to be trying to do the same thing as this... |
It is clearly a difficult problem to provide flexibility while ensuring a linear commit history. But what about relying on the user to provide arguments resulting in a linear history, with a warning in the API?
|
Hello!
My team's been using asv for our project for the last couple of months and we really love it. However, we've noticed a problem where our graphs would occasionally lose all of their past data despite the results files still remaining present. Some investigation revealed the culprit:
asv publish
was filtering out benchmarks from commits that didn't appear viagit rev-parse --first-parent branch
. Our repo has a structure such that a condition like that doesn't make sense for us, so we'd rather just have all benchmarks shown.As for the option's name, I went with "no-commit-filtering" to maintain the same naming scheme as "no-pull", but am happy to change it to whatever y'all think makes sense.