Skip to content

Instantly share code, notes, and snippets.

@pixelhandler
Last active November 18, 2016 18:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pixelhandler/b8354b084654947061ec to your computer and use it in GitHub Desktop.
Save pixelhandler/b8354b084654947061ec to your computer and use it in GitHub Desktop.
Ember Issue Triage

Ember Issue Triage

Some background on issue tracking:

When Ember developers assist the core team with issue triage, the core team and contributors can spend more focused time on actionable results.

Goals

  1. Reduce signal to noise ratio
  2. Weekly (superficial) triage of issues, all up review of issues
  3. Core Team reviews triage spreadsheet and updates issue labels; can address actionable bugs

Needs

  1. Core team wants to know pain, so to prioritize issues
  2. Core team needs to be given the benefit of the doubt on the choice of prioritization
  3. Individuals can always scratch their own itch (this is key to all our success)

This last bit core team needs help with, its a tricky balance.

Triage list

  • Community: Group issues by actionable categories: bugs, not bugs, needs clarity
  • Core team: Monitor collaboration on shared triage spreadsheet
  • Spreadsheet: export issues list from Ember project on Github (JS snippet to scrape page)

Core team meets on Friday at 11am, so an all up review would be valueable for everyone's eyes then.

Target Actionable Results

  • Identify low hanging fruit
  • Look for patterns in issues, common cause(s) for many bugs
  • Combine duplicate issues
  • Provide update for labelling issues, e.g. Documention, Bug, Question, etc.
  • Issues for current release (e.g. 1.13.x) may be fixed
  • Issues for older release may only be fixed if a security issue, or core team commits to backporting
  • Filter out noise by diverting 'Questions' to discuss forum
  • Redirect 'Feature Requests' to discussion on an RFC/issue (or even RFC doc, if idea is presented clearly)

Creating the spreadsheet

Export the issues from Github into tab separated values to build a spreadsheet. Include issue: #, title, href, labels

Example: https://docs.google.com/spreadsheets/d/1LHxHaoT4P1MeBITEkbjKkaZhZmeKoYqSBkPiDiJ4u5g/edit#gid=0

  • Browser console snippet to create tab separated values (It's useful, not pretty)
window.issueList = document.querySelectorAll('.table-list-issues li');
issueList.plainTexts = [];
Array.prototype.forEach.call(issueList, function(item) {
  var issue = item.querySelector('.issue-meta .opened-by').innerText.trim().split(' ');
  var title = item.querySelector('.issue-title-link').innerText.trim();
  var href = 'https://github.com/' + item.querySelector('.issue-title a').getAttribute('href');
  var labels = [];
  var labelEls = item.querySelectorAll('.labels a');
  if (labelEls && labelEls.length) {
    Array.prototype.forEach.call(labelEls, function(elem) {
      labels.push(elem.innerText.trim());
    });
  }
  issueList.plainTexts.push([ issue[0].substr(1, issue[0].length), title, href, issue[issue.length - 1], labels.join(' / ') ].join('\t'));
});
issueList.plainTexts.join('\n');
@pixelhandler
Copy link
Author

And idea from @rwjblue

I really want to be able to order issues by "least recently touched by team". Where the following rules determine when the "last touched by team member" flag is reset:

  • Team member comments, resets to Date.now()
  • For pull requests:
  • Updates to code reset to null
  • Comments by the PR submitter reset to null

Then we would roughly be assured to cycle through things. ( see - ember triage app, https://github.com/danmcclain/emberage )

@pixelhandler
Copy link
Author

pixelhandler commented Apr 22, 2016

@rwjblue try using this query on the Ember.js issues page

is:issue is:open commenter:acorncom commenter:chadhietala commenter:chancancode commenter:locks commenter:pixelhandler commenter:rwjblue commenter:Serabe commenter:toddjordan commenter:stefanpenner commenter:chancancode commenter:dgeb commenter:ebryn commenter:ef4 commenter:igorT commenter:krisselden commenter:machty commenter:mixonic commenter:mmun commenter:rwjblue commenter:stefanpenner commenter:tomdale commenter:trek commenter:wagenet commenter:wifelette commenter:wycats sort:updated-asc updated:<2016-04-01

@pixelhandler
Copy link
Author

Some common replies…

Feature

This seems like a feature/enhancement request. See CONTRIBUTING.md#requesting-a-feature which recommends creating an RFC Issue to request a feature/enhancement (no need for a PR with RFC, only an issue in the repo)

if you have an idea that would be nice to have, create an issue on the emberjs/rfcs repo.

LTS

Since the LTS version has the behavior that works and since v1.13 was supported for much longer than expected, in this case it would be best to use a workaround. It is very unlikely that v1.x will receive any patch releases (Especially since we now have a LTS release, currently 2.4.6)

I'll close this out for now. If you'd like to discuss further perhaps reach out in the http://embercommunity.slack.com #-help channel to chat regarding the specific version your app is using; and potential alternative solutions.

Closing

@x perhaps reach out in the community chatroom or even StackOverflow to see what solutions others have found.

If you can share a code example that reproduces the issue and a way others can view the sample code in action; then you might get more feedback.

I know there are many developers working on non-trivial apps. So I would expect there should be some ideas available in the slack #-help channel.

I'll close this out for now. If you'd like to discuss further perhaps reach out in the http://embercommunity.slack.com #-help channel to chat regarding the specific version your app is using; and potential alternative solutions.

https://ember-twiddle.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment