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