14:04:00 #startmeeting storyboard 14:04:01 Meeting started Thu Dec 12 14:04:00 2013 UTC and is due to finish in 60 minutes. The chair is ttx. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:04:02 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:04:05 The meeting name has been set to 'storyboard' 14:04:09 yay, a meeting bot 14:04:35 Since i didn't expect I would chair this, we don't have a meeting agenda 14:04:41 so it should be quick 14:04:51 cool, we have an own meeting channel :) 14:04:54 #topic gothicmindfood introductions 14:05:13 gothicmindfood: care to introduce yourself to our Russian friends ? 14:05:30 ha. Ok. Hi to everyone! 14:05:42 I'm Colette and I'm a new hire at HP on mordred's team. 14:06:14 he brought me on (and we've got a couple others joining in the next week or so) to work on Storyboard. 14:06:45 I'm not really a coder - I'm more of a process person, though I have a big interest in learning python and getting up to speed. 14:06:55 SergeyLukjanov, NikitaKonovalov: quick reverse intro ? 14:07:23 hey 14:07:25 sorry I'm late 14:07:27 ttx, sure 14:07:30 mordred o/ 14:07:33 mordred: howdy 14:07:36 hi 14:07:48 mordred: you don't have cody around, do you ? 14:08:02 nope. we may have gone drinking last night. he might be dead in a ditch in barcelona 14:08:15 I'm Sergey, PTL of Savanna, working in Mirantis and very interested in Storyboard 14:08:20 :) 14:08:31 Oh cool. Nice to meet you Sergey - were you in Hong Kong? 14:08:54 gothicmindfood, yep 14:09:06 I'm Nikita, I also work in Mirantis and contributed to Savanna project 14:09:06 I'm Monty, former PTL of Infra, I hire people to work on things - and I'm going to get storyboard stood up and working if it kills all of you :) 14:09:12 mostly to it's UI part 14:09:31 I was too! Came to a couple of the Savanna sessions. Loved what I saw. 14:09:40 ok, moving on 14:09:43 #topic Winter Storyboard sprint/meetup 14:09:49 gothicmindfood, glad to here that ;) 14:09:53 I have absolutely no news about that. 14:10:10 except that I proposed limited options 14:10:20 oh - you did? to dev list? 14:10:23 I may have missed that 14:10:30 one being to organize something around FOSDEM (Brussels, Feb 1-2) 14:10:38 mordred: private email to cody as requested 14:10:41 ah. ok 14:10:52 the other is to do something mid-February (week of 10 or 17) 14:11:09 ttx, I really like the meetup in Europe :) 14:11:10 My January filled up 14:11:16 I believe gothicmindfood is on tour in february 14:11:22 My February post February 3rd is no good 14:11:32 but if I got back to NYC on the 3rd, I could be okay 14:11:41 gothicmindfood: how about Feb 1/2 in brussels? perhaps meet the day before? 14:12:00 like, Jan 31 ish 14:12:22 yes, we could do a 2-day before the weekend, then you can leave on Sunday (2nd) 14:12:23 That would be good. I'd have to figure out how to get my cello to NYC without me, or just do a fly back to SFO to pick it up before going back to NYC. 14:12:44 the 29th/30th could be better just to give me cello-pick-up time. 14:12:53 also, beers++ and FOSDEM++ 14:12:58 and I go home on the 2nd early, go to NYC on the 3rd 14:13:14 beers++ and mussels++++ 14:13:33 later options are scarce, as I enter what's known as the reelase-summit spiral of doom 14:13:53 only to be out of it in... late May 14:14:02 ttx: can we get you some medication to help alleviate the symptoms of that? ;-) 14:14:18 hehe 14:14:21 we call that wine 14:14:27 it would probably interact with all the drugs I already have to take to duplicate myself in two places 14:14:39 I need to check on budgets at HP to see if we can all commit to being there 14:14:39 wine is part of it 14:14:47 mordred and I should go splitsies on a case of burgundy for you. 14:14:50 but I think functionally it seems doable 14:15:19 gothicmindfood: one interesting thing with Brussels is I travel by train, which makes bringing wine a much more realistic option 14:15:39 although wine in brussels is like having beer in spain. Wrong. 14:16:05 mordred: I expect cody has details on everyone's availability by now 14:16:10 ttx: I will trade you any weird american thing I can get on a plane for some decent Morgon. Always, fwiw. 14:16:11 mordred, I need to check budget too 14:16:58 ok, moving on then 14:17:15 #topic Early objectives 14:17:42 So, the trick at this point is to make progress that will still be useful once we make drastic changes 14:18:05 I wouldn't invest too much in UI polish (like those error messages you proposed, NikitaKonovalov) 14:18:26 because they might just get completely removed if/when we switch to SemanticUI 14:18:48 search is still very useful because it's so much missing from the prototype it's not even funny 14:18:57 ++ 14:19:01 search - thank you 14:19:13 the very simple improvements could be useful for using storyboard to track storyboard work 14:19:20 but I think the decoupling of the backend / RESTification is what we should be focusing on right now 14:19:20 that's a good point 14:19:38 ttx, agreed, that's what I'd like to see :) 14:19:38 CD is my number one goal - I want to get one up and running soon 14:19:40 but 14:19:52 I did this: https://github.com/emonty/stories 14:20:03 which is a split out of the DB into sqlalchemy/alembic 14:20:12 so it's set up for migrations, whcih means CD is possible 14:20:32 I think actually what I should do is take that and make it a patch to storyboard 14:20:42 mordred: could you explain how it works a bit more ? 14:20:53 it's just the DB being split ? 14:20:55 it's just the db models 14:20:57 yes 14:21:03 is it possible to use sqla in django? 14:21:12 mordred: does it need to stand alone ? 14:21:12 it is 14:21:24 * SergeyLukjanov not really aware about how django works 14:21:27 but do we really need to stick sqlalchemy? 14:21:33 it does not need to stand alone - I think it should just go back into our main tree 14:21:55 and be used as model library 14:22:27 Do we have a free-standing non-code version of the data-model floating around anywhere? 14:22:30 mordred: so that means we don't use django model anymore -- do we also lose the automagic admin/ stuff ? 14:22:33 I do not want to marry ourselves too much to django way of thinking, because we don't have good openstack integration that way 14:22:35 hoirizon is an outlier 14:22:46 or does django just falls back onto its 4 feets ? 14:22:52 I'd rather we have sqlalchemy and alembic and pecan/wsme like the other projects 14:23:19 ttx: we do lose admin that way - but I don't care, because I don't want to use that 14:23:21 we want to get projects into storyboard with manage-projects/projects.yaml anyway 14:23:23 so before we ahve a rest api for that 14:23:34 mordred: so.. if we build the UI on top of a REST client, we'll need two components anyway 14:23:42 still I have seen a kind of Django-sqlalchemy binding library which may be helpful before moving to wsme 14:23:44 just having an import thing that can read projects.yaml and insert it into the db is all we need 14:24:02 ttx: sure - but we can do that piece meal 14:24:18 if we have the model in the repo using sqlalchemy, but the rest of the app is consuming it via python classes 14:24:20 we can ADD a pecan rest api 14:24:26 should we make that split (Db+REST server / REST client / UI) earlier rather than later ? 14:24:27 and then start replacing the python db calls with rest calls 14:24:37 I think we can do it gradually. 14:24:43 I don't tihnk it's essential for us to make a big switch 14:24:44 should it live all in same repo ? 14:24:53 s/should/can 14:24:59 for now, yes 14:25:01 becaus SANITY 14:25:17 we'll go crazy if we try to do a 3 repo split at this point 14:25:41 NikitaKonovalov: neat! that might be a good middle step! 14:25:50 so we would start the backend/pecan server on one side and start the django app on the other, but they could just live in same repo. OK 14:26:15 yup. and the django app might not even talk to the wsme server at first :) 14:26:17 there is no client now, so it may start from scratch in a separate repo 14:26:35 that is a great point 14:26:47 so one thing we could start working on is a API 14:27:11 because so far this has been mostly model-driven 14:27:16 and then UI-driven 14:27:30 whereas the important piece in the final architecture is actually the API 14:27:41 yah. agree 14:27:44 +1 14:27:48 I have an 8 hour plane flight tomorrow - I may take a first stab at one 14:27:50 and see what you guys thinmk 14:27:52 ":) 14:28:17 and that's probably where process people like gothicmindfood can bring value without being too caught in technical implementation details 14:28:41 gothicmindfood: fwiw see work areas @ https://wiki.openstack.org/wiki/StoryBoard 14:28:59 Api would belong in "main concepts" 14:29:23 mordred's pilot work would rather be "Technical Architecture" 14:29:30 thanks for that, ttx. 14:30:29 mordred: would be good to see what API we need for the current state 14:30:45 mordred: so yes, if you like to work in planes. Or are in a business seat 14:30:48 ttx: I was thnking that would make for a great v1 api - purely functional, no 'good' design 14:31:05 I'll think about it too in my spare time 14:31:06 ttx: then we can add a v2 api that is well designed, and then start rewriting the UI to consume it 14:31:33 you have spare time? 14:31:45 the danger, I think, is to start so high-level we can never make fast progress in evolving the current version 14:32:17 this is, in essence, a Launchpad replacement. Not something that will revolutionize task/bug tracking 14:32:29 I mean, it may revolutionize, but that's for version 3.0 14:32:49 We need this thing now 14:33:58 and even if we do it "simple" it will be so much better than what we use now it's not even funny 14:34:36 that doesn't mean we can't be smart while doing it. just means the smartness shouldn't delay us too much. 14:34:42 out of curiosity, ttx: what's your timetable on having something useful to use with OS looking like? 14:35:12 I think we need to have openstack-ci and a few other guinea pigs up and running by the icehouse release 14:35:41 then a significant subset of integrated/incubated projects by J release 14:36:08 I'd lie to be more aggressive 14:36:24 I'd like to do a forklift migratoin of everyone who isn't migrated already as the very first thing afer the J summit 14:36:38 by "need" I mean so that everyone retains its sanity. I expect LP usability to not go any better now that HP recruited one of the 2 last LP devs 14:36:58 the last one is probably already looking for a job 14:37:16 I think that, other than infra and guinea pig projects, if we have parallel trackers per project, people will go insane 14:37:47 mordred: i want us to have a good story to sell to ALL projects by I so that we can get them moved over the J cycle 14:37:56 yes 14:38:18 nobody tells me "I like Launchpad and would like to keep it" 14:38:39 ttx: but some people do say it's the best bug tracker that they've used (despite its faults) 14:38:43 so if we do something not too bad, they will gladly switch 14:38:49 no one likes their bug trackers 14:38:54 ever. 14:38:57 gothicmindfood: I've met that guy ... thierry I think is his name 14:39:01 HA 14:39:09 gothicmindfood: it's the best, but mostly due to its model, I think. Not its UI 14:39:29 the part of the model that made people like it, we already copied 14:39:36 :) 14:39:42 ++ 14:39:47 ttx: btw - good work on the model 14:39:50 and extended where they failed to apply it (features) 14:40:02 I did not feel the need to make large changes when I was doing the sqla work 14:40:07 and then completed it (project groups just make sense) 14:40:12 and questions I had were answered by the model itself 14:40:28 mordred: the POC was just a Db model originally 14:40:39 then without UI people would not have loved it 14:40:49 the one thing it was missing was user/groups 14:40:54 ttx: understood, II just still think least-hated means it's valued. ;-) 14:41:16 ttx: dyou have a non-code data model map somewhere? 14:41:20 but I believe that was just because you were using django auth stuff 14:41:23 gothicmindfood: certainly. people will realize it wasn't that bad once presented with an laternative 14:41:32 gothicmindfood: heh. 14:41:32 ttx: (2nd question: or can I make one??) ;-) 14:41:50 Our work is to make it "not suck" enough 14:41:50 gothicmindfood: make one all you want! I'll even look at it and tell you waht I think 14:41:54 ttx: ++ 14:42:22 gothicmindfood: I think NikitaKonovalov posted one 14:42:24 I made a wiki page a bit earlier https://wiki.openstack.org/wiki/StoryBoard/ObjectModel about the object 14:42:43 Also there was one (now outdated) at https://wiki.openstack.org/wiki/Task_Tracker_Requirements 14:43:43 oh - neat. I hadn't seen that 14:43:47 gothicmindfood: that said we already have UX questions. Like "do we need to be able to mark tasks invalid/wontfix/opinion" 14:43:58 I should go and make sure that the new db code still maps to that 14:44:02 vs. just delete the invalid tasks 14:44:19 gothicmindfood: or Should priority be set for the whole story or per-task ? 14:44:38 those are not critical, but still affect the model 14:44:48 * mordred votes for task at the data model layer 14:45:19 but - it's possible that we have a more somple ui that only shows it on the story for now, and that code sets the priority on every task on the story 14:45:25 sometimes they are simplicity vs. customizability decisions, and I don't care that much about them 14:45:30 yes 14:45:42 I think also - invalid vs. delete could also be a UI thing 14:45:53 we could have an invalid status in the db 14:46:05 and have the UI 'delete' operation set that status and then never show invalid things 14:46:32 that way we have complete data in the db for historical reasons should we want to analyze it - but don't have to do complex user workflows 14:46:39 basically, there are a few things i'm very attached to (like obviously the task/story layer), but a lot of others I'm very open about (UI framework, RESt decoupling, priority per task or per-story, etc.) 14:46:41 ttx: any reason we can't have story priorities *and* task priorities as different types of priorities? 14:47:22 mordred: maybe admin module can see invalid, but not basic user? 14:47:22 gothicmindfood: no, I think mordred is right. Store prio at task table, and by default assign the first task prio to every task. Then allow people to change them 14:47:36 gothicmindfood: maybe so 14:47:50 probably the right tradeoff between usability and finesse 14:48:01 also - I think there wants to be a concept at some point of user priorities 14:48:15 like, there is the global priority of a task for the project 14:48:17 mordred: that's an interesting concept to explore yes 14:48:19 but on my personal todo list 14:48:26 ttx: certainly more in line with how a SCRUM team views stories - each story has a priority in the list that's unique and ordered. 14:48:37 you know - pbr bugs are WAY more important for me to look at than jim 14:49:11 mordred: Ithink there are two difefrent concepts there. Importance (impact) and Priority (for me) 14:49:23 ttx: ++ 14:49:25 ttx: yah. 14:49:25 exactly 14:49:32 also - there is an interesting thought from gothicmindfood there 14:49:34 but then bugtrackers who have both are generally confusing 14:49:35 mordred: not that we don't love your priorities, but they are, in fact, yours 14:49:44 ;-) 14:50:03 which is unique ordered priorities - rather than arbitrary categories 14:50:06 may be just add a "favorites" for each user 14:50:11 mordred: so haveing story/task importance on one side and PERSONAL priority on the other would work 14:50:12 NikitaKonovalov: ++ 14:50:23 mordred: I don't see why we shouldn't be able to have both. 14:50:26 * SergeyLukjanov likes favorites too 14:50:44 Oh. and that personal priority could also be used in two dimensions. Kanban style 14:50:48 ttx: right - I mean, a task-priority-user mapping table shoudl allow any user to set private priorities on tasks for themselves 14:51:03 user or groups. 14:51:05 ttx: can you explain that last thought? 14:51:07 ah 14:51:13 this is getting better by the minute 14:51:15 mordred: I'm thinking about an ordered list vs labeled priorities and not thinking they're mutually exclusive. 14:51:23 yup 14:51:27 I'm grokking now 14:51:45 a user can have a prior list - a group can have a prior list - and the task can have an importance 14:52:08 also, projects probably have their story priorities set by their tech lead, right? 14:52:12 mordred: trello-style kanbans have things in different columns, but you can still order them. So that lets you express complex priorities 14:52:20 (just checking) 14:53:01 gothicmindfood: that would be a group priority yes 14:53:07 gothicmindfood: yeah. I expect jeblair to say which things are the most important for infra to care about 14:53:28 you could combine priority AND subscription to build a "things I care about" view 14:53:43 anyway, that doesn't affect the base model 14:53:53 that's interestig tricks we can play on top of it 14:54:06 to make the result more suable in dev work planning 14:54:09 usable* 14:54:20 ttx: it's also a little bit about modeling users, but it may impact workflow decisions *with* the model 14:54:23 and not just a relmgt tracking tool 14:54:54 so - admin, tech lead, heavy user, light user 14:54:58 are things I'm thinking about 14:54:59 #topic open discussion 14:55:03 5 minutes left 14:55:13 anything else, or should we continue to brainstorm out loud ? 14:55:28 ttx: so - stories are global and not owned by a project, yeah? and tasks have projects 14:55:37 yes 14:55:49 who owns importance on a story if it doesn't have a project associated 14:55:49 or stories can be owned by more than one project? 14:56:03 I feel like a story should have at least one project, right? 14:56:05 like, who reviews/accepts? 14:56:07 no orphan stories? 14:56:29 mordred: we need a corner case for stories with no tasks 14:56:46 I mean, there are qualities that teh story owns 14:56:46 either automatically craete a "orphan" task, or some other smart workflow 14:56:47 can we say that the story belongs to project if all of it's task are in the same project? 14:56:49 like the description 14:57:10 I want to know which users get to change those - or do we just go with a wiki-like "anyone can"? 14:57:14 but what if the story is in development - like a feature on a waitlist? 14:57:24 I'm fine with wiki-like 'anyone can' btw 14:57:30 mordred: cody said he has an idea araound that 14:57:35 awesome 14:57:40 (how to treat stories with no tasks) 14:57:56 question is still valid for stories with tasks 14:58:02 I suggested a hack that would make them fall into a "no-project-associated" view for further triaging 14:58:06 what about a story that has a task for nova and a task for cinder 14:58:17 who owns the top-level story data 14:58:25 I'm just going to assert 'nobody' 14:58:25 both should, right? 14:58:35 with the ability to see that others know it as well? 14:58:43 mordred: I'd say it's undefined prio until a task is added 14:58:52 what about the story description 14:58:56 undefined meaning "to triage" 14:59:04 mordred: free-for-all 14:59:08 great 14:59:11 I love it 14:59:19 whoever gets it first ;-) 14:59:29 I don't think restricting bugtracker access has done anything good anywhere 14:59:50 can we have project teams be able to 'poke' each other to do stuff? ;-) (half-joking) 14:59:51 we just need to tighten milestone planning stuff, targeting etc 15:00:14 but who can change status / edit desc / titles ? Probably not 15:00:21 (as long as they are authenticated) 15:00:46 ok time is up 15:00:57 famous last words ? 15:01:21 gothicmindfood: that would be "add a task for another project" 15:01:33 gothicmindfood: (we already do that a lot in LP) 15:02:17 gothicmindfood: so yes, it's something we need to preserve 15:02:31 #endmeeting