openscholar / integrated_support

2 stars 0 forks source link

Use Trello #96

Open sagotsky opened 10 years ago

sagotsky commented 10 years ago

Integrated support still isn't quite up to snuff yet. Let's throw more APIs at it. Instead of webhooks, labels, and voodoo...

Use Trello to manage the roadmap.

We'll have one intake board with bugs and ideas imported from GetSatisfaction and Engineering from Github:

screenshot

Nothing on this board is set in stone yet. It's just a collection of the ideas we've received.

We will also have a roadmap board with a backlog list (aka the In the Future milestone) and a list for each planned milestone:

Backlog Sept 16 Oct 30 Dec 14
etc etc etc etc

This board does indicate what's planned and will be used to generate the roadmap page. The /roadmap page will just be a rendering of what's on these lists. /backlog will be similar, but for the backlog list. The idea is that the roadmap should display items from exactly one easily managed source, instead of patching it together from a variety of sources and allowing a number of events and labels to affect it.

Use Trello events for notifications

All event notifications should trickle down from trello into our other services.

TODO 09/11/13

TODO 09/12/13

TODO 09/18/13

TODO 09/19/13

TODO 09/20/13

Backlog

When there's time...

sagotsky commented 10 years ago

It takes a full minute for the getsatisfaction API to get all the tickets. GH is only somewhat better. That's fine for a one time import, but if we're going to be doing this on a regular basis (hi, cron!) it seems suboptimal.

Maybe there's a way to get IDs in a certain range? Or at the very least a date range. Then I can store the id of the newest imported ticket.

GS and GH give me active_since and since. These let me get issues with activity after a certain time.

Only problem is that activity is any update, not just creation. This is a start, since I can query for active after time, and then filter those based on what was also created after that time, but it's not ideal.

Both will let me get items sorted by created date, descending, so I can manually get the most recent that way. Just do one page at a time, filter the created date, and if I haven't filtered out anything yet, get the next page. This is probably the most efficient in terms of api calls, but not in terms of LOC.

sagotsky commented 10 years ago

Working on webhook reactions. When a card moves across lists, I get a before and after on the card, meaning I can see the lists it's moving between. That's not the case with boards. I can see the source and dest board, but I have no idea what list the card is coming from. This is significant because I was hoping to attach a label at this point. Looks like I have to label each card when it's created.

sagotsky commented 10 years ago

Label note. Labels colors are bound to cards. Label titles are bound to boards. When I move an orange card, it keeps orange, but the value of orange may change. Maybe there's a better way to figure out the type of a card.

sagotsky commented 10 years ago

I'm not convinced the labels are actually broken. Checked out the webhooks and they're all pointing to the wrong URL. osops isn't getting trello webhooks, so of course labels aren't updating. I had some dev code using my own IP earlier. Maybe that wasn't removed when I imported the cards. Going to push what I've got now and rerun.

sagotsky commented 10 years ago

Webhook URLs look correct now. But my webhooks still aren't working. Hmm...

$ curl -I http://osops.openscholar.harvard.edu/trello_callback/getsatisfaction/5630126
HTTP/1.1 503 Service Unavailable
Server: Varnish

@rbran100 why is varnish 503ing?

sagotsky commented 10 years ago

Webhooks make it past varnish now. Labels are still coming up blank though. Github items aren't getting labeled. GetSatisfaction ones are. I bet it's the tr:eng label I required for GH issues.

I made two changes. Not sure which fixed the hooks.

  1. Added no cache headers. I never want varnish caching this page.
  2. Returned some text. I wonder if it thought the page was in error since nothing returned.
sagotsky commented 10 years ago

Here's a preview of the three column backlog.

screenshot

@ferdi, I included [done] as a placeholder for a status icon that could go in here. Backlog items won't have a status of course, but we could use three col instead of the main table for items that do have a status. Actually seeing the items on this has changed my mind and I think we could make it work.

sagotsky commented 10 years ago

New-new design:

  1. Tabs: Upcoming, Archive, (Backlog?)
  2. Dropdown: Sept, Oct, Dec, etc. (ajax load?)
  3. Permalink to this milestone.
  4. Three column display of features / bugs / engineering.

No legend. Icons are hoverable.

DESIGN RAISES NEW AND TROUBLING QUESTIONS

  1. If backlog isn't a tab, where is it?
  2. Where do alerts go? A fourth column next to the three main ones seems dumb. Any objection to top of the page?
  3. Columns are derived from labels. What do I do with cards that aren't bugs, features, or engineering? What about cards that have multiple?
sagotsky commented 10 years ago

Didn't notice before, but just getting status labels isn't enough. We need a status for closed issues as well.

But retrieving a list of ~3400 closed issues at 25 issues per request is slow. Going to divide it up over milestones, since we're only showing one milestone per page. This does mean I'm doing a second ajax call, but I think it's worth it here.

sagotsky commented 10 years ago

screenshot

Here's a preview. I wanted to represent the status without more text labels since they're wide, but I also didn't want to make or find icons. Trying out css gradients for a sublte backgroudn color.

Ferdi commented 10 years ago

Thinking about the dropdown ... We need a url for each release that we can send around. Would that work ?

sagotsky commented 10 years ago

I have an actual url for each of them. I was thinking the dropdown could redirect to that or if it loads via ajax, it could have a permalink at the top that also loads when you change milestone.

sagotsky commented 10 years ago

Found a small road block. I'm linking to archives. We haven't imported these into trello. No biggie technically, but we should add those.

sagotsky commented 10 years ago

State of the roadmap:

screenshot

sagotsky commented 10 years ago

Added hotfix column.

screenshot

sagotsky commented 10 years ago

Note: run update.php to ensure that the status labels var is set. Otherwise filters go missing.

sagotsky commented 10 years ago

@Ferdi

I tried shrinking the roadmap legend filters as you suggested. I still think they take up too much space when vertically aligned. Also tried two columns, but I don't love that approach either. Thoughts?

screenshot