15:02:38 #startmeeting storyboard 15:02:40 Meeting started Mon Jun 30 15:02:38 2014 UTC and is due to finish in 60 minutes. The chair is krotscheck. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:02:41 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:02:43 The meeting name has been set to 'storyboard' 15:02:43 o/ 15:02:49 o/ 15:02:51 Good morning, everyone! 15:03:01 * krotscheck failed at updating the agenda in time. 15:03:44 So in the interests of keeping things up to date, I’m going to edit it during the meeting. 15:03:51 #topic Specifications 15:04:26 ttx, you’ve got another comment on tags, anything interesting? 15:05:15 I did a new version of it, just got a review asking for adependency to be added 15:05:48 If that's the only feedback i'll run a new version with that rolled in 15:06:02 krotscheck: made progress on your alternate proposal ? 15:06:26 ttx: I think that’s the only thing. I had some time to consider the alternate proposal last week, and I ran a quick performance test, and it’s pretty much the worst idea in the world. 15:06:41 So I’m going to pass on my alternate proposal. 15:06:54 it's technically attractive, but yeah, i can see how it can quickly get out of control 15:07:11 Yeah, a single table for all indexes is a bit harsh. 15:07:28 OK, then I'll push a new patchset to address Nikit'as concern 15:07:33 Alrightey. 15:08:01 NikitaKo_: Did you see my updates to the use cases in search? 15:08:15 I've seen that 15:08:37 The spec is more clear about browse vs search now 15:08:39 and that's great 15:08:58 Yeah. Which brings us back to the question of ‘is search global or resource-specific’? 15:09:38 Because ultimately, that UI I put together I’d like to eventually pull aside into a ‘Query builder” with which people can design their own dashboards. 15:09:50 And leave search to be true search, more freeform. 15:10:13 And that can either be global or resource specific. 15:10:44 I think it's more natural when one endpoint returns one type of resource 15:11:01 so I'd prefer to keep them separately 15:11:17 NikitaKo_: I agree. ttx? 15:11:21 The UI however should query all of them by default 15:11:53 krotscheck: +1 15:12:01 Alright, that settles it. 15:12:05 I think that UI will shine in advanced searchg 15:12:20 one more question here is what are those resources? 15:12:25 To be honest, writing up the use cases for search really let me focus in on what the UI should be doing. 15:12:28 Now we have stories tasks and users 15:12:48 NikitaKo_: And projects? 15:12:54 yep and projects 15:13:28 do we need search for events or comments? 15:13:31 Right. So that’s an interesting question. Let’s say we search for something which is semantically a subresource: Example, comments on a story. Should we be searching stories? Or should we be searching on comments? 15:14:45 Actually, better question: What should the API do vs. what should the client do? 15:14:45 o/ 15:15:34 krotscheck: I'd say if you search stories, you'd query subresources 15:15:37 I feel that the API contract should be consistent across all primary resources. It’s subresources I’m not certain of. 15:15:47 krotscheck: hrm. excellent question - my old zope background would say "comments are owned by stories, so you should search stories" 15:15:50 but if you eoecifically search comments, you should not search stories as well ? 15:15:55 specifically* 15:16:02 krotscheck: but my non-zope present says "that means I have to know too much about the data model to use the API" 15:16:09 * ttx needs a new keyboard 15:16:47 * jeblair boxes up a model-m for ttx 15:17:19 …oh man, those things are indestructible. 15:17:45 Ok, so any disagreement with all primary resources having the same API contract (barring differences in filter fields)? 15:18:37 jeblair: i could certainly use one :) 15:18:58 krotscheck: no 15:19:02 I feel that the use case here would be: “I am searching for a thing, and that thing may be in a comment somewhere”. From a UI perspective I’m going to take the user straight to the story on which that comment is, preferably with an autoscroll to that same comment. 15:19:20 krotscheck: +1 15:19:25 krotscheck: +! 15:19:26 ++ 15:20:27 Righto. 15:21:01 So given that from a UI perspective, I don’t know what story I’m searching on when I issue the search, I need either one of two things: 15:21:16 1- comments as a primary resource that I can search on, and extract the story ID from the comment 15:21:34 2- Story search index includes comments. 15:21:37 But even then.... 15:21:51 How important is it to indicate that a search hit was on a comment rather than on a story? 15:22:07 Consider the UI: “Hey we found our search on a comment” 15:23:13 Also there’s the whole “What’s easy to do right now”, because comments might end up on more than one resource type. 15:23:24 krotscheck: I think it's hinier if you autoscroll, but it's also OK if you don't 15:23:29 My vote is for 1 here 15:23:30 shinier 15:24:25 I think ultimately 1 sounds richer - because as you said, there may be more things that have comments 15:24:33 the comments endpoint is pretty similar to any other, and since there is going to be a SqlAlchemy implementation it should be pretty easy 15:25:19 I have no disagreements with 1. 15:25:37 Yeah, actually, the more I think about it the more I prefer it. 15:26:12 So, it sounds like search is a feature of all primary resources, and ‘subresource’ implementations end up more as convenience filters? 15:26:21 (which makes everything a primary resource) 15:27:04 krotscheck: i think the presentation of the results can help with that 15:27:29 krotscheck: before displaying the story and autoscrolling to the comment 15:27:46 krotscheck: you're probably going to display a list of results, and in that, i'm bettinng you can make it clear the hit was on a story or comment or ... 15:28:30 krotscheck: (i'm slightly laggy and responding to several minutes old text) 15:28:46 I think everyone should go look at the new search/browse UI :) 15:28:58 This one: https://review.openstack.org/#/c/99975/ 15:29:38 krotscheck: ok, added to todo 15:29:43 krotscheck: I've already did, and it looks great 15:30:04 NikitaKo_: Yeah, and after the discussion this morning I’m way happier with having comments. 15:30:33 (Fair warning for everyone, I’ve since built on that UI to add things like auto-tab-focus) 15:31:24 jeblair: No worries. Honestly, we’ll test the autoscroll and see how people respond before approving that. 15:31:41 jeblair: Autoscroll to me is one of those ‘It could be awesomely bad if built incorrectly’ features. 15:31:59 jeblair: The new search UI actually clearly separates the resources on which you got a hit. 15:32:21 Anyway: Any more comments on search? I think we know where we’re going at the moment. 15:33:04 NikitaKo_: Do you still want me to add comments as a blank resource, given that the UI won’t ever show that section if the results are hardcoded to []? 15:33:18 krotscheck: I guess no 15:33:20 that's a very big change 15:33:33 jeblair: Believe me, I tried to break it up. 15:34:13 the browse.js means it does browsing through resources, we will need something like search.js to handle them 15:34:48 and actually to query search endpoints when they are ready 15:35:03 The WIP change is here btw https://review.openstack.org/#/c/101476/ 15:37:10 Ok.... 15:37:20 Oh good, he’s back 15:37:43 something strange is going on with my irc client 15:38:01 It’s probably MI-6 15:38:26 Any more comments on specifications? 15:38:36 Else we can move on to ongoing work. 15:38:41 There is a new one 15:39:00 https://review.openstack.org/#/c/103106/ 15:39:07 * krotscheck makes a note to look at that. 15:39:31 This is for teams API 15:39:53 The main idea there is that user teams could be synced from Gerrit 15:40:23 Hrm... 15:40:36 Does this include some of the original permissions spec? 15:41:50 krotscheck: are you referring to the etherpad with permissions? 15:41:55 Yeah 15:42:28 It does not right now, but it's a good idea to add that stuuff 15:43:12 we used to sync launchpad and gerrit teams, and then we stopped 15:43:23 jeblair: why? 15:43:28 it was extremely difficult to do correctly 15:43:57 and as it turns out we needed different teams in the different tools 15:45:04 the closest thing to an overlap where the tools might use the same teams are using gerrit core reviewers when dealing with security bugs 15:45:23 ttx: what's the current thinking on that? ^ 15:45:49 (but in generaly, bug triagers are not necessarily core reviewers, and vice-versa) 15:46:01 is there any other source to get core members except Gerrit group? 15:46:15 jeblair: the only thing we use launchpad groups for is now for subscription to private bugs and permissions granting 15:46:19 and drivers (people who can set milestone targets on bugs or blueprints [stories]) don't have much to do in gerrit 15:46:36 * krotscheck makes a note to transfer permissions specification to infra-specs 15:46:37 and those are largely disjoint from gerrit groups 15:46:53 so the pain of syncing was no longer worth the benefit 15:47:06 err... the other way around 15:47:25 my inclination would be that we should make sure that we have a good api so that people (maybe us in the future, even) can sync mebership automatically with external tools... 15:47:53 but not to depend on them directly, and not expect us to do any automated syncing in the near future 15:48:00 then we need to decide which kind of groups StoryBoard should have 15:48:10 more Gerrit-like, or Launchpad-like 15:48:26 So, what is a group? 15:49:18 A group of users with a set of permissions 15:49:25 krotscheck: I'd say, an entity permissions can be granted to 15:49:39 AND a set of people you'd like to add to a private bug ACL 15:49:50 but that's not the immediate use case 15:50:05 possibly assign a task to a group? 15:50:05 and that can be considered a "permission" too 15:50:31 NikitaKo_: I'm not sure we want to encourage that 15:50:41 NikitaKo_: but yes, that was possible in LP 15:50:42 Sounds like we need to do some requirements gathering on this. Can I ask everyone to write up their concept of what a “team” and/or “group” is and send it to NikitaKo_ ? 15:50:53 I can take that 15:50:56 Alright 15:51:00 Send it to ttx then :) 15:51:01 unless you need it for tomorrow 15:51:12 I dunno, NikitaKo_: When do you need it by? 15:51:22 TC handling bogged me down last week 15:51:58 By the moment we start protected tags or something like that 15:52:07 NikitaKo_: ok 15:52:28 should that be a specs, or more a wiki page ? 15:53:00 ttx: Eeehhh,… I’m leaning more wiki right now? Spec is more detailed and implementation specific. 15:53:09 krotscheck: ++ 15:53:23 I want the eventual output to be sortof like the use case section I added to NikitaKo_ ’s search spec. 15:53:34 let's call it a brainstorming wikipage 15:53:39 Awesome. 15:54:33 Any other specs thoughts? 15:55:06 #topic Ongoing work! 15:55:10 Everyone gets a minute! 15:55:14 Reverse alphabetical order! 15:55:27 hmm, that may mean me 15:55:27 Yolanda got her momentjs things merged, awesome! 15:55:38 ttx is next! 15:56:10 * ttx managed to do some reviews, and pushed a new version of the Tag spec, but that's about it 15:56:17 blame Defcore 15:56:32 next 15:56:53 I've started that Teams spec 15:57:16 And there is a change setting up oslo.messaging for notifications 15:57:17 https://review.openstack.org/#/c/102842/ 15:57:26 Awesome. 15:57:32 It is based on TimeLine events we already have 15:57:50 Work on my local rabbit pretty nicely 15:57:58 Noce. 15:57:59 Nice 15:58:00 Nice nice 15:58:36 So that's all from me 15:58:47 I wrote out use cases for search, which I then promptly incorporated into my UI work. Did an ad-hoc UX test with a random person I met at a coffeeshop which also helped me refine the UI on the search page. 15:59:09 Also a bit of work on the storyboard puppet module after a bunch of good comments from reviewers. 15:59:17 * krotscheck is trying to get rabbit onto storyboard.openstack.org 15:59:45 MaxV disconnected right when we were about to get to him. 16:00:06 Aishwarya is stuck in HP background checks, but I’m meeting up with her in an hour. 16:00:27 And that’s it! 16:00:30 yay 16:00:30 #endmeeting