16:00:58 #startmeeting api wg 16:00:58 Meeting started Thu Mar 24 16:00:58 2016 UTC and is due to finish in 60 minutes. The chair is etoews. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:01:00 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:01:02 The meeting name has been set to 'api_wg' 16:01:11 hey =) 16:01:21 hello! 16:01:30 hola 16:01:57 #link https://wiki.openstack.org/wiki/Meetings/API-WG#Agenda 16:02:07 hello 16:02:28 #topic previous meeting action items 16:02:35 #link http://eavesdrop.openstack.org/meetings/api_wg/2016/api_wg.2016-03-10-16.00.html 16:03:00 i think we're all checked off there 16:03:12 Yeah, a fair stack of stuff got frozen 16:03:34 that was nice 16:03:41 very much so 16:04:01 #topic Tackling TODOs in existing guidelines 16:04:10 ah, this was one I raised 16:04:38 I was reading through the existing guidelines and realized there are a lot of blank spots and it made me realize that I don't think much about the guidelines after they pass through gerrit. 16:04:45 And we probably need to be more...mindful? 16:04:50 i talked with sdague a little about the TODOs in the error message, i could take a stab at filling those out 16:05:00 cdent: +1 16:05:44 Some of them are not aligned with the current scope of the guidelines and hangovers from the earlier wiki pages. 16:06:17 maybe we need to do something like the code-based projects and have an end-of-the-cycle TODO-fest or something? 16:06:19 heh hangovers 16:06:31 hangover cure 16:06:51 yeah, end of cycle, get some orange juice, aspirin, coffee, get to work 16:07:04 right, pick a week and do a virtual sprint on the TODOs 16:07:47 i suppose it's also a question of how we manage the potential guidelines 16:08:19 most projects would use an issue tracker to put TODO stuff into 16:08:31 rather than have it in the code (guidelines in the case) 16:08:32 true dat 16:08:32 hmm 16:08:46 we could hop on the storyboard bus? 16:09:12 i dunno, i've seen plenty of TODOs stuck in code 16:09:17 it might be useful to have some kind of tracking thing in place 16:09:18 that would be an improvement over the current state 16:09:39 storyboard is a bus that might not go anywhere unfortunately 16:09:43 only challenge is communicating it is on storyboard 16:09:50 do we need a launchpad for api-wg? 16:09:51 folks wont looks there first 16:09:55 i'm not familiar with storyboard beyond it's a thing that was supposed to do project mgmt or something. 16:10:36 if storyboard isn't going to become a thing i think launchpad is good enough 16:10:49 ya. it's the simplest possible thing in this case. 16:10:54 and our needs are modest. 16:11:22 storyboard is newly refreshed. infra is using it more. there was just a posting to the dev list about latest changes and such 16:11:30 I was suggesting it merely because of that reminder 16:11:39 launchpad is fine too (despite the fact that it is horrible) 16:11:50 * elmiko has not used storyboard 16:11:56 it's also prety horrible 16:11:59 :D 16:11:59 lol 16:12:06 so.... trello? 16:12:09 done 16:12:09 /s 16:12:11 :P 16:12:15 haha 16:12:40 heh 16:12:53 Can we extract an action from this? 16:12:56 we have openstack-api-site and openstack-doc-tools in launchpad now 16:13:03 cdent: we have to 16:13:03 would either of those be useful in this case 16:13:26 seems like lp is the path of least resistance 16:13:30 yes 16:13:32 openstack-api-site seems about right 16:13:40 cdent: but i would rather do action than extract action 16:13:41 since we were talking about publishing the guidelines there 16:14:01 etoews: heh, I was thinking extract the thing we put in an # action 16:14:03 yea, i'm good with api-site, but i think we should get a link up there 16:14:17 (meant to propose a link but it got lost somewhere....) 16:14:48 so how about 16:14:50 elmiko: get on it man! :) I'll assign you your first but in openstack-api-site then? 16:14:51 although, i wonder if we shouldn't have a separate lp just for api-wg. i don't want the lines to be blurred too much 16:15:14 #action start tracking todos and other planning style issues for wg in launchpad openstack-api-site 16:15:39 sounds good 16:15:48 it's cheap enough to have our own 16:16:03 cdent: are you saying create our own? 16:16:08 (which i'm fine with) 16:16:16 easier to navigate it we do 16:16:23 I'm fine with that, openstack-api-wg in lp 16:16:28 my only concern is differentiating between api-site issues and guideline related issues 16:16:37 and there's too many bugs in api-site already :) 16:16:47 ok, maybe best to make a new lp 16:16:50 it would require a tag but openstack-api-wg is better 16:16:56 yea, +1 16:17:15 is that something we can do right now? 16:17:29 yes, I did it for something else yesterday, so I'll do it again 16:17:37 anyone that's admin on the group can make official tags 16:17:37 yeah, fairly straightforward 16:17:37 cdent++ 16:17:38 thanks cdent 16:17:45 #action cdent to create openstack-api-wg launchpad 16:18:14 moving on... 16:18:17 #topic Doc: RST plus parameters YAML files as substitute for Compute API not fitting Swagger/OpenAPI 16:18:26 #link https://review.openstack.org/#/c/294078/ 16:18:26 * cdent looks at sdague and annegentle 16:18:29 here 16:18:40 yeh 16:18:44 sdague: you want to intro? 16:18:58 sure the, best place to start is probably the planning etherpad 16:19:04 https://etherpad.openstack.org/p/api-site-in-rst 16:19:24 I started doing a deep dive into the hard parts of our existing apis and swagger a couple weeks ago 16:19:32 and there are some ... intractable problems 16:20:03 I think our #1 near term mission should be to get off of WADL, which is causing friction in fixing issues in our user facing API docs 16:20:04 well, problems large enough to need ongoing engineering 16:20:40 so in that etherpad is data collection and proposed steps forward to doing an RST first approach to our API 16:20:53 bummer about the swagger problem areas, but looking at the beginning of this etherpad they seem pretty entrenched 16:21:04 with plug points (sphinx extensions) for structured data 16:21:26 the structured data starting off as a pretty adhoc thing to capture what's currently in the wadl 16:21:35 ideally, we can get that structured data from fairy-slipper migration somehow 16:21:49 imo, getting to the point of projects having rst based api docs seems like a nice short-term goal 16:21:59 but those structured data points could be swapped out for things like swagger / raml in the future should we want to go there. 16:22:01 elmiko: yeah, I've come to that as well 16:22:06 especially if those docs are controlled by the projects 16:22:16 sdague: +1 16:22:16 once we have a publish pipeline that gets us useful docs to the end user 16:22:35 elmiko: the response I've gotten from reaching out to all the projects hasn't been overwhelming, but the ones that do respond really need to know what they can do 16:22:53 I think this gets us a publishing pipeline, but still requires the work on teams 16:23:08 and, trying to keep this scoped narrow enough that it could largely done in this next cycle 16:23:10 I hope it's less engineering time and maintenance. I think it is. 16:23:25 annegentle: seems to me it would be useful to have a template that projects can look at for reference as to how they can create these docs, and where to put them 16:23:49 elmiko: yeh, we're going to have a worked example in compute first 16:23:59 if, in the future, we create tooling to help automate the transition between code and docs then so much the better 16:24:03 there are POC patches up there for the servers resource being converted over 16:24:16 https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:wip_api_docs 16:24:20 yes 16:24:22 sdague: cool, have you looked at projects like keystone who keep their descriptive api docs in the specs repo? 16:24:24 by putting it in the dev docs for nova 16:24:47 * elmiko looking at nova reviews 16:24:48 nova's not a fan of the specs repo for this elmiko 16:24:48 elmiko: I have not really, because this was mostly about getting off WADL 16:25:00 ok, fair 16:25:00 goal 1! 16:25:03 :) 16:25:14 my guess is we'd keep this in the core nova repo, much like our api-guide 16:25:23 believe me, i would love to get sahara off the wadl stuff (i think it's out of date anyway) 16:25:38 but... there are some chunks of conversion tooling that we need a little bit better first 16:25:48 sdague: ok, i don't have a strong opinion about the where, i just liked keystones approach 16:25:53 elmiko: ok 16:25:58 sdague: yup, +1 16:26:16 elmiko: yeh. I think being in specs would also be fine actually. 16:26:20 does http://developer.openstack.org/api-ref.html become a landing page linking out to all of the project api docs? 16:26:26 it's not going to hugely matter 16:26:30 and also, we took this to the nova api team meeting yesterday, and while they are disappointed a bit to lose swagger, I think they understand the priorities 16:26:35 elmiko: i think we did that partially because of the way specs change the API, made sense to be in the same repo 16:26:36 etoews: I think so 16:26:38 i think the tooling will probably take different shapes depending on the wsgi framework used by each project 16:26:42 elmiko: yea it can 16:27:04 dstanek: ack 16:27:06 I think the long term should be that each project has their API ref somewhere they can approve 16:27:07 er etoews yea, it can. We still need some good IA/nav on developer.openstack but the idea is to make that site better and not source from wadl 16:27:14 that's more or less what it is now anyway with the links being in the left-hand nav 16:27:19 they publish to a dedicated subtree on developer.openstack.org 16:27:21 dstanek: i just really appreciate what you folks did with the api docs, +1 16:27:26 and there is a top level index 16:27:40 sdague: soo yes to projects controlling their own api docs 16:27:51 elmiko: can you provide a #link ? 16:27:52 yep dstanek, next would be to publish that conceptual info to developer.openstack 16:28:03 dstanek: we can talk more after if that's a good outcome to the keystone team 16:28:18 annegentle: sure, that sounds good 16:28:19 #link https://github.com/openstack/keystone-specs/tree/master/api 16:28:44 etoews: i think there is work to be done there in terms of creating a full, in-depth, description of all endpoints. but i like the general approach 16:29:14 but as for a descriptive version of the api docs, i really like the work keystone has done 16:29:49 yeah elmiko +1 16:29:58 yeh, I'll look with some of that as well. Though, at the end of the day it's going to be RST, so you can do anything you like 16:29:58 so, you all are okay with a new approach to api reference? 16:30:05 sdague: do you envision their being some sort of config file which projects can propose changes against for the location of their docs? 16:30:10 and the loss of swagger is ok? 16:30:16 * elmiko cries 16:30:21 i'll get over it ;) 16:30:21 elmiko: it will be project config somewhere 16:30:23 heh 16:30:33 sdague: +1 16:30:43 annegentle: anything is better than paralysis :) 16:30:44 I think the important lesson I learned from this research is swagger/raml are API design tools 16:30:53 that have the side benefit of a docs toolchain 16:31:01 elmiko: it's sorta the other way round, where each project makes a publish job to developer.openstack 16:31:01 sdague++ 16:31:05 sdague: i can see that 16:31:09 sdague: yeah 16:31:19 annegentle: ok, that works too =) 16:31:22 they also serve well as machine parsable contract between client and server 16:31:38 etoews: they could 16:31:42 i mean, i really like the swagger stuff but the whole "actions" and heat template issues are huge 16:31:44 (swagger/raml that is) 16:31:49 there is very minimal tooling on that at this point though 16:32:19 ya. i understand. we need something now. it's okay with me. 16:32:45 if our top concern is machine parsable client/server contract, I honestly think we should just propose people make wsdl interfaces :) 16:32:57 (etoews there's that whole side issue of "If you need a machine readable contract between client and server then you are doing the web completely wrong...) 16:33:04 too cruel man too cruel 16:33:06 (but that's not germane at this time) 16:33:07 heh 16:33:23 right now I'd like humans to be able to understand our APIs without reading our source code 16:33:27 which is mostly not possible 16:33:33 agreed 16:33:37 word 16:33:38 cdent: hateoas + ??? ftw! 16:33:51 and at least if the projects can control their docs _and_ they are rst it should lower the bar 16:33:57 let's hope so 16:34:00 elmiko: right, that was exactly the thinking 16:34:04 * elmiko fingers-crossed 16:34:11 sdague: it's way too sensible ;) 16:34:14 I will draft a "Swagger, where art thou?" email to openstack-dev 16:34:25 outlining the new plan 16:34:27 also being able to -1 a code review because it doesn't update api docs is HUGE 16:34:32 etoews: +1 16:34:37 elmiko: 100+ 16:34:44 gawd e complete :) 16:34:50 etoews: +100 16:34:51 haha 16:35:01 i think we can move on 16:35:04 cool 16:35:06 thanks all 16:35:12 and of course thanks sdague 16:35:20 thanks sdague and annegentle for pushing this forward =) 16:35:24 ++ 16:35:28 #topic Do a cross project session? 16:35:35 #link https://etherpad.openstack.org/p/newton-cross-project-sessions 16:35:49 doit 16:35:54 I proposed one specific to the API docs discussion 16:35:58 we currently have a wg session on monday at 2 pm. 16:36:18 as I figured that is going to need socialization and feedback. And hopefully we'll have a good chunk to show there. 16:36:58 should we have a more general one for the api wg or does the session on monday suffice? 16:37:03 maybe a q&a session about how the community interacts with the guidelines? 16:37:15 that could work 16:37:33 although, if it's already in the monday track, that might be duplicative 16:37:40 true 16:37:56 monday for working on some stuff (the TODOs?) and tuesday for Q&A? 16:38:00 as for our session, how will we plan it? (i have a few ideas i'd like to present to the wg) 16:38:04 ya. there could be overlap. 16:38:37 * etoews stumbles about for etherpad link 16:38:43 i think it would be nice to get a little time at the cp meeting to get the pulse of the community 16:38:47 I think if there is something specific we're trying to move forward, that would be better for cross project sessions. Those are really meant to be more typical design summit sessions with goals, discussion, outcomes 16:38:57 ah, ok 16:39:10 that's reasonable 16:39:45 i do have some specific ideas/plans around the guidelines and the community, but i would like to propose them to the wg first 16:39:48 elmiko: do you have the etherpad link to our wg session? 16:39:58 * elmiko starts digging 16:40:16 #link https://etherpad.openstack.org/p/austin-api-wg-session-plans 16:40:26 thx 16:40:47 I _hate_ etherpad for exactly that reason. It's a place where info goes to be never found again. 16:41:02 totally 16:41:16 * elmiko needs a meta-etherpad to keep track of them all 16:41:22 I think they call that a wiki 16:41:25 :( 16:41:26 hahaha 16:41:39 i'll add my thoughts to our pad 16:41:39 i somehow get the feeling that tuesday would get us more engagement than monday but i'm just basing that on gut feel. 16:42:00 sdague: is the cross project day effectively a single track? 16:42:31 etoews: no, it has often been a 3 track day 16:42:53 we're a bit more flexible in austin though, so it may have more / less tracks at each time block this time 16:43:02 as we try to ensure less contention on specific items 16:43:28 but for planning purposes, assume 2 other sessions are running against yours for attention 16:43:35 k 16:43:55 I honestly think monday is probably less attention contention than tuesday 16:44:51 okay. let's keep it to monday. and on monday we can identify some of the cross project sessions on tuesday that are relevant to the api wg and try to attend those. 16:45:01 sounds good 16:45:07 yeh, that seems like a good strategy 16:45:22 movin on... 16:45:22 I'm going to mail a photo of my head on a stick to elmiko. 16:45:25 #topic Etags and the lost update problem 16:45:34 cdent: sweet! 16:45:41 i will carry it with pride 16:46:10 i'm very curious about this topic, did a bunch of reading after cdent brought it up in -sdks 16:46:12 Yeah, so sdague and I kinda stumbled on to the fact that anywhere we suggest people use PUT but don't tell them about Etags we are causing lost update potential 16:46:43 #link https://www.w3.org/1999/04/Editing/ 16:46:50 that's very old but still very true 16:46:51 well...PUT as it's supposed to be implemented :P 16:47:05 and only swift seems to have any infrastructure to support this at all 16:47:26 right the issue is that etags are not a part of the openstack zeitgeist in any fashion 16:47:59 So I've already committed to writing an initial informative guideline 16:48:08 but there's probably more to think about 16:48:14 nice 16:48:38 we're going to need some supporting code for this I think on both the server and client side 16:48:56 definitely 16:49:02 this probably relates to the above topic about creating issues on launchpad 16:49:29 so beyond needing conceptual guidance we need technical guidance 16:49:44 it exists out there in the wide world, but we need to bring it local and blessed 16:49:49 I don't know how much of it can be done as a pipeline element 16:50:08 is this something that would become an olso lib? 16:50:08 it would be nice if the answer included some utility libs, plus a bunch of examples 16:50:37 elmiko, sdague: I don't think it is something that can be all that generic, etag generation is complicated 16:50:38 sure, or just have the api-wg own it. Not all openstack libs must be oslo. 16:50:44 cdent: ok, sure 16:51:06 sdague: ack 16:51:25 I mean we migth be able to make it happen, but then it won't be clear and maintainable to the local code 16:51:38 sure 16:51:38 i do like the idea of api-wg taking on some code projects, i think it helps the lifeline, but does take us a little away from the initial goal of only creating guidelines 16:51:40 I'm not sure what the right path is, I simply wanted to make sure that we start thinking about it. 16:51:53 yeh, I think surfacing it as a known issue 16:51:59 +1 16:52:10 elmiko: I kinda wondered about that while creating microversion-parse 16:52:16 starting with information seems like a nice step 16:52:20 cdent: yea, exaclty 16:52:41 we certainly want to avoid proliferating unmaintained code 16:53:04 +1 16:53:13 I feel like it's best to keep code near the expertise. Having api-wg folks maintain some of these libs seems best for that. 16:53:37 etoews: it dosn't have to be maintained if begins life correct ;) 16:54:25 (correct like my irc typing) 16:54:44 cdent: until we get a major python version bump :) 16:54:48 as we have discovered 16:54:55 lol 16:55:17 we could narrow the scope of microversion-parse to just left padding the header value 16:55:26 etoews++ 16:55:36 nice... 16:55:40 LOL 16:55:54 etoews: could we turn it into a microservice too? 16:55:54 is there any action here or was this just for discussion? 16:56:09 anyway, we've ground that into the ground. I think we all agree that etags matters. The action is 16:56:18 #action cdent starts an etag guideline 16:56:26 from there we'll move on to sample code 16:56:34 ++ 16:56:38 but I think we need to hash the informative guideline first 16:56:38 sounds good 16:57:02 and sample could potentially just live in http://git.openstack.org/cgit/openstack/api-wg/ 16:57:15 anything else to discuss before we wrap up? 16:57:34 seems good stopping point 16:58:09 those frozen guidelines, are the ready to merge? 16:58:10 nothing here 16:58:39 https://review.openstack.org/#/q/status:open+project:openstack/api-wg,n,z is not loading for me 16:58:47 503 16:58:49 gerrit is taking a little break 16:59:04 alrighty 16:59:16 thanks all 16:59:30 #endmeeting