14:00:01 <krotscheck> #startmeeting javascript 14:00:02 <openstack> Meeting started Wed Jul 27 14:00:01 2016 UTC and is due to finish in 60 minutes. The chair is krotscheck. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:03 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:00:05 <openstack> The meeting name has been set to 'javascript' 14:00:11 <krotscheck> #chair vkramskikh 14:00:12 <openstack> Current chairs: krotscheck vkramskikh 14:00:17 <msmol> hello all 14:00:19 <cardeois> hello ! 14:00:22 <krotscheck> Agenda! 14:00:24 <krotscheck> #link https://etherpad.openstack.org/p/javascript-meeting-2016-07-27 14:00:24 <vkramskikh> hi 14:00:26 <betherly> o/ 14:00:29 <betherly> hi hi! 14:00:33 <krotscheck> Goood morning everyone! 14:00:50 <timothyb89> hello! 14:00:58 <krotscheck> Let's talk javascript! 14:01:04 <yujunz> hi 14:01:06 <krotscheck> #topic Action followup: Docs 14:01:31 <krotscheck> All the doc jobs, plus a bonus Hey Let's use NodeJS6, are available here: https://review.openstack.org/#/q/topic:npm_jobs+status:open 14:02:18 * Zara takes a look (hi!) 14:02:23 <cardeois> cool ! so if we use nodejs6 that means we could run test with and without babel right? 14:02:28 <krotscheck> I'm creating two jobs. One is the docs-draft job, which will upload that job's doc deliverables to static.openstack.org so we can test it. 14:02:36 <yujunz> How do you manage so many search queries? 14:02:43 <vkramskikh> I think babel is still needed at least for es6 modules 14:02:57 <krotscheck> yujunz: ... the little search bar in the top right? 14:03:18 <krotscheck> The second job will publish the docs to docs.openstack.org underneath the /sdk path. 14:03:28 <cardeois> awesome ! 14:03:34 <yujunz> I mean you seem to have many filters for different scopes 14:04:00 <krotscheck> Since js-generator-openstack and js-openstack-lib work together to support each other, I'll be publishing both of those projects as part of the sdk. 14:04:47 <yujunz> looks good. I'll have a look at the patchsets 14:05:09 <krotscheck> yujunz: I'm not certain I udnerstand your question? 14:05:10 <betherly> sounds awesome thanks for sorting krotscheck 14:05:41 <krotscheck> Also, I've created a reusable job template which can be used by other projects to publish their docs. Storyboard, for instance, can publish them, simply by providing a different path paraemter. 14:05:51 <krotscheck> Just in case you want to do that :) 14:05:55 <yujunz> Not related to this topic. Just ignore my comments on the search query 14:06:06 <Zara> ah, we were wondering about what to do for webclient docs the other day 14:06:08 <krotscheck> yujunz: Gotcha 14:06:13 <Zara> so sounds intriguing 14:06:35 <krotscheck> Related to this, I had to update ALL the javascript jobs so they now explicitly include the nodejs version. 14:06:42 <krotscheck> This'll help us upgrade in the future. 14:07:05 <krotscheck> Special callout to `madong for helping me update the installation job. 14:07:07 <cardeois> cool, it's not possible to set a default version? 14:07:20 <krotscheck> cardeois: Infra specifically asked not to do that. 14:07:28 <cardeois> ok 14:07:32 <krotscheck> cardeois: vis-a-vis python27-jobs, python35-jobs, etc 14:07:53 <cardeois> Oh I see, so it's explicit which version you use 14:07:55 <krotscheck> I'll report again on this once it lands next week. Any questions? 14:07:59 <msmol> that makes sense 14:08:06 <msmol> good job krotscheck 14:08:07 <krotscheck> cardeois: Right. And for the time we'll actually be using both 4 and 6 14:08:10 <yujunz> Good for me 14:08:51 <krotscheck> Apologies to betherly because I totally just took this and ran with it and forgot to loop her in :( 14:09:43 <krotscheck> #topic Action followup: Simple Keystone Client 14:09:45 <krotscheck> msmol? 14:09:54 <msmol> so, good news and bad news: 14:10:09 <msmol> good news: I've got a simple client working, authenticating with keystone! 14:10:18 <Zara> \o/ 14:10:21 <krotscheck> wendar \O/ 14:10:22 <krotscheck> OOPS 14:10:27 <krotscheck> Wrong channel 14:10:30 <krotscheck> \o/ 14:10:36 <msmol> bad news: having some trouble with fetch-mock for one of my tests 14:10:59 <msmol> so, I think I should have a review open later today once I sort the issue with fetch-mock 14:11:17 <vkramskikh> I think you can upload the review request with workflow -1, we can help to fix it 14:11:36 <krotscheck> Did you use that vagrantfile of mine at all? 14:11:57 <msmol> vkramskikh: okay, I might end up doing that 14:12:04 <cardeois> No we have our own openstack at work, we used this one 14:12:20 <krotscheck> cardeois? Nice 14:12:21 <msmol> krotscheck: no didn't end up using vagrantfile, like cardeois said, used own openstack from work 14:12:50 <krotscheck> Does anyone have any questions for cardeois? 14:13:06 <cardeois> krotscheck: You mean msmol? 14:13:12 <krotscheck> Sorry 14:13:14 <krotscheck> Yes, msmol 14:13:58 <krotscheck> Alright, let's see what he uploads and go from there :) 14:13:59 <cardeois> Nope I guess open the review and we'll comment 14:14:00 <msmol> I guess that's a no ;-) 14:14:22 <krotscheck> #topic Action followup ES2015 rules in eslint-config-openstack 14:14:22 <yujunz> No. But I'm interested in the vagrantfile. Is it for creating an openstack for testing? 14:14:56 <vkramskikh> hi, here is the review request: https://review.openstack.org/#/c/346875/ 14:14:58 <krotscheck> yujunz: Yeah - https://review.openstack.org/#/c/346422/ already landed. it "should" work by just going 'vagrant up' in your root directory. 14:15:06 <krotscheck> vkramskikh++ 14:15:15 <vkramskikh> it changes the project structure, I don't know much about it 14:15:21 <vkramskikh> so reviewers are welcome 14:16:01 <vkramskikh> the new es2015 config will be accessible via "extends: openstack/es2015" 14:16:13 <vkramskikh> using the same npm package - eslint-config-openstack 14:16:22 <krotscheck> vkramskikh: I assume it's backwards compatible? 14:16:46 <vkramskikh> krotscheck: no it doesn't and it will break es5 projects 14:16:56 <krotscheck> vkramskikh: oooooh. 14:16:57 <krotscheck> Hrm. 14:17:05 <vkramskikh> but it just extends base config adding es2015-specific rules 14:17:15 <vkramskikh> https://review.openstack.org/#/c/346875/1/.eslintrc-es2015 14:17:38 <krotscheck> vkramskikh: Sorry, maybe I misstated my question. If an ES5 project continues to use extends: openstack, and we update the version of eslint-config-openstack, will it break? 14:17:48 <krotscheck> I think the answer is 'no, it's backwards compatible'. 14:17:58 * krotscheck is not expecting the rules to be backwards compatible. 14:17:59 <vkramskikh> no it won't, the original config hasn't been changes 14:18:02 <krotscheck> Sweet. 14:18:23 <krotscheck> Alright, so I would argue that this warrants a minor version release rather than a major version release. 14:18:36 <krotscheck> We're adding a new feature, but not breaking the API in any way 14:18:42 <krotscheck> Anyone disagree? 14:18:45 <vkramskikh> we might want to bump a version 14:18:49 <vkramskikh> major version 14:18:55 <vkramskikh> since there is eslint 3.x is out 14:18:59 <krotscheck> Already? 14:19:01 <krotscheck> Yeeesh 14:19:02 <vkramskikh> yes 14:19:02 <krotscheck> They move fast. 14:19:27 <krotscheck> Alright, so, let's move on the the other action items and talk about releasign eslint later. 14:20:09 <krotscheck> #topic Action followup: Devstack-gate and CORS 14:20:18 <krotscheck> cardeois? The floor is yours. 14:20:42 <cardeois> Yeah so I have a review opened https://review.openstack.org/#/c/345529/ 14:21:03 <cardeois> Missing the project_config part, I didn't have much time to work on it but I almost have a functionnal flow 14:21:21 <cardeois> However we've been discussing with krotscheck about how we implement it properly 14:21:49 <cardeois> We might have some shell scripts to publish in js-openstack-lib so we don't depend too much on project-config 14:22:07 <cardeois> I'll try to open the project-config part by next week if that's fine for you guys? 14:22:17 <krotscheck> Yeah, apparently the devstack-gate project (maintained by infra to install and run devstack in the gate) does weird copying and chown things to the project under test. 14:22:23 <krotscheck> WFM 14:22:48 <krotscheck> yujunz: As soon as this settles out, I'd like to add a devstack-gate option to the generator. 14:23:00 <yujunz> OK 14:23:07 <cardeois> Yeah also, I might rebase my review once this is merged https://review.openstack.org/#/c/346682/ so feel free to take a look 14:24:01 <krotscheck> cardeois I'll help you work on this this week so we can have it ready by next week. 14:24:35 <krotscheck> Any questions for cardeois? 14:24:36 <cardeois> ok sure, but I can't work on that today, I to work for my company a little :-) 14:24:48 <krotscheck> cardeois: That's fine, that means I have a clean runway :) 14:25:39 <krotscheck> Ok, moving on. 14:25:53 <krotscheck> #topic Create api document with jsdoc 14:26:22 <yujunz> The existing comments in js-generator-openstack have been converted into jsdoc 14:26:23 <krotscheck> I am not familiar with doclets. Looks like a parallel service to travis, coveralls, etc? 14:26:48 <yujunz> It's a jsdoc publishing site 14:26:55 <krotscheck> Thank you for doing that, yujunz :) 14:27:20 <yujunz> Preview the output help me finding some bugs 14:27:37 <yujunz> Since we are publishing it to docs.openstack.org soon 14:27:51 <yujunz> I think we don't need to go further on doclets now 14:28:07 <krotscheck> Well, just because we're publishing our docs doesn't necessarily mean that they're actually being built properly. 14:28:22 <krotscheck> i.e. do we know how jsdoc is getting incorporated into the sphinx docs? 14:28:33 <krotscheck> (I don't know, I just don't recall anyone working on that) 14:28:50 <yujunz> I can have a look at it 14:29:46 <yujunz> #action yujunz to look into how to incorporate jsdoc into the sphinx docs 14:29:55 <krotscheck> \o/ 14:31:31 <krotscheck> HOnestly, I feel like we're glossing over a really important discussion re: how do we write docs, what format do we use, etc. here. 14:31:44 <krotscheck> However, I'm content to put yujunz in charge of that :) 14:31:49 <krotscheck> And just accept his expertise. 14:32:22 <Zara> I'm interested in that, fwiw. we've had some different opinions about best practices for ui docs already. 14:32:23 <yujunz> Thanks 14:32:59 <krotscheck> Zara, can you give us an overview? 14:33:09 <yujunz> I'm interested too, Zara 14:33:18 <krotscheck> I know there's a big camp that says "If your UI needs to be explained, it's not that good" 14:33:34 <krotscheck> But, well, we're building reusable things that will be consumed by those that read documentation. 14:34:07 <Zara> yeah, I'm often in that camp. but also, when is it appropriate to say 'this element is in x position' when the position may change? because that adds a maintenance burden 14:35:14 <Zara> and I think that kind of description is harder to automate than api docs, since the relation between elements is visual 14:35:56 <Zara> especially when things are differently positioned for different screen sizes 14:36:51 <Zara> so I guess I'm wondering at what point it's better to have no docs than something out of date, how to keep things up to date, that kind of thing, since I assume it's always going to be a human responsible for it 14:36:52 <krotscheck> Piet may have good input on that. 14:38:06 <krotscheck> I came across this article a few years ago, it still holds true. 14:38:08 <krotscheck> #Link https://jacobian.org/writing/great-documentation/ 14:38:22 <krotscheck> Either way, this feels like an extended, offline discussion, let's move on. 14:38:37 <krotscheck> #topic Releasing eslint-config-openstack 14:39:11 <krotscheck> So, after the es2015 rules land we definitely have a reason to cut a new version, the quesitno is whether we want to update to eslint3 before or not. 14:39:31 <krotscheck> I had a general vague handwavey idea that the eslint rule major version would track eslint's major version. 14:39:47 <krotscheck> So if we bump to 3, I'd like to get eslint 3 in as well. 14:39:59 <krotscheck> betherly, you're core on that project, what do you think? 14:40:55 <vkramskikh> it think that makes sense, and the bump would be easy - the list of breaking changes isn't big 14:41:14 <betherly> I think that is sensible to move to eslint 3 14:41:15 <vkramskikh> AFAIR the most important change there is that node <4 is not supported anymore 14:41:27 <krotscheck> Thankfully that doesn't impact us anymore ;) 14:41:39 <betherly> as vkramskikh says there aren't that many things that will need changing as a result 14:41:54 <betherly> i think if we wait longer we will end up with bigger issues later down the line 14:41:58 <krotscheck> Alright then. betherly, think you can take that on? Updating eslint, pushing a release, etc? 14:42:30 <betherly> i can handle that. i might be coming to you for advice with some of it though krotscheck :) 14:42:33 <krotscheck> (And, urm, documenting how you do it so the process isn't just in my brain anymore? :) 14:42:40 <krotscheck> Excellent. 14:42:42 <betherly> of course :) 14:43:02 <krotscheck> #action betherly Shepherd ES2015 and ESLint 3 through to a release of eslint-config-openstack. 14:43:21 <krotscheck> #topic Library configuration 14:43:57 <krotscheck> So, I added this on a whim just now, but realized I'm not really ready to talk about it without seeing what msmol's put together. 14:44:18 <krotscheck> Really, I want to talk about how we initialize an instance of our API library pointed at a specific cloud. 14:44:43 <msmol> well 14:44:48 <krotscheck> In a perfect world, I'd like every service to be an initializable class like "new Keystone(config)" 14:45:17 <krotscheck> The question is whether we want a big overarching "new OpenStack(config)" as well. 14:45:26 <msmol> for right now what I've got is this: `const os = new Openstack(config, cloudName); os.authenticate()` 14:46:22 <krotscheck> That seems sane. I'm ok punting the discussion to msmol's patch and/or next week. 14:46:24 <cardeois> Yeah I guess if we want to look like shade, but in a JS way (with promises and stuff) `new OpenStack(config)` makes more sense 14:46:44 <cardeois> I think later we could add autodiscover support for config 14:47:14 <msmol> sounds reasonable 14:47:21 * krotscheck likes putting off the Autodiscover feature toa time when we actually have people who use our library that we can talk to. 14:47:32 <vkramskikh> though we may still want to include clients separately. for example, fuel may take advantage of this lib, but it needs only Keystone client. so it would be great just to "import Keystone from 'js-openstack-lib/keystone'" 14:47:51 <vkramskikh> so that only Keystone client would be in the resulting bundle 14:48:06 <vkramskikh> after project build 14:48:16 <cardeois> Mhh good idea yeah 14:48:25 <krotscheck> That'd help with finely focused apps, like tiny dashboards that only talk to one or two services. 14:49:26 <krotscheck> So, let's say we have an app that wants to use nova, and nova is authenticated with Keystone. How do we get those two instances to talk to each other? 14:49:38 <krotscheck> I mean... 14:49:53 <krotscheck> "const keystone = new Keystone(config); const nova = new Nova(config);".... 14:50:17 <krotscheck> now I want to do nova.createInstance(arguments);, how do I tell it to use my keystone tokens? 14:50:37 <msmol> `nova = new Nova(keystone);`? 14:50:56 <krotscheck> msmol:... that... is definitely the sensible obvious answer. 14:51:12 <krotscheck> i.e. (Hey don't bother configuring yourself, ask keystone for your config). 14:51:38 <vkramskikh> we may want to take a look into how it's done in python clients - don't think js approach will differ a lot 14:51:47 <krotscheck> Any disagreements for trying that as an initial approach? 14:52:00 <yujunz> no 14:52:04 <vkramskikh> nope 14:52:05 <msmol> ok, so I've got some refactoring to do, but sounds good to me 14:52:21 <msmol> should still have the review out today at some point I think 14:52:24 <cardeois> yep me too 14:52:28 <krotscheck> Ok, does anyone want to start working on one of the non-keystone API libraries once msmol has something up and running? 14:53:31 <krotscheck> Sounds like most of us are already busy. 14:53:38 <krotscheck> 8 minute waring 14:53:40 <cardeois> Well honnestly me and msmol have only 1 day a week we can work for openstack, so not sure we can add more work 14:53:48 <larainema> krotscheck, I would like to try 14:53:54 <krotscheck> larainema wins! 14:54:05 <krotscheck> larainema: Which service would you like to work on? 14:54:54 <msmol> just to clarify cardeois's comment: the two of us have an internal budget of 1 day per week to work on open source projects of our choosing on company time :-) 14:55:11 <krotscheck> msmol, cardeois: Indeed. And we appreciate you donating your time to our cause :) 14:55:34 <larainema> I am more familiar with glance, might be try first 14:55:35 * krotscheck makes a note to pay their bar tab the next time he sees them. 14:55:51 <krotscheck> larainema: Perfect choice. Easily separated from other projects, not huge and unwieldy like nova ;) 14:56:06 <krotscheck> #action larainema Start implementing a glance API on top of msmol's keystone work. 14:56:31 <krotscheck> msmol, cardeois: You two are in... montreal? Toronto? 14:56:38 <msmol> montreal 14:56:59 <krotscheck> Excellent. 14:57:02 <krotscheck> Let's switch to open discussion 14:57:06 <krotscheck> #topic Open Discussion 14:57:19 <cardeois> Yeah are you guys going to the summit in barcelona? 14:57:31 <krotscheck> Don't know yet. Depends on The Powers That Hold The Purse Strings. 14:57:38 <yujunz> Not planned yet. 14:57:44 <cardeois> It would be cool to setup a work session maybe, if there's enough people? 14:57:55 <krotscheck> If people vote for my "Beyond Horizon: Building Custom User Interfaces with the JavaScript SDK" talk, it'll be easier for me to justify. 14:57:59 <cardeois> Yeah me too, might go, but not confirmed 14:58:01 <krotscheck> :D 14:58:03 <msmol> hehe indeed. I was there in Austin so I may have to let cardeois or another coworker hit up Barcelona 14:58:05 * krotscheck plugs himself shamelessly 14:58:09 <cardeois> Yeah voted already 14:58:18 <krotscheck> Thanks! 14:58:35 <krotscheck> I'm actually working on getting SDK working sessions via the APP WG. Shade, JS-Lib, libcloud, etc. 14:58:36 * msmol promises to vote 14:58:42 <krotscheck> So that's on me. 14:58:55 <cardeois> great 14:58:57 <krotscheck> #action krotscheck Work on getting an SDK working session at the summit. 14:59:20 <krotscheck> Ok, we're out of time. 14:59:22 <krotscheck> Thanks everyone 14:59:25 <krotscheck> #endmeeting