-
Notifications
You must be signed in to change notification settings - Fork 528
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
CI: show build commands on terminal #1965
base: master
Are you sure you want to change the base?
Conversation
test-builds.sh record output from the build in bt<layer>.log and we are already collecting that. Send output from the build also to standard output, for more convenient reading in Github's 'actions' interface
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.
test-builds.sh record output from the build in bt.log
It does not. Output is sent to layer-specific log files.
Send output from the build also to standard output, for more convenient reading in Github's 'actions' interface
I expect the result to be less convenient for many, especially when the build fails (which is the primary use case here IMO!): Navigating long logs using GitHub Actions API is painful and archived logs are just a few mouse clicks away. If anything, we should be reducing noise in the current GitHub Actions output.
I do not know whether it would help your use case, I would support adding the tail of a failed log to test-builds.sh output (even by default).
I also do not like proposed code duplication, but I hope that will go away while addressing the primary concern discussed above.
Markdown ate my homework. I had written "bt_layer_.log" . Correcting
After this PR:
Before this PR:
I'm not sure what is your workflow, but for me this PR simplifies things significantly Anyone who prefers the "before" version of the workflow is unaffected: the 'Run' subsection of the workflow output with all the logs is closed by default (at least, it is for me), it doesn't occupy any more screen real estate than it does now. In other words, this proposal improves things for at least me; I would like to get a concrete example of how it causes a measurable regression for you as a representatives of the many you mention In fact, after this change, another workflow becomes possible if one has installed the gh CLI tool:
It can help, but not as much as having the full log. Sometimes, especially in cases of high parallelism in builds, an error can be dozens of lines back from the end of the log
We could make verbose output to be the default for test-builds.sh, but I expect it would be more disruptive than this change. I am not sure if you had something else in mind |
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.
Just one fix of a pre-existing bug that shows up in the touched lines of this PR.
I do not insist on this.
Co-authored-by: Amos Jeffries <[email protected]>
@yadij accepting this dismissed your review; please re-approve |
I will work on providing one, but it will take me some time to simulate the problems I experience when searching for errors in large GitHub Action console output and to check suspicious assertions in your response to my review. I seriously doubt that spending this time is the best use of our scarce resources, but c'est la vie.
We can easily tail "dozens of lines". Obviously, the interesting bits may not be present in any partial output, but the full log is always a few mouse clicks/seconds away. |
I agree you should not spend the time! I do not understand what the problem is, to be honest. You would not be forced to search for errors in large console output, your current way of operating will not be taken away from you or anyone else. |
Glad we agree. Unfortunately, I do not see how I can explain what the problem is and address your rebuttal of my blocking review without spending that time. Clearly, my initial attempt to explain has failed. Now I need to validate my "this change makes things worse for primary use case" assumption with a specific example and, ideally, also illustrate that searching through large console logs for errors is not as easy as the author says. That takes time. |
Sorry about that. |
Sure: My primary "process" for both of the given examples is the same -- I typically ignore successful builds. My primary concerns (in this PR scope) are not about the builds we ignore. If you would like for me to stray from the primary path and use your first example to illustrate some of the (secondary) problems, then keep reading. YMMV, but when navigating large "Run build..." step logs using GitHub Actions web UI in my environment, I can observe the following:
AFAICT, longer logs exacerbate these problems. Certain errors may significantly increase log size. In general, logs tend to grow with time as well. The current example cannot illustrate that, of course. Time spent so far: 37 minutes. |
Then don't use them, you can continue downloading the artefact and searching there. I'm not proposing to take that away on top of that:
Sure. After this PR lands - if ever - you can keep downloading the artefacts2 and search there
Sorry about that. Unfortunately I still do not see how this change will prevent you from continuing to operate in the same way you have so far, while allowing me to choose on a case by case basis whether to rely on the 2 additional workflows that will be available I feel like my message is not getting through: you and anyone else who wants or needs to rely on the artefacts will be perfectly able to continue using artefacts, without ever seeing or interacting with the second copy of the output that is emitted to stdout/stderr. I am not encouraging, much less forcing, anyone to stop relying on artefacts as their primary - or only - source of debugging information. You have so far not articulated any regression in functionality for yourself. |
Yes, I am well aware of that fact (naturally?). None of my concerns state or imply otherwise!
I know. As I said, I need to validate my assumption (that this change may make things worse for primary use case) with a specific example. That should overcome the current barriers, but it takes time. So far, I was just responding to your other (mostly unrelated) request. We are making progress though because the second (and secondary) item from the same TODO has been completed: "illustrate that searching through large console logs for errors is not as easy as the author says".
Your message is getting through just fine AFAICT. However, that message is not relevant to my change request1. FWIW, the same situation happens in the vast majority of cases where the rebuttal is based on an obvious, surface-level, in-your-face fact that I ought to be aware of. There are always exceptional cases, of course!
I believe my change request described my concerns reasonably well, but the level of "articulation"2 is naturally a matter of opinion, and I am sorry I failed to be articulate enough. I need more time to detail what has been described with an example, as discussed earlier, and I hope that example would help get us on the same page.
Not exactly AFAICT: My original review can already be used to answer this simpler "how things can become worse" question, at least on a superficial level. Your actual request went a lot further: "I would like to get a concrete example of how it causes a measurable regression for you" (emphasis mine). That is still a TODO for me.
It may be important to keep in mind that GitHub Actions GUI being discussed here is the primary/first/initial source of information for many, especially among less experienced/new contributors. If a PR makes it worse (in some cases), then it is a valid argument against that PR, regardless of whether there are other/unaffected ways to obtain the same or similar info. This is an aggravating factor if you will. The task of proving that my concerns are valid (with a "concrete example" that demonstrates "measurable regression") is still a TODO on my side. Time spent so far: 69 minutes. Footnotes |
I am glad we are making progress. The original review comment states:
We have progressed in that we agree that the primary focus should be the case of failed builds.
Let me reframe that: you evoked "many", whom we have not heard from yet, whom you expect would be inconvenienced in the primary use case of a build failure. I countered that by evoking many, of whom I am one, who would benefit in a measurable way in a significant fraction of the occurrences of the primary use case (based on real world experience).
"How things can become worse" is not what I asked. How things do become worse is what we need to find here. And so far the best concrete case you have presented is "someone who is not experienced in how we do CI might turn up and contribute , and might be tempted to use a sometimes less effective workflow" which is not particularly compelling: it applies in a fraction of a fraction of a fraction of events, and remediation is one github comment from one of us away - hardly a high barrier. But then, once we have found an adverse example and assessed its likelihood of happening, we have to match that against the measurable benefit of the alternative (landing this PR) and then we can take an informed decision |
IMO, the new framing and past "measurements" are rather unfair. I bet you disagree, but I hope we can continue to make progress even under these adverse conditions. BTW, while we are talking about structuring the debate, we should keep in mind that the primary problem can be addressed in several ways. Where feasible, we should be selecting the "best feasible" way rather than dealing with a "this way or nothing" false dichotomy.
We can use "do become" phrasing if you prefer: It is your question, and you can shape it any way you like, of course. AFAICT, the next things I have to do are exactly the same regardless of that phrase choice ("would be worse", "can become worse", or "does become worse"). In other words, for me, all those variations are effectively the same in this context. Overall, we are (or should be) evaluating expected PR outcomes. That set of outcomes is not limited to a subset of cases one of us has already witnessed (or is asked to witness). We cannot afford to support every expectation with a test case. Where feasible, I hope we can continue to agree on judgement calls not backed by a dedicated test case. Said that, I will spend time to test my assumption in this case.
I agree that the relative number of relevant events is small from our point of view1. Our current chances of encountering a new contributor are small to begin with! It looks like I value new contributor satisfaction and my time spent to address contributor dissatisfaction much higher than you do (so my multiplier is much higher), but I hope we can make progress despite those valuation differences.
Yes, we need to assess and balance expected benefits/harms; that will require judgement calls, and, FWIW, I will continue to place a high premium on new contributor experience. And, again, rejecting or landing current PR code are not the only two alternatives we should be considering. Time spent so far: 131 minutes. Footnotes
|
You are right, I disagree. But I also hope we can progress
If "best feasible" is the goal, the solution gets naturally biased to "more options are better than fewer options" just by virtue of having more choice, but I bet you disagree ;)
Well, in terms of risk, "can become worse" or "would be worse" is about the likelihood of becomign worse. "do become" requies certainty, or at least a high-confidence prediction
I agree we should not spend infinite amounts of time on wild goose chases.
Yes, unfortunately.
I disagree with this statement, in part because you are misassessing what I value, in part because it feels you are assuming that a new contributor would be dissatisfied by having more options to choose among - and we do not even know that!
We share the goal. Problem is, so far we can't agree on what is that would make new developers' experience as good as we can.
I appreciate you offered to print some lines from the output, but I feel it is a worse choice than printing everything. Do you have any alternative idea to propose?
We do not know this. It would be great if any new developer could chime in here! |
I see no progress in the last exchange -- just another round full of misinterpretations and false assumptions. We can probably clarify most of them in a few rounds, but I doubt its worth the cost, so I suggest that we pause. I hope that my next message will discuss a specific error example that demonstrates or dismisses the alleged PR problem. It will take time to construct that, but I do plan on doing it. |
test-builds.sh records output from the build in
per-layer logs and we are already collecting that.
Send output from the build also to standard output,
for more convenient reading in Github's 'actions'
interface