20:01:37 #startmeeting horizondrivers 20:01:38 Meeting started Wed May 18 20:01:37 2016 UTC and is due to finish in 60 minutes. The chair is robcresswell. Information about MeetBot at http://wiki.debian.org/MeetBot. 20:01:39 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 20:01:41 The meeting name has been set to 'horizondrivers' 20:01:44 o/ 20:01:48 o/ 20:01:51 o/ 20:01:51 o/ 20:01:55 o/ 20:02:26 Here's the agenda for today 20:02:32 #link https://wiki.openstack.org/wiki/Meetings/HorizonDrivers 20:02:40 Couple things first 20:02:44 #topic Notices 20:02:55 #link https://wiki.openstack.org/wiki/Sprints/HorizonNewtonSprint 20:03:28 Midcycle details are there, and also in the room topic/ mailer. Add attendance, topics to etherpad, etc 20:03:49 Just shy of 2 months off, so I hope thats enough time for travel approval etc. 20:04:03 i'll add my name, but i don't have travel approval yet. 20:04:17 me too 20:04:26 No immediate rush, its just so I can sort out wifi etc. 20:04:42 new to pre provision all the wifi ports needed ;) 20:05:01 new/need 20:05:07 Yup 20:05:11 #link https://wiki.openstack.org/wiki/Horizon/WeeklyBugReport 20:05:46 I've updated the bugs. We've cleared out a good number of bugs in N-1 so far, but it'd be great to move on some of the larger bps. We've implemented 3 or 4 so far IIRC. 20:05:55 So please get some reviews on those features. 20:06:04 https://review.openstack.org/#/q/topic:bp/admin-neutron-l3-agents will likely be complete for N release I expect 20:06:42 A well filled out bp as well I see :p 20:07:02 Lets move on to the agenda items 20:07:29 #topic UI Text Guidelines 20:07:46 #link http://docs.openstack.org/contributor-guide/ui-text-guidelines.html 20:08:10 * tsufiev proposes to make a new voting job ;) 20:08:25 Was this your item tsufiev ? 20:08:36 robcresswell, no, it wasn't me 20:08:45 just kidding, of course, about that job 20:09:04 * ducttape_ was worried 20:09:10 (would require some AI to actually check guidelines conformance) 20:09:17 Well, thats a mystery. It may be worth a read through, but it doesn't seem like anyone wants to own that :) 20:09:23 Lets move on 20:09:35 #topic Glance V2 20:09:36 love guidelines we don't contribute to 20:09:45 that was mine 20:09:49 david-lyle: agreed 20:09:52 tsufiev: You're up :) 20:10:09 I was wondering is Glance v2 support is a thing someone is thinking about? 20:10:28 Yep, I'm working on that for Newton. 20:10:36 https://blueprints.launchpad.net/horizon/+spec/horizon-glance-v2 ? 20:10:45 bpokorny, oh, that's good! do you need some help on that? 20:11:14 Yeah, help would be great on it. I think there are complexities with it that still need to be worked out. 20:11:39 bpokorny, okay, count me in 20:11:45 I know there was a patch out for it that a few people had worked on already, so was planning to start with and improve that one. 20:11:46 bpokorny: you can add me to reviews for this 20:12:00 tsufiev: TravT: Great! 20:12:13 I'll keep you guys posted as I make progress on it. 20:12:37 could use midcycle to push reviews for it... 20:12:42 Well, that went well :p 20:12:57 Ready to move on? There's a few bps in the agenda. 20:13:38 #topic Blueprint Review 20:13:59 #link https://blueprints.launchpad.net/horizon/+spec/static-file-autodiscovery 20:14:02 Thai was interested in resurrecting this idea … theres already a review for it up, jones had some comments on it 20:15:10 pardon my ignorance on the background for this one 20:15:11 but 20:15:18 how does this relate to plugins? 20:15:25 richard had some patches on a related subject right? I wasnt sure if they were over the same thing or different approaches 20:15:40 richard had some old patches that reworked the static stuff 20:15:44 I like richard's concept of keeping entrypoints by default inside xstatic 20:15:46 TravT: if a plugin wants to use an xstatic package horizon proper doesn't already 20:15:53 I asked him to resurrect it so that I could make use of it for this BP 20:16:47 His patch calls our some JS FILES directly, I still need to touch base with him on the comments, I think our solutions can live peacefully together somehow 20:17:03 our == out 20:17:25 I'm mostly interested in being able to pip install a theme 20:17:53 * ducttape_ is under the impression that pipin is not easy 20:18:03 ducttape_: lol 20:18:05 * tsufiev is curious how js dependencies are solved in this semi-automatic way? 20:18:17 * david-lyle saw that on tshirt, so it must be true 20:18:26 should we re-introduce npm-like dependencies into xstatic ;)? 20:18:27 think that might be part of the comments left, but I'm not sure yet 20:18:33 the js dependacies are not really handled, unless the xstatic package enforces it 20:18:47 I mean, sometimes scripts should be loaded in a particular order 20:18:53 #link https://review.openstack.org/#/c/195371/ 20:19:18 but, any thoughts on the BP itself? 20:19:24 do people like the idea? 20:19:34 too bad thai isn't here 20:19:38 +1 20:19:46 i'd given up on it ages ago 20:19:48 Yeah it makes sense to me 20:20:31 cool beans 20:20:44 Thoughts on approval/priority? 20:20:58 it seems like it is more of a developer / distro priority 20:21:12 so I believe app-catalog had wanted such a thing as well 20:21:19 as long stuff doesn't completely break and need a rewrite - wfm 20:21:23 I agree. It seems like a QOL change to me 20:22:13 quality of life? 20:22:17 +1 on the BP 20:22:32 As in, it makes setup easier, but its not like that setup is impossible to achieve 20:23:13 its true … I've heard some packagers rebuild the entire static_settings.py themselves wiht shell scripts 20:23:20 #info https://blueprints.launchpad.net/horizon/+spec/static-file-autodiscovery Approved 20:23:24 \o/ 20:23:25 yay! 20:23:31 #link https://blueprints.launchpad.net/horizon/+spec/dynamic-themes-v2 20:23:40 This is the concept I brought up at the summit 20:23:59 something that we might need internally, and something that would be cool to provide to everyone else 20:24:59 "simple cookie logic" ? 20:25:01 ah yeah, that is crazy 20:25:02 is that a thing? 20:25:10 david-lyle: LOL 20:25:16 it's interesting / cool.... but crazy 20:25:39 basically, I'd like to be able to use functions, that simply return the theme value to load 20:25:46 I don't like the idea of changing the setting again, if its altering the existing setting 20:26:02 ducttape_, just imagine randomly generated theme based on a random cookie value! 20:26:04 As long as it functions with the same config as today, extending is fine as far as Im concerned. 20:26:05 you can write any logic, as long as it returns a theme 'key' 20:26:07 are there current places in horizon that don't adopt the current theme stuff all that well? those seem higher priority 20:26:19 robcresswell: next cycle theming will stabilize 20:26:34 I thought I heard that last cycle 20:26:41 every cycle :P 20:26:43 ducttape_: sorry, there's only one of me 20:27:04 david-lyle: Hey, my response to him was that Liberty was more stable 20:27:19 :-D 20:27:21 yy.... but I think it should be recognized... there are spots right now that don't adopt theme stuff well / correctly.... and it's pretty ugly / obvious 20:27:40 Which ones? 20:27:42 ducttape_: those are on hurgleburgler's hunt and kill list 20:27:51 I'm cleaning up the stragglers now 20:27:53 So, my thoughts on the actual bp is the idea is neat, as long as it doesnt change/break any existing config then its fine 20:28:01 robcresswell: +1 20:28:02 k. I know mfisch was complaining, will get bugs filed to follow up with 20:28:08 robcresswell: i promise 20:28:19 But it isnt high priority. More interested in fixing the existing issues and making sure the angular content is also themable etc. 20:28:19 ducttape_: that's surprising 20:28:39 ducttape_: just shoot the bugs my way if possible 20:29:02 we like to give hurgleburgler a hard time. no one has done more around the theme stuff... but it's never enough 20:29:15 I agree filling in the theming gaps is higher priority 20:29:15 Its never done! 20:29:19 #info https://blueprints.launchpad.net/horizon/+spec/dynamic-themes-v2 Approved 20:29:21 damn moving target 20:29:26 #link https://blueprints.launchpad.net/horizon/+spec/angular-template-overrides 20:29:35 override all the things ! 20:29:36 here's a big one 20:29:40 I just did the spinner rework 20:29:48 making the spinner overridable from the theme 20:29:50 through tempaltes 20:29:55 angular uses their own spinner 20:29:58 which is a problem 20:30:20 right now … I restructured the angular to use a template (it was inline HTML within the JavaScript) 20:30:30 but, there is no way to override the angular templates from a theme 20:30:33 frankly speaking, I don't find a bare spinner very UI-friendly 20:30:51 would be better to see progress bar in its place 20:30:58 but now you can customize it anyways you want 20:30:58 tsufiev: for the page? 20:31:02 progress bar is sometimes impossible 20:31:08 cause, you don't know percentages 20:31:09 tsufiev: Progress bars are difficult to make reliable, and frustrating if they aren't reliable. 20:31:17 or do you mean just an animated 100% width one? 20:31:26 14 hours left to load page 20:31:27 oh yes, that's true :( 20:31:27 but, anyways, off topic 20:31:33 oh wait it's done 20:31:35 right now, you can't override angular templates 20:31:37 so this is primarily supporting the spinner stuff? 20:31:39 at least for file uploads where progress is trackable 20:31:42 in any case...with this blueprint...your theme can make the spinner a progress bar 20:31:49 no, supporting ANY angular overrides 20:31:52 ducttape_: No, one tiny piece is done :) 20:31:54 it just became apparent when I did this work 20:31:55 I think 20:31:56 which imo the ones users wait the most time 20:31:59 animate until 99% -> then 100% until completed 20:32:05 ediardo: UX ftw 20:32:34 I'm hunting for how to change new launch instance use of transfer table, and throw that thing overboard 20:32:34 ediardo, haha. Or better use 'windows files copy' approach 20:32:39 So, one of the nice parts about the django templating is that we can do block and template level overrides 20:32:42 15 mins ... 30 mins ... 45 mins... 20:33:00 Its one of the most powerful pieces of the Theme functionality 20:33:09 one of the core design principles for Horizon is extensibility, so I am +2 on this bp 20:33:11 its how material is able to change the sidebar and the header 20:33:15 I think if we cant customise templates or HTML in any way, its a big step backwards in that regard. 20:33:34 I spoke it over with a few of the angular peeps 20:33:39 matt-borland and TravT 20:33:49 hey... 20:33:53 I threw up three idea on how to approach the problem from our meeting 20:33:58 tyr_ too! 20:34:21 Any input or iteration on those ideas would be awesome too 20:34:37 can you elaborate on your 2nd idea in the bp? I didn't grok that one 20:34:53 in bp off-line is fine 20:35:40 All okay with approval/ High? 20:35:43 When we do collectstatic, we look through the directory structure anyways, we can write a static json file and load that into angular 20:36:23 + on approval... but not sure on which approach. 20:36:32 It would be nice to have a real use case / example for it to be high 20:36:37 I think several people can help implement too, if possible 20:36:42 the spinner is kinda lower priority 20:36:53 I think you're fixating on the spinner example a bit 20:36:54 the use case is as we get angular code...it appears to be a regression in themeability 20:37:07 ducttape_: the spinner is just an example of why you would need to override tempaltes 20:37:28 swift ui for example 20:37:29 I think the point hurgleburgler was making is that you can't override any angular templates right now. So you're just stuck with the layout. 20:37:30 sure, but it's not really impacting admins or users in a material way imo 20:37:34 ducttape_: it's more about other widgets, that was just a simple one 20:38:14 sure ok... then take the flavor sort thing in the new launch instance.... something 3 operators brought up at the summit 20:38:18 +1 that this feature is needed 20:38:27 and use that as an example / proof point 20:38:27 \o/ 20:39:13 it is worth noting that because angular templates may contain complex behavior and controller interactions...so HTML overrides need to tread carefully. 20:39:18 ducttape_: These arent mutually exclusive goals though. I'd like to fix that too. I can't recall the priority we set on that, I think its assigned to me at the moment. 20:39:20 ducttape_, that example is arguably about functionality more than theming 20:39:29 tyr_: the same is true of the django templates in some cases 20:39:30 ducttape_: is this the setting that allows injecting a python function? 20:39:46 it used to work that way TravT, yes 20:39:55 but it could work in another way in the future 20:41:35 We can decide on implementation, but I think its a desirable to maintain the template flexibility 20:41:46 +1 20:41:54 yep, agreed 20:42:04 I think this is a useful bp, but it does add another "hey...you guys broke my customization" point. Any ideas how to provide an "api" of sorts...or versioning? 20:42:04 I'd like to look into how the schema form does it personally, they have a really nice way of doing it 20:42:11 With their bootstrap provider 20:42:15 But thts off topic 20:42:32 robcresswell: would love it if you could provide a solution on the BP too 20:42:35 #info https://blueprints.launchpad.net/horizon/+spec/angular-template-overrides Approved, High 20:42:37 yeah, it's definitely a 'here be dragons' use case 20:42:55 robcresswell, if you'd like to offload some part of schema research, ping me 20:42:59 hurgleburgler: I'll work out when I can next forgo sleep and add to it :) 20:43:05 hurgleburgler: is your option 2 basically a resource registry? 20:43:14 the json object? 20:43:22 * matt-borland heh heh 20:43:28 robcresswell: you need to build up your tolerence 20:43:36 i'm thinking more like message catalogs 20:43:54 where the key is the text inline and the value is what you should really use 20:43:55 TravT: probably … we just need to load it via a django template tag in the angular base template somehow 20:44:27 I think it might be the best of both the solutions we had discussed before 20:44:33 but, approved! 20:44:35 Thanks! 20:44:39 I'd be cautious about making it too angular specific. i think it might be better approached as a "static file override" 20:45:01 Nothing else on the agenda for today 20:45:06 #topic Open Discussion 20:45:11 eslint warnings? 20:45:27 I have a minor question about angular files location 20:45:48 I do not want at all to start another file moving crusade, but... 20:45:49 there is already an option to have static file overrides, we use em... and would apply in case above... but not be theme specific 20:46:11 I have a couple of BPs to advertise: https://blueprints.launchpad.net/horizon/+spec/admin-views-filter-first 20:46:19 https://blueprints.launchpad.net/horizon/+spec/improve-horizon-caching 20:46:25 :-) 20:46:42 nice lcastell 20:46:44 +100 20:46:45 I found it a bit confusing that, for example NG Images are inside openstack_dashboard/static/app/core/images while containers are inside openstack_dashboard/dashboards/project/static/containers 20:47:23 tsufiev: images "base" code is theoretically shared by panels in two different dashboards 20:47:37 lcastell: We've discussed this one before, so we can approve it unless anyone has any strong objections 20:47:43 yeah, I think that as we move toward things registered by resource type, they will fall into a logical registry, not dashboard-related 20:47:59 oh 20:48:05 *logical directory system 20:48:05 lcastell: These two* even 20:48:17 \o/ 20:48:26 tsufiev, tyr and I were also looking at this, thinking of targeting newton-2 with a recommendation 20:48:32 then perhaps not use dashboard-oriented scheme at all? 20:48:34 so we don't have 100 refactors 20:48:50 lcastell: both of those bp's seem to swirl around use cases that searchlight addresses particularly well. 20:49:08 perhaps, I think it's up to people to figure out the direction we want to go in with panels/actions/views 20:49:11 matt-borland, okay, it's always pleasant to hear that something bothers not only me :) 20:49:27 indeed, it gnaws at my soul constantly 20:49:43 I know we aren't at the searchlight is part of core horizon stage...but i'd be cautious about investing too much effort in a Horizon caching and pre-filtering code base. 20:50:29 another BP related to UX: https://blueprints.launchpad.net/horizon/+spec/improve-confirm-delete-window 20:50:34 tyr_: We're a long way off that stage. 20:50:35 tyr_ nor would I bank on searchlight as the only solution 20:50:43 tyr_ got it 20:50:43 lcastell: Please go ahead with the improvements 20:50:50 tyr_: is searchlight deployed anyone at scale ? 20:50:55 the extreme in both cases is foolhardy 20:51:19 robcresswell cool!! thanks! 20:51:24 until searchlight is a valid choice - I think lcastell is very much on the right path, and won't take much effort 20:51:37 ducttape_, that thing interests me as well 20:51:52 nor does it hurt searchlight 20:51:56 * lcastell tears of joy 20:52:13 * ducttape_ looks for why not both meme 20:52:15 tyr_, matt-borland: re: the images code, we should take some time about general architecture, because the porject/admin split is not that clear cut, and we may want to alter it 20:52:23 some time to talk* 20:52:28 perhaps at mid cycle 20:52:47 robcresswell, yes, I think it's a good discussion, esp. once we get more examples 20:53:02 robcresswell: will it be possible to dial people into the mid cycle? 20:53:07 offtopic, apologies 20:53:27 There's a webex all set up I believe. 20:53:37 Just wanted to check details before I put out the info though. 20:53:43 cisco has some rather fancy conference technology if I remember correctly 20:53:52 Should be a proper conference room with decent audio handling too. 20:53:55 hurgleburgler: that's for customers 20:54:16 Nah, they have big telepresence rooms on every floor. 20:54:24 david-lyle: 。゜゜(´O`)°゜。 20:54:31 hurgleburgler, do they have time distortion machine to fight TZ differences :)? 20:54:43 tyr_ hurgleburgler matt-borland: https://github.com/json-schema-form/angular-schema-form-bootstrap/blob/develop/bootstrap-decorator.js 20:54:44 hurgleburgler: I'm not even sure what that was 20:54:52 (I hope I won't need it) 20:54:53 yeah, robcresswell 20:54:55 thats how schema form does its template handling ^^ 20:55:13 If you could do something like that, I think that would be really cool. 20:55:41 hey, we didn't get to my suggested topic! :) 20:55:51 matt-borland: :o sorry, what was it? 20:55:53 copious eslint warnings 20:56:03 notably 'quote-props' 20:56:07 do we really want that rule? 20:56:14 I don't. :) 20:56:17 matt-borland: all javascript is warning according to eslint 20:56:22 exactly! 20:56:29 actually, it's just all quote-props 20:56:30 david-lyle, lol ) 20:56:40 david-lyle: lol 20:56:42 david-lyle: it was a crying person 20:56:59 matt-borland: do we just have to disable rules? 20:57:10 or are you proposing fixing all the nits? 20:57:14 yeah, we can set that quote-props rule to 0 unless someone really wants it 20:57:21 eslint warnings provide zero value until that is done 20:57:27 we can disable all the nits :-D 20:57:28 it's "you should say {'a': 'apple'} rather than {a: 'apple'} 20:57:36 Fine by me. I have no strong feelings about anything above basic linting. 20:57:39 matt-borland, do you think we need to disable it in eslint-config-openstack? 20:57:48 we can override in .eslintrc I think 20:57:52 I did the other day 20:58:09 we don't have to actually follow every rule they push 20:58:11 I say disable and if someone wants to reenable, they can fix all the warnings with that patch 20:58:16 I'll put up a patch...thanks! 20:58:18 david-lyle: +2 20:58:19 yes, it's always possible, but it just looks... not aligned with common sense 20:58:28 david-lyle: +2 20:58:51 thanks :) 20:59:27 * tsufiev dreams about starting using ES2015 in Horizon JS 20:59:56 nits aren't 'common sense' all the time 21:00:05 We're at time 21:00:08 Thanks everyone! 21:00:13 Thanks! 21:00:15 #endmeeting