-
Notifications
You must be signed in to change notification settings - Fork 26
Addition of a causes link type #139
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
Conversation
👋 Welcome back calnan! A progress list of the required criteria for merging this PR into |
@calnan This change now passes all automated pre-integration checks. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 2 new commits pushed to the Please see this link for an up-to-date comparison between the source branch of this pull request and the As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@JesperIRL) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
Webrevs
|
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.
NIce to see such a section being added - and I've missed a "caused-by" link for many years (why did we not have it from day one?). A few suggestions however.
Thanks
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.
Thanks for updates.
… by link, moving most of the text into other relevant sections of the guide
How should the causes/caused by link be used when a fix is backed out, and then redone? Since this is a bit of a tricky albeit somewhat common situation, maybe we should clarify it in the guide? |
I don't think the fact that fix 'A' is backed out changes the 'A causes B' link itself, although B would be closed once the back-out happens but the link would remain. |
I agree. This would be alternative 2 in step 3 of https://openjdk.org/guide/#backing-out-a-change - backing out the change is fixing the regression. We don't remove the links when issues are fixed. |
So if I have an old checkin A that caused a regression in e.g. a prior release that was not noticed at the time, and make a fix for it in B, but it is broken and is backed out in C, and then redone in D. A causes B, B causes C, and A causes D? |
I don't think it makes sense to have a backout issue be marked as "caused by" the original issue. I don't think that is the sense of "cause" this was intended to capture. |
Why not? I assume that one thing you want to capture is when backporting. So if B is broken, you definitely would want to know that it caused undesired behavior that was fixed by C. Or am I mistaken? |
I agree. The reason for backout is that the fix was broken, so C was caused by B. When backporting, B and C can be skipped, therefore a ‘causes’ link from A to D makes sense to me. |
But that only makes sense once D is created. When creating B, the author genuinely believes that it fixes A. It is just that later on, B was found to be broken. Should we at that point go and remove the I'm not saying I have the right answer here, but I definitely think that whatever we come up with should be documented in the guide, since this is indeed a tricky scenario. |
I don't think we should. The relationship between A and B remains even after C is created, and after it's integrated, too. Additional comments could be added to clarify the relationships. However, the fact that B causes C and that C is a backout highlights that B isn't actually fixed. For this reason, D should be created as soon as it's clear B will be backed out — at the same time when C is created.
I don't know the right answer either. Yet I think A should have the ‘causes’ link to both B and D, possibly a ‘relates to’ link to C too. |
I don't see any scenario where we would delete a causes link unless it's added by mistake or some analysis later shows that the indicated bug isn't the cause. As always one must use common sense and do what's best in any edge case situation. To me it's clear that A causes B and D and I think it's preferred to keep the text short and readable over trying to explain every edge case out there. |
... and B causes C, right? I don't think we need to explain every edge case, but I think the specific case of a backout could be served by being explicit in what to do in that situation. |
First off if B is broken it should be Verified as Fix Failed and that is what tells backporters there is an issue. It then has a link to C (the backout) and a link to a REDO issue (potentially). These links are evident regardless of how the link is described. If we say that the Backout issue is caused by B then that would imply the REDO issue is also caused by B - they are both only necessary because B was broken. Are you proposing that as well? If so the Backout section of the guide also needs to reflect this. I understand that without B being broken there is no need for a Backout issue but that relationship is to me more specific than simply causal. Maybe we need a backed-out-by kind of link. |
I'm not seeing that the last set of comments warrant any changes to the text |
/integrate |
@calnan This pull request has not yet been marked as ready for integration. |
|
Co-authored-by: Alexey Ivanov <alexey.ivanov@oracle.com>
Co-authored-by: Alexey Ivanov <alexey.ivanov@oracle.com>
Jesper, as discussed I moved the order of the paragraphs in "Backporting multiple related changes" |
/integrate |
/sponsor |
@JesperIRL @calnan Pushed as commit 5ce900f. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
There is a proposal for the addition of a causes/caused by link type. Tied into that there is now a separate section which covers the main link types that we use
Progress
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/guide.git pull/139/head:pull/139
$ git checkout pull/139
Update a local copy of the PR:
$ git checkout pull/139
$ git pull https://git.openjdk.org/guide.git pull/139/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 139
View PR using the GUI difftool:
$ git pr show -t 139
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/guide/pull/139.diff
Using Webrev
Link to Webrev Comment