20:00:27 <david-lyle> #startmeeting Horizon 20:00:28 <openstack> Meeting started Wed Jan 28 20:00:27 2015 UTC and is due to finish in 60 minutes. The chair is david-lyle. Information about MeetBot at http://wiki.debian.org/MeetBot. 20:00:29 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:00:31 <openstack> The meeting name has been set to 'horizon' 20:00:37 <david-lyle> hello everyone 20:00:41 <woodm1979> Hello! 20:00:43 <clu_> hi 20:00:48 <gary-smith> hi 20:00:51 <lhcheng> o/ 20:01:41 <lblanchard> o/ 20:01:41 <esp> o/ 20:01:49 <jgravel> hello 20:02:32 <david-lyle> packed house 20:02:47 <bpokorny> Hi 20:02:50 <david-lyle> let's get started 20:03:11 <david-lyle> The agenda for today's meeting is available at https://wiki.openstack.org/wiki/Meetings/Horizon 20:03:26 <david-lyle> But first let's talk milestone status 20:03:31 <gugl> hi 20:03:43 <david-lyle> k-2 ends on Feb 5 20:03:57 <david-lyle> #link https://launchpad.net/horizon/+milestone/kilo-2 20:04:08 <david-lyle> 1 Started, 4 Good progress, 1 Beta Available, 13 Needs Code Review, 7 Implemented 20:04:14 <david-lyle> a lot need reviews 20:04:42 <david-lyle> I believe that a few need code review are blocked by dependencies 20:04:50 <david-lyle> on other projects 20:05:29 <david-lyle> I'll walk through and those blocked are going to get bumped to k-3 20:06:15 <gary-smith> You can move https://blueprints.launchpad.net/horizon/+spec/cinder-multi-attach-volume to k-3 20:06:15 <david-lyle> but we should prioritize those reviews 20:06:29 <gary-smith> (it is one of those blocked) 20:06:44 <david-lyle> done 20:07:09 <david-lyle> any questions about k-2 or milestones in general 20:07:53 <david-lyle> ask later if needed 20:07:57 <david-lyle> mattfarina: around? 20:08:03 <mattfarina> david-lyle I am 20:08:11 <david-lyle> great 20:08:15 <david-lyle> #topic Updating to Jasmine 2 20:08:40 <david-lyle> #link https://blueprints.launchpad.net/horizon/+spec/update-jasmine 20:08:53 <david-lyle> anything you want to add mattfarina on that one? 20:09:13 <mattfarina> david-lyle we'd like to land Jasmine2. I see you +1'd the review to requiremts since i post to the agenda. 20:09:24 <tqtran> can we get it into kilo-2? we still have some time 20:09:35 <mattfarina> I'd like to have it in for kilo-2 20:09:43 <david-lyle> I think essentially we're blocked by openstack/requirements patch not 20:09:45 <mattfarina> we need to get the people on https://review.openstack.org/#/admin/groups/131,members to weigh in. 20:09:48 <david-lyle> s/not/now/ 20:10:09 <mattfarina> the review to horizon is blocked by the review to requirements 20:10:26 <david-lyle> understood 20:10:49 <david-lyle> once requirements moves forward, we can work on merging the horizon side 20:10:53 <mattfarina> i'm going to reach out to some of the admins and see if we can move it along 20:11:04 <mattfarina> if anyone else wants to as well... that would be appreciated 20:11:36 <david-lyle> point out the gate tests are disabled until updated 20:11:51 <tqtran> i left a ping in irc this morning, but reaching out to individuals might be better 20:12:03 <david-lyle> thanks for raising the issue, tqtran brought it to my attention this morning 20:12:07 <mattfarina> i tried a general ping and got no movement 20:12:27 <david-lyle> these take time 20:12:44 <mattfarina> for now :) 20:12:56 <david-lyle> #topic JavaScript cleanup: reduce number of jQuery objects being created 20:13:34 <mattfarina> this one is me too. i wanted to talk about the javascript practice 20:13:35 <david-lyle> I think the linked patch merged 20:13:39 <david-lyle> sure 20:13:41 <david-lyle> have at it 20:13:41 <mattfarina> the first of many 20:14:15 <mattfarina> every time we do a $(document) or a $('#something') we create a new object and that takes memory and needs to be garbage collected 20:14:44 <mattfarina> it's usually a good idea if you're going to create the same object more than once to assign it to a variable and repeatedly call the variable 20:14:52 <mattfarina> that's what we'd do in Python or another language 20:15:31 <david-lyle> seems like a good recommendation 20:15:45 <mattfarina> should recommendations like this go into the JS guide? 20:15:49 <robcresswell> I'm a big fan of this idea, if there are more patches out im happy to spend time reviewing them 20:15:53 <david-lyle> mattfarina: yes 20:16:14 <mattfarina> robcresswell thanks. i just updated one file. if we tried to fix everything in one go it would never land 20:16:18 <mattfarina> i'll take you up on that 20:16:21 <mrunge> oh yes please 20:16:38 <mattfarina> ok, i can update the guide 20:16:48 <mattfarina> that's all i wanted to talk about here. thanks 20:17:00 <david-lyle> I have noticed recently that the js behavior in horizon is flaky 20:17:11 <mrunge> hell yes! 20:17:23 <tqtran> flaky? 20:17:25 <david-lyle> leaving the browser open for any period of time causes modal behavior to fail 20:17:25 <mattfarina> we're using more memory than we need to and i wouldn't be surprised if we have some memory leaks 20:17:28 <mrunge> very strange and quite unexpected behaviour 20:17:31 <david-lyle> tabs to stop working 20:17:33 <tqtran> ah.... 20:17:45 <mrunge> menus stop working 20:17:48 <david-lyle> generally becomes unusable 20:17:53 <mattfarina> we also have some problems with event handlers that can cause processing issues 20:17:54 <mrunge> accordion does not react 20:17:59 <mattfarina> js is single threaded after all 20:18:03 <david-lyle> this needs to be a critical priority 20:18:06 <mrunge> awesome 20:18:20 <mattfarina> great. 20:18:32 <david-lyle> I haven't filed a bug because I don't have concrete repeatability steps 20:18:43 <david-lyle> just general wait a while 20:18:47 <mrunge> david-lyle, do you have a bug number? 20:18:48 <mattfarina> this jquery issue here is just one of the things. if people find problems and report bugs i'm happy to help anyone figure it out or come up with a fix 20:18:51 <mrunge> or a link? 20:18:56 <tqtran> hehe, yes hard to find them. we have too many js with global reach 20:18:56 <mattfarina> i <3 js after all 20:19:07 <robcresswell> mattfarina: Could also take on some of the individual file rewrites... should have a bit of spare time. Let me know. 20:19:09 <david-lyle> mrunge: I don't have a bug yet 20:19:16 <mrunge> ok, thanks 20:19:26 <david-lyle> just got very frustrated recently 20:19:37 <mrunge> yes, I hear you! 20:19:41 <david-lyle> some profiling would be helpful 20:20:00 <mrunge> I have quite a few things to fix in launch instance workflow. 20:20:09 <mrunge> but it doesn't make sense to start 20:20:23 <mrunge> since there is this whole start instance rewrite 20:20:32 <david-lyle> mrunge: good point on that one 20:20:33 <mrunge> on what we're waiting 20:20:41 <mrunge> and waiting 20:21:03 <mrunge> is that targeted for kilo? 20:21:07 <david-lyle> but we have a bunch of other places for improvement 20:21:10 <tqtran> mrunge: yes sir 20:21:16 <mrunge> really? 20:21:23 <tqtran> mrunge: really =) 20:21:31 <mrunge> glad to hear tqtran 20:21:44 <mattfarina> maybe i can suggest a 2 headed approach. we share good practices and tools. then we use them to slowly work through the code as we fix existing code and add new features 20:21:52 <tqtran> i dont know if all of it will land, but thats the aim right now 20:21:59 <mattfarina> i think a lot of it is practices or slip ups many just don't know 20:22:26 <mrunge> until now, we don't have any new features in kilo at all 20:22:32 <mattfarina> like, there's a common cause of memory leaks in circular dependencies... https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript#Memory_leaks 20:22:32 <mrunge> at least, nothing to note 20:23:15 <mrunge> mattfarina, thanks for sharing the link, quite useful! 20:24:43 <mrunge> it seems like memory leaks happen in firefox as well... 20:24:56 <mrunge> not only in IE, as mentioned in the document 20:25:09 <mattfarina> they happen in all browsers 20:25:45 <mattfarina> this is just one example. they are common enough in FF extensions they have a guide on dealing with it there and FF has a tool to help find memory leaks 20:26:23 <asahlin> mattfarina: +1 to 2 headed approach comment.. get it documented, people then can reference, and we can open defects and point to best practices when issues are found. 20:26:30 <mattfarina> thanks 20:26:45 <mattfarina> this is already way more than i had planned on talking about. really glad there's interest 20:27:14 <david-lyle> mattfarina: we need to get out house in order as we add more and more js 20:27:32 <david-lyle> so it's extremely relevant, thanks for bringing it up 20:27:43 <david-lyle> #topic Open Discussion 20:27:43 <asahlin> out house or our house ;-) 20:27:55 <robcresswell> Yeah its all very valid points, just need to take it one step at a time 20:27:55 <mrunge> yes, the sooner we have guidelines, the better 20:27:59 <david-lyle> asahlin: depends on the day 20:28:03 <asahlin> lol 20:28:15 <david-lyle> yesterday, very much out house 20:28:19 <Piet> We are looking for Domains Admins to participate in a usability study! 20:28:40 <Piet> If you know someone please let me know! 20:29:08 <asahlin> question: has anyone started Neutron REST API for Angular front end to use? 20:29:24 <david-lyle> Piet: that is going to be a small pool, I fear 20:29:45 <asahlin> I didn't see any patches out there, but didn't want to start if someone already had a jump on it. 20:29:46 <Piet> Agreed, but we only need about eight people 20:29:50 <david-lyle> asahlin: not sure 20:29:52 <woodm1979> asahlin: I BELIEVE we have, but not entirely sure. ( 20:29:54 <mattfarina> asahlin i think Mike Hagedorn may have 20:29:56 <robcresswell> asahlin: bradjones was looking into it... 20:30:15 <david-lyle> let's get coordinated 20:30:22 <asahlin> ok, I will ping them or send an email to the group 20:30:45 <wchrisj> asahlin: Mike Hagedorn is doing that 20:31:01 <Piet> Please take a few moments to leave comments on the UX Design for the Instance Details panel. http://invis.io/NB1L22K4Q 20:31:48 <asahlin> wchrisj: mattfarina: great thanks, I will reach out to Mike 20:31:52 <david-lyle> so far all angular bps seem to be buried in one bp https://blueprints.launchpad.net/horizon/+spec/angularize-identity-tables 20:32:09 <david-lyle> other than launch instance 20:32:39 <david-lyle> if you are tackling other services, I expect bps, so that we can coordinate around those 20:33:01 <david-lyle> but I also caution getting to far ahead of ourselves 20:33:17 <david-lyle> be prepared to pivot if necessary 20:34:28 <david-lyle> other topics? 20:34:57 <mrunge> does it make sense to collect extension ideas 20:35:10 <mrunge> separate from blueprint? 20:35:24 <david-lyle> mrunge: for the angular work? 20:35:37 <mrunge> angular, anything 20:35:48 <mrunge> it's more general 20:36:06 <david-lyle> mrunge: I am unclear what you're asking 20:36:12 <mrunge> often, you have an idea, but it's not complete to get a blueprint accepted 20:36:32 <mrunge> something like a feature request from someone 20:36:53 <mrunge> like: I'm an admin and want to see images and networks of tenant a 20:36:56 <david-lyle> ah, I understand now 20:37:06 <david-lyle> good question 20:37:12 <tqtran> is that what our wishlist is for? 20:37:21 <mrunge> neither someone, nor I have a concrete idea how it should look like 20:37:23 <tqtran> only that no one really pays attention to it 20:37:32 <mrunge> for example 20:37:53 <mrunge> it would serve as an idea pool for contributors with spare cycles 20:37:57 <david-lyle> our bps are already over-used already, so I don't want to use that 20:38:11 <david-lyle> maybe an etherpad or wiki page 20:38:22 <mrunge> don't we try to make a bp more formal? 20:38:28 <david-lyle> mrunge: yes 20:38:39 <david-lyle> that's why I'd like to keep suggestion out of it 20:38:51 <mrunge> so mis-using bp for this purpose would just be wrong 20:38:55 <david-lyle> I'm going to clean out old bps that are out of date as it is 20:39:14 <david-lyle> to much cruft 20:39:19 <david-lyle> hard to manage 20:39:23 <mrunge> ah yes, I'll do the same. 20:39:49 <mrunge> we have currently 273 blueprints 20:40:01 <david-lyle> mrunge: I am fully aware :( 20:40:07 <mrunge> which is insane. 20:40:14 <mrunge> david-lyle, I'm not blaming you 20:40:18 <mattfarina> maybe a wishlist wiki page. if many details are needed they could go to an etherpad. the wishlist would be easy to find. using etherpads for long details would mean the wiki doesn't get cluttered (especially for search) 20:40:23 <mattfarina> just a thought 20:40:29 <mrunge> good suggestion 20:40:45 <david-lyle> works for me, mattfarina, make it so 20:40:53 <david-lyle> thanks for stepping up 20:40:59 <mattfarina> ha, thanks 20:41:12 <david-lyle> just linked off the horizon page 20:41:21 <mrunge> I could imagine, we need to clean that wishlist up from time to time 20:41:21 <david-lyle> https://wiki.openstack.org/wiki/Horizon 20:41:30 <david-lyle> mrunge: indeed 20:42:15 <david-lyle> two things moving forward I'd like people to think about 20:42:46 <david-lyle> 1. adopting a specs repo in horizon and have bps blocked to non-core additions 20:43:11 <david-lyle> formalize the review process, come into better alignment with the rest of openstack 20:43:20 <david-lyle> less noise 20:43:24 <david-lyle> ideas are great 20:43:37 <mrunge> good suggestions 20:43:41 <david-lyle> being randomly added to milestones is not as great 20:44:04 <david-lyle> but with 273 bps, that's the only way to make them visible currently 20:44:29 <david-lyle> 2. moving to a wider eco-system, formalize how horizon will handle extensions 20:44:56 <david-lyle> in a contrib folder, external to tree, how we point deployers at them 20:45:22 <david-lyle> there will be a push for horizon to support more and more things 20:45:30 <david-lyle> we need to be ready to handle it 20:45:59 <david-lyle> if we formalized before the flood gates open, we will have a clear message and path for those asking 20:46:13 <david-lyle> less painful in the long run 20:46:36 <mattfarina> david-lyle I appreciate #2 as it came up this week 20:46:41 <david-lyle> I'm quite reluctant to pull them in the tree 20:46:52 <mattfarina> people are already talking about it if you didn't already know 20:46:57 <david-lyle> I'm sure 20:47:10 <wchrisj> As someone working in that area right now, I couldn't agree more david-lyle: 20:47:15 <wchrisj> with #2 20:48:07 <mrunge> I wonder, why those extensions don't use the plugin stuff already there 20:48:23 <david-lyle> mrunge: they will 20:48:34 <mrunge> and if that doesn't work out, why plugins are not extended to work 20:48:49 <mattfarina> is it that lack of intention and documentation? 20:49:02 <david-lyle> but if they are part of OpenStack, it is a forced dichotomy to have some in tree and some out 20:49:17 <david-lyle> the TC is now saying OpenStack is OpenStack 20:49:25 <david-lyle> it's not integrated 20:49:34 <david-lyle> it's not incubated 20:49:38 <david-lyle> it's OpenStack 20:49:42 <mrunge> you can basically add anything through plugins 20:49:57 <mrunge> just have a python module somewhere and write a config file 20:50:19 <david-lyle> but by having cinder, nova, sahara, trove in tree, there is greater access to those services by default 20:50:31 <david-lyle> I'm not sure fairness is our job 20:51:05 <david-lyle> but at a bare minimum, it would be nice to have a list of compatible extensions and links to github repos or pypi packages 20:51:10 <david-lyle> somewher 20:51:11 <david-lyle> e 20:51:28 <david-lyle> and also clearly define what will go in tree 20:51:40 <sambetts> I assume Vendor specfic extensions will be out-of-tree 20:52:01 <david-lyle> I'm not willing to accept anything vendor specific 20:52:01 <mrunge> david-lyle, we could think about defining a horizon core and see the rest as add-on or plugins then? 20:52:24 <mrunge> how often did we had the request to have only swift and nothing else? 20:52:33 <david-lyle> but things like Piet started with UX style guide become more important 20:52:46 <david-lyle> since we're not reviewing the extensions directly 20:52:58 <lhcheng> for plugins, we should bump up priority on radomir's patch https://blueprints.launchpad.net/horizon/+spec/ini-based-configuration, and eventually use stevedore to load plugins. 20:53:16 <david-lyle> yes the current framework is flawed a bit 20:53:27 <mrunge> yes!, good suggestion lcheng 20:53:29 <david-lyle> in that the extension file is a python file 20:53:35 <mattfarina> it's pretty common to have a core set of extensions and then a long list of community extensions 20:53:39 <david-lyle> this makes it exceptionally hard to use 20:54:24 <david-lyle> again, my desire is to decide the plan and document it before everyone is banging on our door 20:54:40 <david-lyle> I want to be lazy and just point them to the appropriate wiki page 20:55:06 <mattfarina> +1 20:55:22 <david-lyle> I'm not hearing much disagreement on the general approach 20:55:24 <mrunge> yes! 20:55:28 <sambetts> pre-planning is a good thing, because as we're seeing with neutron vendor decomp it is harder to move things out once they are in 20:55:32 <mrunge> +2, approved 20:55:36 <lhcheng> sound goods to me 20:55:36 <david-lyle> I may just need to document 20:55:37 <mrunge> to both :P 20:56:14 <ericpeterson> so lets describe these decisions in a series of blue prints 20:56:16 * ericpeterson ducks 20:56:54 <david-lyle> or a specs specs repo 20:57:49 <david-lyle> answer is always just one more level of metadata 20:58:03 * david-lyle hangs head 20:58:09 <david-lyle> 2 minutes 21:00:23 <david-lyle> have a great week everyone. thanks for all the reviews 21:00:28 <david-lyle> #endmeeting