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