Background #
This issue provides a guide on how to analyze and update (in other words, triage) major priority issues in order to make Drupal 8 more stable and plan the next phases of Drupal core development.
Definition of major priority issues: https://www.drupal.org/core/issue-priority#major-bug
Past major triage Contribution days:
- DrupalCon Los Angeles
- DrupalCon Barcelona
- DrupalCon Mumbai
- DrupalCon New Orleans
- DrupalCamp New Jersey 2017
- Florida Drupal Camp 2017
- DrupalCon Baltimore
- DrupalCamp Montréal 2017
- DrupalCon Vienna
- DrupalCon Seattle 2019
Upcoming major triage Contribution days:
Goals #
At the end of major triage we should have:
- A lot of issues that are marked duplicate/cannot reproduce problem (See Current State steps #3 & #4).
- A lot of issues tagged as Triaged for core major current state.
- Some issues that are bumped to critical.
Understand the current state of the issue #
Note that these instructions are specific to bugs. Tasks and feature requests should be handled differently.
We recommend that you keep a separate file of your notes, and the issue metadata (tags, status, etc) you are planning to change. Make an initial comment saying that you and the person you will be working with are at the Drupalcon Nashville sprint looking at this issue. Try to make the rest of the metadata changes to the issue in one issue update (if possible) rather than making a number of smaller updates (to cut down on the number of notifications). Document the results of each step.
Even if you only do some of the steps, something is better than nothing. The goal is to make forward progress, not solve the issue in a single comment.
- Work with a partner. Select an issue from your component's queue (below). Pick a component you are familiar with, it will make things easier.
- Read the whole issue, or at least the last few comments to understand the issue. Do so in less than 15 minutes.
- If you partly understand the issue, or if you have some questions about it, ask someone! You can ask one of the recommended contacts for the component, contributors who have worked on the issue, the contribution leads, or other contributors at the contribution or in IRC.
- If you do not understand the issue in less than 15 minutes of reading it, choose a different issue.
- Make note of:
- Who filed it (Do they have more than 20 commit mentions in Drupal 8? More than 100? Are they a maintainer for the subsystem, an initiative coordinator, or a core committer? See list of maintainers.) Their experience with Drupal 8 lends credibility and validity to the issue.
- When it was first created. If the issue is really old, then it has a higher chance of being not applicable.
- When it was last updated. The longer the issue hasn’t been touched, the higher the chance that the issue is not applicable.
- Tag the issue with the tag for the Contribution day (e.g. "Nasvhille2017") and comment that you are working on triaging it.
- Try to reproduce the issue in the 8.5.x (or latest) HEAD, either on simplytest.me or locally. (If you test locally, start clean and be sure you pull the latest changes from git. `git log` should show commits within the last day or so.)
- If you can reproduce the issue, leave a comment indicating that you have confirmed that the bug is still present. Document the steps to reproduce in the issue summary if they are not listed there already, and then go on to the next step.
-
If you cannot reproduce the issue:
- Try to reproduce the issue using the version of Drupal from when the issue was filed. You may need to check a specific commit from a long time ago or even Drupal 7.x. (Use `git log --before=date` to find commits before a certain date.) Be sure to start clean.
-
If you can reproduce the issue using an older version of Drupal 8.x, try to figure out when and how the issue was fixed, and document what you find on the issue. Techniques you can use:
- Search for "Fixed" and "Closed (fixed)" issues related to the issue.
- Use `git log -S` or `git log --grep` to search for related commits.
- Use `git bisect` to find the first commit where the issue is resolved.
- 4A. If you find a specific issue that fixed it, mark your issue as a duplicate of the issue that fixed it, and move on to the next issue.
- 4B. If you can reproduce the issue in the latest version of Drupal 7 but not Drupal 8, post a comment indicating that the issue has been resolved in Drupal 8. Set the version to "7.x-dev" and remove the "needs backport to D7" tag if it is there. Move on to the next issue.
- 4C. If you still can't reproduce the issue, leave a comment indicating that you were unable to reproduce the issue in either the current version or the original version. Document the exact steps you tried (so the next contributor knows what did not work) and tag the issue with "Needs steps to reproduce". Move onto the next issue.
- For issues that are still relevant (i.e. you were able to reproduce the bug), identify any duplicate issues. If you close issues as a duplicate, go on to the next steps for the open major issue. (You can disregard the closed one(s) from now on.) Do a best effort to find duplicates. Timebox to less than 30 minutes.
- Determine if the issue summary is up to date. If it is not, tag the issue with "Needs issue summary update". You can also update the summary with what you know.
- If the issue has a patch, determine whether the latest patch is still relevant. Try applying the patch on a local git checkout. If the patch does not apply, tag it "Needs reroll". Only if the patch applies locally should you send it for re-testing.
- Tag the issue with the Triaged for core major current state issue tag.
If you do not finish triaging an issue
Sometimes triaging an issue can take a long time, especially if it is difficult to reproduce. If you don't finish triaging an issue, add a comment that explains what you found so far and which steps you completed, so that the next contributor can build from your work.
Flowchart diagram #
(PDF version with example comments / draw.io original)
Example comments #
Initial comment
Your initial comment should include:
- The usernames of the other contributors you are collaborating with. Make sure to type your co-contributors' usernames correctly!
- The contribution or event you are participating in.
- A link to this issue, using the issue link shorthand:
[#2474049
]
- The username of anyone helping you as a mentor.
Example initial comment:
@contributor1, @contributor2, and I are working on triaging this issue at Event, following the instructions in #2474049: [meta] Major issue triage. @contributor3 is helping as our mentor.
Add the event tag with your initial comment.
Final comment
Your final comment should include:
- The exact steps you used when trying to reproduce the issue.
- The branches, releases, or commit hashes you tested with your steps, and what the results were on each.
- Links to any duplicate issues you find, using the
[#NNNNNNN]
issue link shorthand (whereNNNNNNN
is the Drupal.org node ID for the issue). Also add the issues to the Related issues field. - An explanation for any changes you make to the issue metadata (tags, status, version, etc.).
Some examples:
We were or were not able to reproduce the issue on the latest 8.5.x on simplytest.me. The steps we used were:
- Install Drupal 8.5.x with the Standard profile.
- Enable the Settings Tray module under the Experimental package.
- (etc.)
We confirmed that the patch in comment #17 still applies to 8.5.x and we have sent it for re-testing using the "Add test/retest" link under the patch test results.
or
The latest patch in #17 does not apply to 8.5.x HEAD, so it needs to be rerolled. For this reason, we're adding the "Needs reroll" tag and marking the issue "Needs work".
If the issue is fixed in HEAD but present in an older version:
However, we were able to reproduce the issue with those same steps using an older release (8.2.6) from when this issue was reported back in February of 2017. We looked into it more and determined that this was fixed by [#NNNNNNN], so we are closing this as a duplicate of that issue by adding it to the related issues and marking this "Closed (duplicate)".
If the issue cannot be reproduced at all:
We tried testing on the latest 8.5.x HEAD, 8.2.6 (the latest release as of when the issue was posted), and commit
e496c7b3
(a commit on the day the issue was posted) and we were not able to reproduce the issue. The issue does not apply to Drupal 7 since the Settings Tray module was not added until Drupal 8.2.0-beta2. So, we need accurate steps to reproduce the issue in order to resolve it. Tagging "Needs steps to reproduce" and marking "Postponed (maintainer needs more info)" for those reasons.
Major triage queues #
For the first few contributors, here are a few issues tagged Needs triage for core major current state that the committers determined could use verification. So the first contributors can look at those and potentially assess them.
Then, after that, contributors should team up with others, pick one component, and search for that component within this queue:
Drupal 8 major bugs that have not already been triaged.
Comment | File | Size | Author |
---|---|---|---|
#115 | major_triage_flowchart_and_example_comments.pdf | 341 KB | xjm |
#106 | portrait_major_triage_flowchart.png | 121.65 KB | xjm |
Comments
Comment #1
xjmComment #2
heddnComment #3
cilefen CreditAttribution: cilefen commentedComment #4
cilefen CreditAttribution: cilefen commentedComment #5
cilefen CreditAttribution: cilefen commentedComment #6
cilefen CreditAttribution: cilefen commentedComment #7
xjmWelcome to the major issue triage sprint at DrupalCon Los Angeles!
Comment #8
mrf CreditAttribution: mrf commentedmrf, metzlerd, phillamb168, bisong table to right of MAJOR TRIAGE sign looking at Views majors.
https://www.drupal.org/project/issues/search/drupal?project_issue_follow...
Comment #9
xjmComment #10
phillamb168 CreditAttribution: phillamb168 as a volunteer commentedcilefin & I are working on the user system -
#2339399: User edit form does not use flood control and allow for password brute force attacks#2409107: Do not prepopulate the user register form with the email address and username of the last person who registered using the same web browser#2430447: AccountProxy should not be serialized -- we were working on this but ran into roadblocks. Moving on to:
watchdog.module
#1328014: PDOException when saving a node on non-English languagescontact.module
#1997692: Create contact form blockphpunit
#2203747: Current PHPUnit configuration scans into contrib vendor dirsComment #11
johnshortessjohnshortess working on routing system bugs:
https://www.drupal.org/project/issues/search/drupal?project_issue_follow...
starting with #2075889: Make Drupal handle incoming paths in a case-insensitive fashion for routing
Comment #12
rklawson CreditAttribution: rklawson commentedI'm working with a team of three on https://www.drupal.org/node/2310175 for the menu system component.
Notes:
At /admin/config/development/configuration, the page title should be “Configuration Management” and the path should be /admin/config/development/configuration/synchronize, to make the path consistent with the other tasks/subtasks.
We have a patch to solve this by changing the name of the path from “Synchronize” to “Configuration Management.” We tested this, and it appears to be working correctly.
We also evaluated other areas of the site to ensure that “deep linking” was not broken (Configuration Settings > Account Settings and its tasks/subtasks).
Given that the default task requires the “sychronize configuration” permission, there may need to be more work to ensure that users can access the appropriate subtasks (some use “export configuration” and “import configuraiton.”
Comment #13
baisong@metzlerd and @baisong are working on the Views UI and path.module issues:
Comment #14
cilefen CreditAttribution: cilefen commentedRemoved references to the "rc target" tag. We are not using that tag today.
Comment #15
bburg@mdrayer and @bburg are currently triaging the text.module issue: #221257: text_summary() should output valid HTML and Unicode text, and not count markup characters as part of the text length
Comment #16
metzlerd CreditAttribution: metzlerd as a volunteer and commentedI'm going to try to start working on block.module area including.
Comment #17
jibranI think taxonomy.module doesn't need triage only 5 issue all valid.
Comment #18
gappleUpdated summary with link to tagged issues
Comment #19
xjmComment #20
DuaelFrUpdated "start clean" links (404)
Comment #21
heddnComment #22
heddnComment #23
heddnComment #24
akalata CreditAttribution: akalata as a volunteer commentedComment #25
heddnComment #26
YesCT CreditAttribution: YesCT commentedHow do we want to tag issues, so we know which still have to be triaged?
Triaged d8 major?
it parallels the critical tag
Triaged D8 critical https://www.drupal.org/project/issues/search/drupal?project_issue_follow...
there were some tagged with a drupalcon name:
Triaged at DrupalCon Los Angeles 2015 https://www.drupal.org/project/issues/search/drupal?project_issue_follow...
those should get whatever generic tag we come up with....
Or... we could "rename" that tag to "Triaged d8 major" some people on d.o have the ability to rename tag taxonomy terms.
Comment #27
cilefen CreditAttribution: cilefen commented"Triaged d8 major" works for me.
Comment #28
heddnTriaged D8 Major is acceptable. But we spent a good deal of time splitting this into two parts for triage. So I'd champion for two tags.
1) Triaged D8 Major Current State
2) Triaged D8 Major Acceptance Criteria
Comment #29
xjm@heddn, what would the two tags mean?
Comment #30
heddnre: #29: It would align with completion of these two phases.
Comment #31
xjmThanks @heddn, I see. So the first tag is about ensuring the issue's relevance, and the second is about ensuring the issue's actual eligibility to be committed to whatever branch it is filed against (8.0.x or 8.1.x). That way, all contributors can help "narrow the funnel" into a queue for experienced contributors to assess the issue in terms of the Allowed changes policy.
One option is that we could use simply "Triaged D8 major" for the second category (meeting the acceptance criteria), since it most closely corresponds to "Triaged D8 critical". The main difference is that only committers could tag issues as "Triaged D8 critical", but that was due largely to the fact that it so directly determined the release date. For major issues, I think we can encourage others to use this tag as well. The "Needs release manager review" tag can always be added if there is some doubt.
Based on that, I'd suggest the first tag be instead "Needs D8 major triage". That way, we would crowdsource creating a queue of issues that are still relevant, but need to be assessed for whether they can go into 8.0.x / 8.1.x / etc.
Comment #32
xjmRemoving the beta eval item from the steps since we're not in Kansas anymore. :D Also reduced the RC bullet to link to the allowed changes doc and tags now that we have those.
Comment #33
xjmAnd also linking that in the step about assessing the issue for patch/minor/major version inclusion.
Comment #34
xjmAnd fixing the list formatting a smidge.
Comment #37
xjmAnd updating the background information for RC as well.
Comment #38
xjmComment #39
xjmAdd links for commit mentions and maintainers.
Comment #40
xjmComment #41
xjmComment #42
xjmComment #43
xjmComment #44
xjmUpdated to remove acceptance criteria steps for now -- I will create a separate meta for that.
Welcome to DrupalCon Asia 2016 major issue triage!
Comment #45
xjmComment #46
xjmThe flowchart is not up to date, so commenting it out for now.
Comment #47
xjmFor DrupalCon Asia, we'll start from the oldest issues in the major bug queue. Here is a link:
https://www.drupal.org/project/issues/search/drupal?project_issue_follow...
(Edit: Added a tag for issues to skip)
Comment #48
xjmComment #49
xjmComment #50
xjmComment #51
prasad_gogate CreditAttribution: prasad_gogate commented@prasad_gogate triaging the issue https://www.drupal.org/node/2515050#comment-10877686
Comment #52
swarad07Testing this issue, #2621422: Wrong default path for page.html.twig given. Patch works, waiting for tests to finish.
Comment #53
prasad_gogate CreditAttribution: prasad_gogate at Acquia commented@prasad_gogate triaging the issue https://www.drupal.org/node/2409107#comment-10877886
Comment #54
nagwani CreditAttribution: nagwani at Acquia commentedTriaged following issues
Comment #55
saitanay CreditAttribution: saitanay as a volunteer and at Acquia commentedTriaging #1125428: Language-specific aliases only work with url-based language negotiation
Comment #56
nagwani CreditAttribution: nagwani at Acquia commentedTriaging by [@monojit256] #2468045: When deleting a content type field, users do not realize the related View also is deleted
Comment #57
hitesh-jain CreditAttribution: hitesh-jain at Acquia commentedTriaging : #842620: Update manager can't install modules using FTP due broken FileTransferAuthorizeForm
Comment #58
aditya.ghan CreditAttribution: aditya.ghan at Blisstering Solutions commentedTriaging this issue #2306331: "Single on/off checkbox" widget makes no sense for boolean fields with cardinality > 1 and "Check boxes/radio buttons" makes little sense for boolean fields with cardinality > 2 . The issue still exists.
Comment #59
swarad07Tested patch here, #2644838: Add test coverage for the editor's max dimension setting, and fix its message when one dimension is unrestricted. The patch works, but the code is missing comments in some places. Marked as Needs work.
Comment #60
nagwani CreditAttribution: nagwani at Acquia commentedTriaging #2599594: Multilingual content: Menu link is not correctly stored on translation.
Comment #61
prasad_gogate CreditAttribution: prasad_gogate at Acquia commentedTriaging #2575535: Custom language settings configuration is not saved when you have a language selector enabled for any content
Comment #62
aditya.ghan CreditAttribution: aditya.ghan at Blisstering Solutions commentedTriaging #2073663: Taxonomy load functions filter for access control
Comment #63
xjmThanks to everyone who participated in the DrupalCon Asia major triage sprint! I've updated the relevant major issues to add proposed issue credit for triagers where appropriate. We clarified the status of some of the oldest major bugs in the queue.
Comment #64
xjmComment #65
xjmComment #66
xjmSo the flow charts attached above are actually flipped around; the one labeled "Drupal 8 Triage Major Issues Acceptance Criteria Flowchart" is actually the current state flowchart and vice versa. Oops! :)
In the mentoring meeting we discussed updating the flowchart in preparation for DrupalCon NOLA. The acceptance criteria workflow (in the attachment labeled "current state") was pre-release and so is not applicable anymore. However, we are improving the process now so that core committers and subsystem maintainers collaborate to assess those criteria, so we don't need to worry about updating that flowchart.
Starting with DrupalCon Asia, we are focusing on triaging for current state at sprints. The current state flowchart (the one labeled "acceptance criteria") is very close to accurate still and just needs a couple updates:
1. The step that says "Can reproduce in 8.0.x?" should be changed to "Can reproduce in 8.2.x?".
2. The step that says "Tag 'Current State Triage Barcelona2015'" should be changed to "Tag 'Triaged for D8 major current state' and with sprint tag".
Comment #68
xjmAlright, here is the updated flowchart.
Comment #69
xjmI realized also that the endpoints for non-reproducible issues were actually not marked as such and instead pointing to the bubble to tag the issue as triaged. Attached fixes that, plus also adds in the steps to check whether the patch applies.
Comment #70
xjmFiddling the arrows to make them less confusing.
Comment #71
mikeryanI'd like to start tagging some migration issues for NOLA sprinting - I don't see a specific tag in use yet, I'm thinking (a la "drupalconasia2016") "drupalconnola2016" - sound good? Or does it scan like a horrible misspelling (Drupal Canola - Oil of Champions)?
Comment #72
mikeryan(removing bad tag from failed search for existing "drupalconnola2016")
Comment #73
xjmComment #74
xjm@mikeryan, @alimac proposed neworleans2016. Using that for now. :) (But yum, canola.)
Comment #75
xjmComment #76
xjmComment #77
xjmAnd welcome to the New Orleans major triage sprint!
For the first few sprinters, here are a few issues tagged Needs triage for D8 major current state that the committers determined could use verification. So the first sprinters can look at those and potentially assess them.
Then, after that, sprinters should team up with others, pick one component, and search for that component within this queue:
Drupal 8 major bugs that have not already been triaged.
Comment #78
xjmThanks everyone for helping triage major issues at New Orleans! I've found the following usernames of major triage sprint participants for the NOLA sprint:
I think that is missing several sprinters; let me know via my contact form if so. Also be sure to comment on any issue you helped triage so I can make sure you are credited.
Comment #80
xjmAdding a current table to the summary.
Comment #81
xjmComment #82
xjmWe are sprinting on major triage in a week at DrupalCamp New Jersey.
Comment #83
xjmComment #84
pwolanin CreditAttribution: pwolanin as a volunteer and at SciShield commentedComment #85
pwolanin CreditAttribution: pwolanin as a volunteer and at SciShield commentedDo we want to suggest people may downgrade issues?
Need links to the definitions of different priority levels?
Comment #86
cilefen CreditAttribution: cilefen commentedUpdated the flowchart with 8.4.x.
Comment #88
xjm@pwolanin So sprinters should not actually be downgrading the issues in most cases if they are still relevant. The process is to tag them once they're confirmed to be relevant and then the maintainers confirm the priority (or not) since that can take a lot more time to understand. See flowchart.
That said the priority definitions are obviously helpful! Somehow that is not linked in the summary already. I will add it: https://www.drupal.org/core/issue-priority#major-bug
Comment #89
xjmRecent data.
Comment #90
xjmComment #91
xjmComment #92
xjmFor DrupalCamp NJ there are just a few of us so we are coordinating which issues we are triaging in a spreadsheet:
https://docs.google.com/spreadsheets/d/1HIiqu9WPmjRuZc5qG_sn0pwbfYLtoFg5...
Great work so far!
Comment #93
YesCT CreditAttribution: YesCT commentedupdating for florida instructions
Comment #94
JCL324Comment #95
capysara CreditAttribution: capysara commentedComment #96
capysara CreditAttribution: capysara commentedComment #97
cilefen CreditAttribution: cilefen commentedComment #98
wturrell CreditAttribution: wturrell as a volunteer commentedUpdated issue count table (seemed like this might be useful).
Comment #99
shaalComment #100
xjmComment #101
xjmWe had a good sprint at DrupalCamp Montréal this weekend. A couple followups we identified:
Comment #103
xjmI am adding the link to the original, editable draw.io version of the flowchart to the summary, since I keep losing track of it.
We talked about adding sample comments that people could use as templates. I typed up this:
Initial comment
Final comment
or
If the issue is fixed in HEAD but present in an older version:
If the issue cannot be reproduced at all:
Edit: added another example.
Comment #104
xjmMade some changes to hopefully make the flowchart easier to read and less overwhelming. Also added the step numbers to the items.
https://www.draw.io/#G0B6pfQiiJgt4GRVIyZnZOd2NFQzg
Comment #105
xjmComment #106
xjmComment #107
rachel_norfolkLiking the comment templates.
I'm assuming in the diagram at 4a, that's adding the original issue as the duplicated and marking this one as "Closed (duplicate)"?
Comment #108
xjm@rachel_norfolk Yep. The detailed instructions in the summary Maybe this text would be more clear? Seems to fit the bubble:
I also updated the corresponding step in the summary with similar wording and a link to https://www.drupal.org/contributor-tasks/duplicates. (It was linked in a different part of the instructions, but not there.)
Comment #109
xjm(Removing "some issues that are postponed to 9.x" from the summary since this actually should almost never be the case with the continuous upgrade path and deprecation policy.)
Comment #110
xjmComment #111
xjmAdding a list of what the initial and final comments should include along with the examples.
Comment #112
xjmOne task that someone could do is to create a contributor task handbook page for "Determine when a change was introduced in Drupal core". This would allow us to reduce the "text overload" in the summary a bit. The starting point would be these bullets:
The handbook page could also incorporate links to references on the relevant git commands. git blame and git log -L could also be added to the strategies for the handbook page. (They are less relevant for triage where the contributor might not know which hunk of code is relevant, but definitely relevant to the topic overall.
Comment #113
xjm(Reordering the added sections a little.)
Comment #114
xjmComment #115
xjmI updated the flowchart PDF to include the example comments on the second page, so we can print it as a two-sided handout at sprints.
Comment #116
xjmUpdated queues.
Comment #117
xjmComment #118
xjmComment #119
xjmComment #120
xjmComment #121
xjm(Code filter and issue link filter don't seem to be ordered correctly.)
Comment #122
fgmComment #124
ekl1773Comment #125
benjifisherWe agreed at the monthly mentoring meeting to add the Nashville2018 tag to this issue.
Comment #128
joelpittetComment #129
volkswagenchickComment #131
volkswagenchickTagging for midcamp2020 contribution day
March 21, 2020 10a - 4pm VIRTUALLY
Comment #137
xjmUpdating the IS for new tag names.
Comment #140
xjmSomething we should have done from the get-go is have child issues per event, since a lot of the work that goes into triage ends up in non-creditable statuses (duplicate, cannot reproduce, etc.). I'm working on adding those children now, although retroactively crediting participants years later will take some archaeology. :)
Comment #141
xjmI went ahead and created those issues and credited some of them the best I could. Ran out of steam. Active children still need their credits populated; NW issues have some credits but are missing others. Fixed issues have all or most participants and mentors credited.